Categorygithub.com/dotX12/go-pre-commit
modulepackage
0.0.0-20240628122352-de2da3435978
Repository: https://github.com/dotx12/go-pre-commit.git
Documentation: pkg.go.dev

# README

Cross-platform Golang pre-commit hooks

FOSSA Status

It seemed strange to me how everyone writing pre-commit hooks for Golang would choose to not use a great cross-platform language already in their disposal, Golang, and instead would write their hooks in something that is not cross-platform - BASH.

So I took some inspirations from other repos like https://github.com/Bahjat/pre-commit-golang and https://github.com/dnephin/pre-commit-golang and implemented the commands in Go.

This should work on Windows, Linux, Mac, and basically anything Golang does (though maybe not all the supported tools work on all platforms).

Using the hooks

You need to first install the binary from here, go install github.com/lietu/go-pre-commit@latest

You can add these to your project's .pre-commit-config.yaml:

- repo: https://github.com/lietu/go-pre-commit
  rev: master
  hooks:
    - id: errcheck
    - id: go-fmt-goimports
    - id: go-test
    - id: go-vet
    - id: gofumpt
    - id: golangci-lint
    - id: golint
    - id: staticcheck
    - id: go-mod-tidy

If you want to use golangci-lint you should first follow their installation guide. The other tools are automatically go install'd if they are not yet installed. If you choose to use golangci-lint, you don't need errcheck, go-vet, and staticcheck separately, as they are included by default.

Also you likely don't want to mix go-fmt-goimports with gofumpt as it is just a stricter variant of the same tools.

License

FOSSA Status

Financial support

This project has been made possible thanks to Cocreators and Lietu. You can help us continue our open source work by supporting us on Buy me a coffee.

"Buy Me A Coffee"

# Packages

No description provided by the author