{"record":{"id":"87302fbcc34f0b6e","repo":"GoogleContainerTools/skaffold","slug":"q-is-not-a-valid-git-tagger-variant","errorCode":null,"errorMessage":"%q is not a valid git tagger variant","messagePattern":"%q is not a valid git tagger variant","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/skaffold/tag/git_commit.go","lineNumber":54,"sourceCode":"\trunGitFn      func(context.Context, string) (string, error)\n\tignoreChanges bool\n}\n\nvar variants = map[string]func(context.Context, string) (string, error){\n\t\"\":                gitTags,\n\t\"tags\":            gitTags,\n\t\"commitsha\":       gitCommitsha,\n\t\"abbrevcommitsha\": gitAbbrevcommitsha,\n\t\"treesha\":         gitTreesha,\n\t\"abbrevtreesha\":   gitAbbrevtreesha,\n\t\"branches\":        gitBranches,\n}\n\n// NewGitCommit creates a new git commit tagger. It fails if the tagger variant is invalid.\nfunc NewGitCommit(prefix, variant string, ignoreChanges bool) (*GitCommit, error) {\n\trunGitFn, found := variants[strings.ToLower(variant)]\n\tif !found {\n\t\treturn nil, fmt.Errorf(\"%q is not a valid git tagger variant\", variant)\n\t}\n\n\treturn &GitCommit{\n\t\tprefix:        prefix,\n\t\trunGitFn:      runGitFn,\n\t\tignoreChanges: ignoreChanges,\n\t}, nil\n}\n\n// GenerateTag generates a tag from the git commit.\nfunc (t *GitCommit) GenerateTag(ctx context.Context, image latest.Artifact) (string, error) {\n\tref, err := t.runGitFn(ctx, image.Workspace)\n\tif err != nil {\n\t\treturn \"\", fmt.Errorf(\"unable to find git commit: %w\", err)\n\t}\n\n\tref = sanitizeTag(ref)\n","sourceCodeStart":36,"sourceCodeEnd":72,"githubUrl":"https://github.com/GoogleContainerTools/skaffold/blob/a1189de023efc32d4b8e11f395acc678aa555011/pkg/skaffold/tag/git_commit.go#L36-L72","documentation":"The gitCommit Tagger supports a fixed set of variants (e.g. Tags, CommitSha, AbbrevCommitSha) that select which `git` command determines the tag source. NewGitCommit looks the variant up in the variants map (case-insensitively); an unknown variant string means the tagger cannot be constructed, so it returns this error immediately.","triggerScenarios":"Calling NewGitCommit(prefix, \"commitsha-typo\", false) or configuring tagger.git_Commit.variant in skaffold.yaml with a value not present in the variants map (e.g. 'sha' instead of 'CommitSha', or a misspelled 'abbrevCommitSha').","commonSituations":"Copy-pasting tagger config from older Skaffold docs where variant names changed; typos in skaffold.yaml; YAML enum values written in an unexpected casing that still fails because the name simply doesn't exist.","solutions":["Use one of the supported variants exactly: 'Tags', 'CommitSha', or 'AbbrevCommitSha' (case-insensitive)","Check the Skaffold docs/schema for your version — variant names may differ across releases","Remove the variant field to use the default variant","Validate skaffold.yaml against the JSON schema (skaffold init / IDE schema validation) to catch typos early"],"exampleFix":"// before\n{\"tagger\": {\"git_Commit\": {\"variant\": \"sha\"}}}\n// after\n{\"tagger\": {\"git_Commit\": {\"variant\": \"CommitSha\"}}}","handlingStrategy":"validation","validationCode":"var validVariants = map[string]bool{\"tags\": true, \"commitsha\": true, \"abbrevcommitsha\": true}\nif !validVariants[strings.ToLower(cfg.Tagger.GitCommit.Variant)] {\n    return fmt.Errorf(\"unsupported gitCommit variant %q\", cfg.Tagger.GitCommit.Variant)\n}","typeGuard":"func validGitVariant(v string) bool {\n    switch strings.ToLower(v) {\n    case \"tags\", \"commitsha\", \"abbrevcommitsha\":\n        return true\n    }\n    return false\n}","tryCatchPattern":"gc, err := tag.NewGitCommit(prefix, variant, false)\nif err != nil {\n    return fmt.Errorf(\"bad tagger config (check variant in skaffold.yaml): %w\", err)\n}","preventionTips":["Use exact variant names from your Skaffold version's docs","Validate skaffold.yaml against its JSON schema in CI","Pin Skaffold version and check changelog for tagger variant renames","Omit variant to accept the default"],"tags":["go","skaffold","git","configuration","tagging"],"backgroundTag":"invalid-enum-value","analyzedSha":"a1189de023efc32d4b8e11f395acc678aa555011","analyzedAt":"2026-09-05T12:09:27.064Z","contentChangedAt":"2026-09-05T12:09:27.064Z","schemaVersion":2},"datasetVersion":"2026-09-12T17:17:11.597Z"}