- Add workflow with test, lint, build, release jobs - Add goreleaser config for multi-platform releases - Add golangci-lint configuration
130 lines
2.3 KiB
YAML
130 lines
2.3 KiB
YAML
# golangci-lint Configuration
|
|
# https://golangci-lint.run/usage/configuration/
|
|
|
|
run:
|
|
timeout: 5m
|
|
issues-exit-code: 1
|
|
tests: true
|
|
modules-download-mode: readonly
|
|
|
|
output:
|
|
formats:
|
|
- format: colored-line-number
|
|
print-issued-lines: true
|
|
print-linter-name: true
|
|
sort-results: true
|
|
|
|
linters:
|
|
enable:
|
|
# Default linters
|
|
- errcheck
|
|
- gosimple
|
|
- govet
|
|
- ineffassign
|
|
- staticcheck
|
|
- unused
|
|
|
|
# Additional recommended linters
|
|
- bodyclose
|
|
- contextcheck
|
|
- dupl
|
|
- durationcheck
|
|
- errorlint
|
|
- exhaustive
|
|
- exportloopref
|
|
- gocognit
|
|
- goconst
|
|
- gocritic
|
|
- gocyclo
|
|
- godot
|
|
- gofmt
|
|
- goimports
|
|
- gosec
|
|
- misspell
|
|
- nilerr
|
|
- nilnil
|
|
- noctx
|
|
- prealloc
|
|
- predeclared
|
|
- revive
|
|
- sqlclosecheck
|
|
- stylecheck
|
|
- tenv
|
|
- tparallel
|
|
- unconvert
|
|
- unparam
|
|
- whitespace
|
|
|
|
linters-settings:
|
|
errcheck:
|
|
check-type-assertions: true
|
|
check-blank: true
|
|
|
|
govet:
|
|
enable-all: true
|
|
|
|
gocyclo:
|
|
min-complexity: 15
|
|
|
|
gocognit:
|
|
min-complexity: 20
|
|
|
|
dupl:
|
|
threshold: 100
|
|
|
|
goconst:
|
|
min-len: 3
|
|
min-occurrences: 3
|
|
|
|
misspell:
|
|
locale: US
|
|
|
|
revive:
|
|
rules:
|
|
- name: blank-imports
|
|
- name: context-as-argument
|
|
- name: context-keys-type
|
|
- name: dot-imports
|
|
- name: error-return
|
|
- name: error-strings
|
|
- name: error-naming
|
|
- name: exported
|
|
- name: increment-decrement
|
|
- name: var-naming
|
|
- name: var-declaration
|
|
- name: package-comments
|
|
- name: range
|
|
- name: receiver-naming
|
|
- name: time-naming
|
|
- name: unexported-return
|
|
- name: indent-error-flow
|
|
- name: errorf
|
|
- name: empty-block
|
|
- name: superfluous-else
|
|
- name: unreachable-code
|
|
|
|
gosec:
|
|
excludes:
|
|
- G104 # Audit errors not checked
|
|
- G304 # File path provided as taint input
|
|
|
|
issues:
|
|
exclude-rules:
|
|
# Exclude some linters from running on tests files
|
|
- path: _test\.go
|
|
linters:
|
|
- dupl
|
|
- gocyclo
|
|
- gocognit
|
|
- gosec
|
|
- errcheck
|
|
|
|
# Exclude known issues in generated files
|
|
- path: ".*_generated\\.go"
|
|
linters:
|
|
- all
|
|
|
|
max-issues-per-linter: 50
|
|
max-same-issues: 10
|
|
new: false
|