Go rules linter
Full installation example: https://github.com/peakle/dc-rules-example
- Install rules:
go get -v github.com/peakle/go-rules
- Create rules.go file in your project like in example
- Add linter to your pipeline:
-
Like another one check in golangci-lint (will work for golangci-lint >v1.46.0):
linters: enable: - gocritic linters-settings: gocritic: enabled-checks: - ruleguard settings: ruleguard: rules: "YourDir/rules.go"
-
Like explicit check WITHOUT golangci-lint:
- install binary by
curl
orgo install
:ORcurl -sSfL https://raw.githubusercontent.com/peakle/go-rules/master/releaser/install.sh | sh -s -- -d -b $(go env GOPATH)/bin latest
go install -v github.com/peakle/go-rules/cmd/goRules@latest
- Run lint:
goRules ./...
- install binary by
-
Like file watcher in Goland IDE (will work for golangci-lint >v1.46.0):
- add golangci-lint as
File Watcher
in IDE (Preferences -> Tools -> File Watchers -> Add) - set
Arguments
field where.golangci.yml
file will be like example above:run $FileDir$ --config=$ProjectFileDir$/.golangci.yml
- add golangci-lint as
-
- update rules version in your go.mod file
- download new rules version:
go get github.com/peakle/go-rules@newVersion
- if you using golangci-lint update cache:
golangci-lint cache clean
- Ruleguard tour for newbees: https://go-ruleguard.github.io/by-example
- Fork repo && open PR :D