-
-
Notifications
You must be signed in to change notification settings - Fork 19
/
.golangci.yml
133 lines (129 loc) · 3.92 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
run:
go: '1.18'
linters-settings:
dupl:
threshold: 500 # we got swagger comments so...
funlen:
lines: 100
statements: 50
goconst:
min-len: 2
min-occurrences: 2
gocritic:
enabled-tags:
- opinionated
- performance
- style
govet:
check-shadowing: true
maligned:
suggest-new: true
misspell:
locale: US
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
- deadcode
- depguard
- dogsled
- dupl
- errcheck
- exhaustive
- funlen
- goconst
# - gocritic
- gocyclo
# - revive
# - gomnd
- goprintffuncname
- gosec
- gosimple
- govet
- vet
- ineffassign
- misspell
- nakedret
- noctx
- nolintlint
- rowserrcheck
- exportloopref
- staticcheck
- structcheck
- stylecheck
# typecheck: not working with go 1.18
# - typecheck
- unconvert
- unparam
- unused
- varcheck
- whitespace
- asciicheck
- goerr113
- nestif
- prealloc
# don't enable:
# - gochecknoinits # the kubebuilder and kubernetes library enforce using init functions
# - lll # the markers from controller-gen are 270 characters long
# - goimports # it conflicts with crlfmt
# - asciicheck
# - gochecknoglobals
# - gocognit
# - godot
# - godox
# - maligned
# - nestif
# - prealloc
# - testpackage
# - wsl
# - gofmt # it conflicts with crlfmt
issues:
exclude:
# errcheck: Almost all programs ignore errors on these functions and in most cases it's ok
- Error return value of .((os\.)?std(out|err)\..*|.*Close|.*Flush|os\.Remove(All)?|.*printf?|os\.(Un)?Setenv). is not checked
# govet: Common false positives
- (possible misuse of unsafe.Pointer|should have signature)
# staticcheck: Developers tend to write in C-style with an explicit 'break' in a 'switch', so it's ok to ignore
- ineffective break statement. Did you mean to break out of the outer loop
# gosec: Too many false-positives on 'unsafe' usage
- Use of unsafe calls should be audited
# gosec: Too many false-positives for parametrized shell calls
- Subprocess launch(ed with variable|ing should be audited)
# gosec: Duplicated errcheck checks
- G104
# gosec: Too many issues in popular repos
- (Expect directory permissions to be 0750 or less|Expect file permissions to be 0600 or less)
# gosec: False positive is triggered by 'src, err := ioutil.ReadFile(filename)'
- Potential file inclusion via variable
# stylecheck: unnecessary comment requirement
- ST1000
# err is fine to be shadowed
- declaration of "err"
# revive: unnecessary comment requirement
- exported method .* should have comment or be unexported
- exported function .* should have comment or be unexported
- exported type .* should have comment or be unexported
- exported const .* should have comment or be unexported
- comment on exported method
# ignore cache errcheck
- Error return value of `cache\..*` is not checked
# sometimes we don't need crypto/rand
- G404
# can we plz just don't care about this casing problem...
- Id.*ID
- comment on exported type
exclude-use-default: false
# Excluding configuration per-path, per-linter, per-text and per-source
exclude-rules:
- path: cmd/test/
linters:
- errcheck
- gocritic
- nestif