1
+ # This file contains all available configuration options
2
+ # with their default values.
3
+
4
+ # options for analysis running
5
+ run :
6
+ # default concurrency is a available CPU number
7
+ # concurrency: 4
8
+
9
+ # timeout for analysis, e.g. 30s, 5m, default is 1m
10
+ timeout : 30m
11
+
12
+ # exit code when at least one issue was found, default is 1
13
+ issues-exit-code : 1
14
+
15
+ # include test files or not, default is true
16
+ tests : true
17
+
18
+ # list of build tags, all linters use it. Default is empty list.
19
+ # build-tags:
20
+ # - mytag
21
+
22
+ # which dirs to skip: issues from them won't be reported;
23
+ # can use regexp here: generated.*, regexp is applied on full path;
24
+ # default value is empty list, but default dirs are skipped independently
25
+ # from this option's value (see skip-dirs-use-default).
26
+ # skip-dirs:
27
+ # - src/external_libs
28
+ # - autogenerated_by_my_lib
29
+
30
+ # default is true. Enables skipping of directories:
31
+ # vendor$, third_party$, testdata$, examples$, Godeps$, builtin$
32
+ skip-dirs-use-default : true
33
+
34
+ # which files to skip: they will be analyzed, but issues from them
35
+ # won't be reported. Default value is empty list, but there is
36
+ # no need to include all autogenerated files, we confidently recognize
37
+ # autogenerated files. If it's not please let us know.
38
+ # skip-files:
39
+ # - ".*\\.my\\.go$"
40
+ # - lib/bad.go
41
+
42
+ # by default isn't set. If set we pass it to "go list -mod={option}". From "go help modules":
43
+ # If invoked with -mod=readonly, the go command is disallowed from the implicit
44
+ # automatic updating of go.mod described above. Instead, it fails when any changes
45
+ # to go.mod are needed. This setting is most useful to check that go.mod does
46
+ # not need updates, such as in a continuous integration and testing system.
47
+ # If invoked with -mod=vendor, the go command assumes that the vendor
48
+ # directory holds the correct copies of dependencies and ignores
49
+ # the dependency descriptions in go.mod.
50
+ # modules-download-mode: readonly|release|vendor
51
+
52
+ # output configuration options
53
+ output :
54
+ # colored-line-number|line-number|json|tab|checkstyle|code-climate, default is "colored-line-number"
55
+ format : line-number
56
+
57
+ # print lines of code with issue, default is true
58
+ print-issued-lines : true
59
+
60
+ # print linter name in the end of issue text, default is true
61
+ print-linter-name : true
62
+
63
+ # all available settings of specific linters
64
+ linters-settings :
65
+ gci :
66
+ sections :
67
+ - standard
68
+ - default
69
+ - prefix(github.com/databus23/helm-diff/v3)
70
+
71
+ errcheck :
72
+ # report about not checking of errors in type assetions: `a := b.(MyStruct)`;
73
+ # default is false: such cases aren't reported by default.
74
+ check-type-assertions : false
75
+
76
+ # report about assignment of errors to blank identifier: `num, _ := strconv.Atoi(numStr)`;
77
+ # default is false: such cases aren't reported by default.
78
+ check-blank : false
79
+
80
+ # [deprecated] comma-separated list of pairs of the form pkg:regex
81
+ # the regex is used to ignore names within pkg. (default "fmt:.*").
82
+ # see https://github.com/kisielk/errcheck#the-deprecated-method for details
83
+ # ignore: fmt:.*
84
+
85
+ # path to a file containing a list of functions to exclude from checking
86
+ # see https://github.com/kisielk/errcheck#excluding-functions for details
87
+ # exclude: /path/to/file.txt
88
+
89
+ # Disable error checking, as errorcheck detects more errors and is more configurable.
90
+ gosec :
91
+ exclude :
92
+ - " G104"
93
+
94
+ govet :
95
+ # report about shadowed variables
96
+ check-shadowing : false
97
+
98
+ # settings per analyzer
99
+ settings :
100
+ printf : # analyzer name, run `go tool vet help` to see all analyzers
101
+ funcs : # run `go tool vet help printf` to see available settings for `printf` analyzer
102
+ - (github.com/golangci/golangci-lint/pkg/logutils.Log).Infof
103
+ - (github.com/golangci/golangci-lint/pkg/logutils.Log).Warnf
104
+ - (github.com/golangci/golangci-lint/pkg/logutils.Log).Errorf
105
+ - (github.com/golangci/golangci-lint/pkg/logutils.Log).Fatalf
106
+
107
+ # enable or disable analyzers by name
108
+ # enable:
109
+ # - atomicalign
110
+ # enable-all: false
111
+ # disable:
112
+ # - shadow
113
+ # disable-all: false
114
+ golint :
115
+ # minimal confidence for issues, default is 0.8
116
+ min-confidence : 0.8
117
+ gofmt :
118
+ # simplify code: gofmt with `-s` option, true by default
119
+ simplify : true
120
+ goimports :
121
+ # put imports beginning with prefix after 3rd-party packages;
122
+ # it's a comma-separated list of prefixes
123
+ # local-prefixes: github.com/org/project
124
+ gocyclo :
125
+ # minimal code complexity to report, 30 by default (but we recommend 10-20)
126
+ min-complexity : 30
127
+ gocognit :
128
+ # minimal code complexity to report, 30 by default (but we recommend 10-20)
129
+ min-complexity : 100
130
+ maligned :
131
+ # print struct with more effective memory layout or not, false by default
132
+ suggest-new : true
133
+ dupl :
134
+ # tokens count to trigger issue, 150 by default
135
+ threshold : 100
136
+ goconst :
137
+ # minimal length of string constant, 3 by default
138
+ min-len : 3
139
+ # minimal occurrences count to trigger, 3 by default
140
+ min-occurrences : 8
141
+ # depguard:
142
+ # list-type: blacklist
143
+ # include-go-root: false
144
+ # packages:
145
+ # - github.com/sirupsen/logrus
146
+ # packages-with-error-messages:
147
+ # # specify an error message to output when a blacklisted package is used
148
+ # github.com/sirupsen/logrus: "logging is allowed only by logutils.Log"
149
+ misspell :
150
+ # Correct spellings using locale preferences for US or UK.
151
+ # Default is to use a neutral variety of English.
152
+ # Setting locale to US will correct the British spelling of 'colour' to 'color'.
153
+ locale : US
154
+ ignore-words :
155
+ - GitLab
156
+ lll :
157
+ # max line length, lines longer will be reported. Default is 120.
158
+ # '\t' is counted as 1 character by default, and can be changed with the tab-width option
159
+ line-length : 120
160
+ # tab width in spaces. Default to 1.
161
+ tab-width : 1
162
+ unused :
163
+ # treat code as a program (not a library) and report unused exported identifiers; default is false.
164
+ # XXX: if you enable this setting, unused will report a lot of false-positives in text editors:
165
+ # if it's called for subdir of a project it can't find funcs usages. All text editor integrations
166
+ # with golangci-lint call it on a directory with the changed file.
167
+ check-exported : false
168
+ unparam :
169
+ # Inspect exported functions, default is false. Set to true if no external program/library imports your code.
170
+ # XXX: if you enable this setting, unparam will report a lot of false-positives in text editors:
171
+ # if it's called for subdir of a project it can't find external interfaces. All text editor integrations
172
+ # with golangci-lint call it on a directory with the changed file.
173
+ check-exported : false
174
+ nakedret :
175
+ # make an issue if func has more lines of code than this setting and it has naked returns; default is 30
176
+ max-func-lines : 30
177
+ prealloc :
178
+ # XXX: we don't recommend using this linter before doing performance profiling.
179
+ # For most programs usage of prealloc will be a premature optimization.
180
+
181
+ # Report preallocation suggestions only on simple loops that have no returns/breaks/continues/gotos in them.
182
+ # True by default.
183
+ simple : true
184
+ range-loops : true # Report preallocation suggestions on range loops, true by default
185
+ for-loops : false # Report preallocation suggestions on for loops, false by default
186
+ gocritic :
187
+ # Which checks should be enabled; can't be combined with 'disabled-checks';
188
+ # See https://go-critic.github.io/overview#checks-overview
189
+ # To check which checks are enabled run `GL_DEBUG=gocritic golangci-lint run`
190
+ # By default list of stable checks is used.
191
+ # enabled-checks:
192
+ # - rangeValCopy
193
+
194
+ # Which checks should be disabled; can't be combined with 'enabled-checks'; default is empty
195
+ # disabled-checks:
196
+ # - regexpMust
197
+
198
+ # Enable multiple checks by tags, run `GL_DEBUG=gocritic golangci-lint run` to see all tags and checks.
199
+ # Empty list by default. See https://github.com/go-critic/go-critic#usage -> section "Tags".
200
+ # enabled-tags:
201
+ # - performance
202
+
203
+ settings : # settings passed to gocritic
204
+ captLocal : # must be valid enabled check name
205
+ paramsOnly : true
206
+ # rangeValCopy:
207
+ # sizeThreshold: 32
208
+ godox :
209
+ # report any comments starting with keywords, this is useful for TODO or FIXME comments that
210
+ # might be left in the code accidentally and should be resolved before merging
211
+ keywords : # default keywords are TODO, BUG, and FIXME, these can be overwritten by this setting
212
+ - TODO
213
+ - BUG
214
+ - FIXME
215
+ - NOTE
216
+ - OPTIMIZE # marks code that should be optimized before merging
217
+ - HACK # marks hack-arounds that should be removed before merging
218
+ dogsled :
219
+ # checks assignments with too many blank identifiers; default is 2
220
+ max-blank-identifiers : 2
221
+
222
+ whitespace :
223
+ multi-if : false # Enforces newlines (or comments) after every multi-line if statement
224
+ multi-func : false # Enforces newlines (or comments) after every multi-line function signature
225
+ wsl :
226
+ # If true append is only allowed to be cuddled if appending value is
227
+ # matching variables, fields or types on line above. Default is true.
228
+ strict-append : true
229
+ # Allow calls and assignments to be cuddled as long as the lines have any
230
+ # matching variables, fields or types. Default is true.
231
+ allow-assign-and-call : true
232
+ # Allow multiline assignments to be cuddled. Default is true.
233
+ allow-multiline-assign : true
234
+ # Allow declarations (var) to be cuddled.
235
+ allow-cuddle-declarations : false
236
+ # Allow trailing comments in ending of blocks
237
+ allow-trailing-comment : false
238
+ # Force newlines in end of case at this limit (0 = never).
239
+ force-case-trailing-whitespace : 0
240
+ revive :
241
+ ignore-generated-header : true
242
+ severity : warning
243
+ funlen :
244
+ # Checks the number of lines in a function.
245
+ # If lower than 0, disable the check.
246
+ # Default: 60
247
+ lines : 280
248
+ # Checks the number of statements in a function.
249
+ # If lower than 0, disable the check.
250
+ # Default: 40
251
+ statements : 140
252
+
253
+ linters :
254
+ # please, do not use `enable-all`: it's deprecated and will be removed soon.
255
+ # inverted configuration with `enable-all` and `disable` is not scalable during updates of golangci-lint
256
+ disable-all : true
257
+ enable :
258
+ - bodyclose
259
+ - depguard
260
+ - usestdlibvars
261
+ - reassign
262
+ - errcheck
263
+ - funlen
264
+ - gocognit
265
+ - goconst
266
+ - gofmt
267
+ - goimports
268
+ - revive
269
+ - gosimple
270
+ - govet
271
+ - ineffassign
272
+ - misspell
273
+ - nakedret
274
+ - exportloopref
275
+ - staticcheck
276
+ - typecheck
277
+ - unconvert
278
+ - unparam
279
+ - unused
280
+ - whitespace
281
+ - gci
282
+ # - gocritic
283
+ # - godox
284
+ # - gosec
285
+ # - interfacer
286
+ # - stylecheck
287
+ # - dogsled
288
+ # - dupl
289
+ # don't enable:
290
+ # - deadcode
291
+ # - gochecknoglobals
292
+ # - gochecknoinits
293
+ # - gocyclo
294
+ # - lll
295
+ # - maligned
296
+ # - prealloc
297
+ # - varcheck
298
+
299
+ issues :
300
+ # List of regexps of issue texts to exclude, empty list by default.
301
+ # But independently from this option we use default exclude patterns,
302
+ # it can be disabled by `exclude-use-default: false`. To list all
303
+ # excluded by default patterns execute `golangci-lint run --help`
304
+ # exclude:
305
+ # - abcdef
306
+
307
+ # Excluding configuration per-path, per-linter, per-text and per-source
308
+ exclude-rules :
309
+ # Exclude some linters from running on tests files.
310
+ - path : _test\.go
311
+ linters :
312
+ - gocyclo
313
+ - errcheck
314
+ - dupl
315
+ - gosec
316
+ - funlen
317
+
318
+ # Exclude known linters from partially hard-vendored code,
319
+ # which is impossible to exclude via "nolint" comments.
320
+ # - path: internal/hmac/
321
+ # text: "weak cryptographic primitive"
322
+ # linters:
323
+ # - gosec
324
+
325
+ # Exclude some staticcheck messages
326
+ # - linters:
327
+ # - staticcheck
328
+ # text: "SA9003:"
329
+
330
+ # Exclude lll issues for long lines with go:generate
331
+ - linters :
332
+ - lll
333
+ source : " ^//go:generate "
334
+
335
+ # Independently from option `exclude` we use default exclude patterns,
336
+ # it can be disabled by this option. To list all
337
+ # excluded by default patterns execute `golangci-lint run --help`.
338
+ # Default value for this option is true.
339
+ exclude-use-default : false
340
+
341
+ # Maximum issues count per one linter. Set to 0 to disable. Default is 50.
342
+ max-issues-per-linter : 0
343
+
344
+ # Maximum count of issues with the same text. Set to 0 to disable. Default is 3.
345
+ max-same-issues : 0
346
+
347
+ # Show only new issues: if there are unstaged changes or untracked files,
348
+ # only those changes are analyzed, else only changes in HEAD~ are analyzed.
349
+ # It's a super-useful option for integration of golangci-lint into existing
350
+ # large codebase. It's not practical to fix all existing issues at the moment
351
+ # of integration: much better don't allow issues in new code.
352
+ # Default is false.
353
+ new : false
354
+
355
+ # Show only new issues created after git revision `REV`
356
+ # This should be passed as flag during individual CI jobs.
357
+ # new-from-rev: REV
358
+
359
+ # Show only new issues created in git patch with set file path.
360
+ # new-from-patch: path/to/patch/file
0 commit comments