123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- linters-settings:
- depguard:
- list-type: blacklist
- packages:
- # logging is allowed only by logutils.Log, logrus
- # is allowed to use only in logutils package
- - github.com/sirupsen/logrus
- packages-with-error-message:
- - github.com/sirupsen/logrus: "logging is allowed only by logutils.Log"
- dupl:
- threshold: 125
- funlen:
- lines: 125
- statements: 50
- gci:
- local-prefixes: github.com/golangci/golangci-lint
- goconst:
- min-len: 2
- min-occurrences: 2
- gocritic:
- enabled-tags:
- - diagnostic
- - experimental
- - performance
- #- style
- #- opinionated
- disabled-checks:
- - commentFormatting
- - commentedOutCode
- - dupImport # https://github.com/go-critic/go-critic/issues/845
- - ifElseChain
- - octalLiteral
- - whyNoLint
- - wrapperFunc
- gocyclo:
- min-complexity: 15
- goimports:
- local-prefixes: github.com/golangci/golangci-lint
- gomnd:
- settings:
- mnd:
- # don't include the "operation" and "assign"
- checks: argument,case,condition,return
- govet:
- check-shadowing: true
- settings:
- printf:
- funcs:
- - (github.com/golangci/golangci-lint/pkg/logutils.Log).Infof
- - (github.com/golangci/golangci-lint/pkg/logutils.Log).Warnf
- - (github.com/golangci/golangci-lint/pkg/logutils.Log).Errorf
- - (github.com/golangci/golangci-lint/pkg/logutils.Log).Fatalf
- lll:
- line-length: 140
- maligned:
- suggest-new: true
- misspell:
- locale: en_CA
- nolintlint:
- allow-leading-space: true # don't require machine-readable nolint directives (i.e. with no leading space)
- allow-unused: false # report any unused nolint directives
- require-explanation: false # don't require an explanation for nolint directives
- require-specific: false # don't require nolint directives to be specific about which linter is being skipped
- linters:
- # please, do not use `enable-all`: it's deprecated and will be removed soon.
- # inverted configuration with `enable-all` and `disable` is not scalable during updates of golangci-lint
- disable-all: true
- enable:
- - bodyclose
- - depguard
- - dogsled
- - dupl
- - errcheck
- - exhaustive
- - exportloopref
- - funlen
- - gochecknoinits
- - goconst
- - gocritic
- - gocyclo
- - gofmt
- - goimports
- #- golint
- - gomnd
- - goprintffuncname
- - gosec
- - gosimple
- - govet
- - ineffassign
- #- interfacer
- - lll
- - misspell
- #- nakedret
- - noctx
- - nolintlint
- - rowserrcheck
- #- scopelint
- - staticcheck
- #- structcheck
- - stylecheck
- - typecheck
- - unconvert
- - unparam
- - unused
- #- varcheck
- - whitespace
- # don't enable:
- # - asciicheck
- # - deadcode
- # - gochecknoglobals
- # - gocognit
- # - godot
- # - godox
- # - goerr113
- # - golint
- # - interfacer
- # - maligned
- # - nestif
- # - prealloc
- ## - rowserrcheck
- # - scopelint
- # - structcheck
- # - testpackage
- # - varcheck
- # - wsl
- issues:
- # Excluding configuration per-path, per-linter, per-text and per-source
- exclude-rules:
- - path: _test\.go
- linters:
- - gomnd
- # https://github.com/go-critic/go-critic/issues/926
- - linters:
- - gocritic
- text: "unnecessaryDefer:"
- # TODO temporary rule, must be removed
- # seems related to v0.34.1, but I was not able to reproduce locally,
- # I was also not able to reproduce in the CI of a fork,
- # only the golangci-lint CI seems to be affected by this invalid analysis.
- - path: pkg/golinters/scopelint.go
- text: 'directive `//nolint:interfacer` is unused for linter interfacer'
- run:
- skip-dirs:
- - test/testdata_etc
- - internal/cache
- - internal/renameio
- - internal/robustio
- # golangci.com configuration
- # https://github.com/golangci/golangci/wiki/Configuration
- service:
- golangci-lint-version: 1.23.x # use the fixed version to not introduce new linters unexpectedly
- prepare:
- - echo "here I can run custom commands, but no preparation needed for this repo"
|