Files
oxy/.golangci.yml

132 lines
3.5 KiB
YAML

version: "2"
formatters:
enable:
- gci
- gofumpt
settings:
gofumpt:
extra-rules: false
linters:
default: all
disable:
- bodyclose # Too many false positives: https://github.com/timakin/bodyclose/issues/30
- cyclop # duplicate of gocyclo
- dupl
- err113
- exhaustive
- exhaustruct
- forcetypeassert
- gochecknoglobals # TODO(ldez) should be use on the project
- ireturn
- lll
- mnd
- musttag
- nestif # TODO(ldez) should be use on the project
- nilnil
- nlreturn
- noctx
- nonamedreturns
- paralleltest
- prealloc
- rowserrcheck # not relevant (SQL)
- sqlclosecheck # not relevant (SQL)
- tagliatelle
- testpackage
- tparallel
- varnamelen
- wrapcheck
- noinlineerr
- wsl # Deprecated
settings:
depguard:
rules:
main:
deny:
- pkg: github.com/instana/testify
desc: not allowed
- pkg: github.com/pkg/errors
desc: Should be replaced by standard lib errors package
funlen:
lines: -1
statements: 50
goconst:
min-len: 5
min-occurrences: 3
gocritic:
disabled-checks:
- sloppyReassign
- rangeValCopy
- octalLiteral
- paramTypeCombine # already handle by gofumpt.extra-rules
- httpNoBody
- unnamedResult
- deferInLoop # TODO(ldez) should be use on the project
enabled-tags:
- diagnostic
- style
- performance
settings:
hugeParam:
sizeThreshold: 100
gocyclo:
min-complexity: 15
godox:
keywords:
- FIXME
govet:
disable:
- fieldalignment
- shadow
enable-all: true
misspell:
locale: US
perfsprint:
err-error: true
errorf: true
sprintf1: true
strconcat: false
testifylint:
disable:
- go-require
exclusions:
warn-unused: true
presets:
- comments
- std-error-handling
rules:
- linters:
- canonicalheader
- funlen
- goconst
- gosec
path: .*_test.go
- linters:
- gosec
path: testutils/.+
- path: cbreaker/cbreaker_test.go # TODO(ldez) must be fixed
text: 'statsNetErrors - threshold always receives 0.6'
- path: buffer/buffer.go # TODO(ldez) must be fixed
text: (cognitive|cyclomatic) complexity \d+ of func `\(\*Buffer\)\.ServeHTTP` is high
- path: buffer/buffer.go # TODO(ldez) must be fixed
text: Function 'ServeHTTP' has too many statements
- path: memmetrics/ratio_test.go # TODO(ldez) must be fixed
text: 'float-compare: use assert\.InEpsilon \(or InDelta\)'
- path: memmetrics/roundtrip_test.go # TODO(ldez) must be fixed
text: 'float-compare: use assert\.InEpsilon \(or InDelta\)'
- path: memmetrics/anomaly_test.go # TODO(ldez) must be fixed
text: 'float-compare: use assert\.InEpsilon \(or InDelta\)'
- path: (.+)\.go$ # TODO(ldez) must be fixed
text: 'SA1019: http.CloseNotifier has been deprecated'
- path: (.+)\.go$ # TODO(ldez) must be fixed
text: 'exported: func name will be used as roundrobin.RoundRobinRequestRewriteListener by other packages'
- linters: # TODO(ldez) must be fixed
- revive
text: 'var-naming: avoid meaningless package names'
paths:
- internal/holsterv4
issues:
max-issues-per-linter: 0
max-same-issues: 0