-
Notifications
You must be signed in to change notification settings - Fork 324
/
.golangci.yml
138 lines (133 loc) · 3.87 KB
/
.golangci.yml
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
128
129
130
131
132
133
134
135
136
137
138
run:
timeout: 5m
linters-settings:
govet:
enable-all: true
disable:
- fieldalignment
- shadow
gocyclo:
min-complexity: 15
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
testifylint:
disable:
- go-require
perfsprint:
err-error: true
errorf: true
sprintf1: true
strconcat: false
linters:
enable-all: true
disable:
- gomnd # deprecated
- execinquery # deprecated
- sqlclosecheck # not relevant (SQL)
- rowserrcheck # not relevant (SQL)
- cyclop # duplicate of gocyclo
- lll
- dupl
- wsl
- nlreturn
- mnd
- err113
- wrapcheck
- exhaustive
- exhaustruct
- testpackage
- tparallel
- paralleltest
- prealloc
- 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
- musttag
output:
show-stats: true
sort-results: true
sort-order:
- linter
- file
issues:
exclude-use-default: false
max-issues-per-linter: 0
max-same-issues: 0
exclude-dirs:
- "internal/holsterv4"
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
exclude-rules:
- path: .*_test.go
linters:
- funlen
- gosec
- goconst
- canonicalheader
- 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
- path: memmetrics/ratio_test.go
text: "float-compare: use assert\\.InEpsilon \\(or InDelta\\)" # TODO(ldez) must be fixed
- path: memmetrics/roundtrip_test.go
text: "float-compare: use assert\\.InEpsilon \\(or InDelta\\)" # TODO(ldez) must be fixed
- path: memmetrics/anomaly_test.go
text: "float-compare: use assert\\.InEpsilon \\(or InDelta\\)" # TODO(ldez) must be fixed