code: func (r *RuleSet) ValidateConfig(ctx *Context, configSet, path string, content []byte) error {
  	switch cbs, err := r.matchingFuncs(ctx.Context, configSet, path); {
  	case err != nil:
  		return err
  	case len(cbs) != 0:
  		for _, cb := range cbs {
  			if err := cb(ctx, configSet, path, content); err != nil {
  				return err
  			}
  		}
  	default:
  		logging.Warningf(ctx.Context, "No validation rule registered for file %q in config set %q", path, configSet)
  	}
  	return nil
  }
docs: // ValidateConfig picks all rules matching the given file and executes their
  // validation callbacks.
  //
  // If there's no rule matching the file, the validation is skipped. If there
  // are multiple rules that match the file, they all are used (in order of their)
  // registration.