-
Notifications
You must be signed in to change notification settings - Fork 18
/
.golangci.yml
129 lines (125 loc) · 3.19 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
run:
build-tags:
- e2e
# Do not treat these as gospel, adjust as appropriate
linters-settings:
govet:
check-shadowing: false
golint:
min-confidence: 0
gocyclo:
min-complexity: 15
maligned:
suggest-new: true
depguard:
rules:
main:
deny:
- pkg: github.com/davecgh/go-spew
- pkg: log
- pkg: github.com/pkg/errors
desc: use Go stdlib errors instead
- pkg: github.com/cenkalti/backof[f]
desc: use github.com/cenkalti/backoff/v4 instead
- pkg: gotest.tools/assert
desc: use gotest.tools/v3/assert instead
- pkg: gotest.tools/skip
desc: use gotest.tools/v3/skip instead
- pkg: gotest.tools/assert/cmp
desc: use gotest.tools/v3/assert/cmp instead
- pkg: gotest.tools/env
desc: use gotest.tools/v3/env instead
- pkg: gotest.tools/fs
desc: use gotest.tools/v3/fs instead
- pkg: gotest.tools/golden
desc: use gotest.tools/v3/golden instead
- pkg: gotest.tools/icmd
desc: use gotest.tools/v3/icmd instead
- pkg: gotest.tools/poll
desc: use gotest.tools/v3/poll instead
dupl:
threshold: 100
goconst:
min-len: 6
min-occurrences: 8
lll:
line-length: 120
goimports:
local-prefixes: github.com/circleci/ex
nakedret:
max-func-lines: 0
issues:
# The default exclude list seems rather aggresive, opt-in when needed instead
exclude-use-default: false
exclude-rules:
# Duplicated errcheck checks
- linters: [gosec]
text: G104
# Duplicated errcheck checks
- linters: [staticcheck]
text: SA5001
- linters: [staticcheck]
test: SA1019
path: _test\.go
- linters: [staticcheck]
test: SA1019
path: testing
# We don't require comments on everything
- linters: [golint]
text: should have( a package)? comment
# very long lines are ok if they're URLs
- linters: [lll]
source: https?://
# very long lines are ok if they're in http response message fields
- linters: [ lll ]
source: '"message":'
# Ignore errcheck on deferred Close
- linters: [errcheck]
source: ^\s*defer .*\.Close(.*)$
# Ignore ineffective assignments to ctx
- linters: [ineffassign]
source: ^\s*ctx.*=.*$
- linters: [staticcheck]
source: ^\s*ctx.*=.*$
# Ignore long tests
- linters: [funlen]
text: ^Function 'Test.*
# We don't require package docs
- linters: [stylecheck]
text: ST1000
# Unparam is allowed in tests
- linters: [unparam]
path: _test\.go
# Rootcerts is generated code
- linters: [gochecknoinits]
path: /rootcerts
# Rootcerts is generated code
- linters: [gosec]
path: /rootcerts
linters:
disable-all: true
enable:
- gochecknoinits
- bodyclose
- depguard
- errcheck
- errorlint
- funlen
- goconst
- gocyclo
- gofmt
- goimports
- gosec
- gosimple
- govet
- ineffassign
- lll
- misspell
- nakedret
- prealloc
- staticcheck
- stylecheck
- typecheck
- unconvert
- unparam
- unused