Skip to content

lietu/go-pre-commit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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: v0.1.0
  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"

About

Cross-platform Golang pre-commit hooks

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages