code: func applyGroupOverrides(universe types.Universe, customArgs *clientgenargs.CustomArgs) {
  	// Create a map from "old GV" to "new GV" so we know what changes we need to make.
  	changes := make(map[clientgentypes.GroupVersion]clientgentypes.GroupVersion)
  	for gv, inputDir := range customArgs.GroupVersionPackages() {
  		p := universe.Package(inputDir)
  		if override := types.ExtractCommentTags("+", p.Comments)["groupName"]; override != nil {
  			newGV := clientgentypes.GroupVersion{
  				Group:   clientgentypes.Group(override[0]),
  				Version: gv.Version,
  			}
  			changes[gv] = newGV
  		}
  	}
  
  	// Modify customArgs.Groups based on the groupName overrides.
  	newGroups := make([]clientgentypes.GroupVersions, 0, len(customArgs.Groups))
  	for _, gvs := range customArgs.Groups {
  		gv := clientgentypes.GroupVersion{
  			Group:   gvs.Group,
  			Version: gvs.Versions[0].Version, // we only need a version, and the first will do
  		}
  		if newGV, ok := changes[gv]; ok {
  			// There's an override, so use it.
  			newGVS := clientgentypes.GroupVersions{
  				PackageName: gvs.PackageName,
  				Group:       newGV.Group,
  				Versions:    gvs.Versions,
  			}
  			newGroups = append(newGroups, newGVS)
  		} else {
  			// No override.
  			newGroups = append(newGroups, gvs)
  		}
  	}
  	customArgs.Groups = newGroups
  }
docs: // applyGroupOverrides applies group name overrides to each package, if applicable. If there is a
  // comment of the form "// +groupName=somegroup" or "// +groupName=somegroup.foo.bar.io", use the
  // first field (somegroup) as the name of the group in Go code, e.g. as the func name in a clientset.
  //
  // If the first field of the groupName is not unique within the clientset, use "// +groupName=unique