name: pre-commit-go description: Configure or update pre-commit for Go repos, including repo-pinned hooks for gofmt/staticcheck and brief README setup notes. Use when adding or switching to pre-commit hooks in Go projects.
Pre-Commit Go
Overview
Add or update .pre-commit-config.yaml for Go projects using repo-based hooks pinned to exact commit SHAs, with version comments for traceability.
Workflow
- Pick hook repo(s). Prefer
https://github.com/TekWizely/pre-commit-golangfor Go tooling. - Select hook IDs:
go-fmt(addargs: ["-w"]if auto-fixing is desired)go-staticcheck-repo-modforstaticcheck ./...per module
- Lock versions by setting
revto a commit SHA and add an inline# frozen: vX.Y.Ztag comment. - Keep README setup minimal:
pre-commit installpre-commit run --all-files
- Run
pre-commit run --all-filesto verify hooks.
Notes
- Pre-commit has no separate lock file; version pinning happens in
.pre-commit-config.yamlviarev. - Prefer repo-based hooks over local hooks; they avoid relying on locally installed binaries and make CI reproducible.
Example
repos:
- repo: https://github.com/TekWizely/pre-commit-golang
rev: <commit-sha> # frozen: vX.Y.Z
hooks:
- id: go-fmt
args: ["-w"]
- id: go-staticcheck-repo-mod