1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
|
run:
deadline: 5m
skip-files: [ ]
skip-dirs: ["internal/holsterv4"]
linters-settings:
govet:
enable-all: true
disable:
- fieldalignment
- shadow
gocyclo:
min-complexity: 15
maligned:
suggest-new: true
goconst:
min-len: 5
min-occurrences: 3
misspell:
locale: US
funlen:
lines: -1
statements: 50
godox:
keywords:
- FIXME
gofumpt:
extra-rules: false
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
gocritic:
enabled-tags:
- diagnostic
- style
- performance
disabled-checks:
- sloppyReassign
- rangeValCopy
- octalLiteral
- paramTypeCombine # already handle by gofumpt.extra-rules
- httpNoBody
- unnamedResult
- deferInLoop # TODO(ldez) should be use on the project
settings:
hugeParam:
sizeThreshold: 100
linters:
enable-all: true
disable:
- deadcode # deprecated
- exhaustivestruct # deprecated
- golint # deprecated
- ifshort # deprecated
- interfacer # deprecated
- maligned # deprecated
- nosnakecase # deprecated
- scopelint # deprecated
- structcheck # deprecated
- varcheck # deprecated
- sqlclosecheck # not relevant (SQL)
- rowserrcheck # not relevant (SQL)
- execinquery # not relevant (SQL)
- cyclop # duplicate of gocyclo
- lll
- dupl
- wsl
- nlreturn
- gomnd
- goerr113
- wrapcheck
- exhaustive
- exhaustruct
- testpackage
- tparallel
- paralleltest
- prealloc
- ifshort
- forcetypeassert
- bodyclose # Too many false positives: https://github.com/timakin/bodyclose/issues/30
- varnamelen
- noctx
- tagliatelle
- nilnil
- ireturn
- nonamedreturns
- gochecknoglobals # TODO(ldez) should be use on the project
- nestif # TODO(ldez) should be use on the project
issues:
exclude-use-default: false
max-per-linter: 0
max-same-issues: 0
exclude:
- 'ST1000: at least one file in a package should have a package comment' # TODO(ldez) must be fixed
- 'package-comments: should have a package comment'
- 'Error return value of .((os\\.)?std(out|err)\\..*|.*Close|.*Flush|os\\.Remove(All)?|.*printf?|os\\.(Un)?Setenv). is not checked'
- 'SA1019: http.CloseNotifier has been deprecated'
- 'exported: func name will be used as roundrobin.RoundRobinRequestRewriteListener by other packages'# TODO(ldez) must be fixed
- 'G101: Potential hardcoded credentials' # TODO(ldez) https://github.com/golangci/golangci-lint/issues/4037
exclude-rules:
- path: .*_test.go
linters:
- funlen
- gosec
- path: testutils/.+
linters:
- gosec
- path: cbreaker/cbreaker_test.go
text: "`statsNetErrors` - `threshold` always receives `0.6`" # TODO(ldez) must be fixed
- path: buffer/buffer.go
text: "(cognitive|cyclomatic) complexity \\d+ of func `\\(\\*Buffer\\)\\.ServeHTTP` is high" # TODO(ldez) must be fixed
- path: buffer/buffer.go
text: "Function 'ServeHTTP' has too many statements" # TODO(ldez) must be fixed
- path: forward/fwd.go
text: "(cognitive|cyclomatic) complexity \\d+ of func `\\(\\*httpForwarder\\)\\.serveWebSocket` is high" # TODO(ldez) must be fixed
- path: forward/fwd.go
text: "Function 'serveWebSocket' has too many statements" # TODO(ldez) must be fixed
- path: utils/handler.go
text: "ifElseChain: rewrite if-else to switch statement" # TODO(ldez) must be fixed
|