code: func fetchConfigs(c context.Context) (*config.ProjectsCfg, string, error) {
  	// TODO(fmatenaar): Refactor config validation to offer rendering here.
  	// Because projects.cfg is stored part of luci config service and
  	// rendering is not supported outside of validation, we need
  	// to manually resolve the config service name to fetch
  	// project.cfg proto
  	configServiceAppID, err := gaeconfig.GetConfigServiceAppID(c)
  	if err != nil {
  		return nil, "", err
  	}
  	configSet := configset.ServiceSet(configServiceAppID)
  	cfg := &config.ProjectsCfg{}
  
  	var meta configset.Meta
  	if err := cfgclient.Get(c, cfgclient.AsService, configSet, projectsCfg, textproto.Message(cfg), &meta); err != nil {
  		return nil, "", err
  	}
  	return cfg, meta.Revision, nil
  }
docs: // fetchConfigs loads proto messages with rules from the config.