1
- # options for analysis running
2
- run :
3
- # timeout for analysis, e.g. 30s, 5m, default is 1m
4
- deadline : 5m
5
1
6
- # exit code when at least one issue was found, default is 1
2
+ run :
3
+ go : " 1.22"
4
+ concurrency : 4
5
+ timeout : 5m
6
+ tests : false
7
7
issues-exit-code : 1
8
-
9
- # include test files or not, default is true
10
- tests : true
11
-
12
- # which files to skip: they will be analyzed, but issues from them
13
- # won't be reported. Default value is empty list, but there is
14
- # no need to include all autogenerated files, we confidently recognize
15
- # autogenerated files. If it's not please let us know.
16
- skip-files :
17
- - easyjson
8
+ modules-download-mode : readonly
18
9
19
10
issues :
20
- # Independently from option 'exclude' we use default exclude patterns,
21
- # it can be disabled by this option. To list all
22
- # excluded by default patterns execute 'golangci-lint run --help'.
23
- # Default value for this option is true.
24
11
exclude-use-default : false
25
- # Excluding configuration per-path, per-linter, per-text and per-source
26
- exclude-rules :
27
- # Exclude some linters from running on tests files.
28
- - path : _test\.go
29
- linters :
30
- - prealloc
31
- - errcheck
12
+ max-issues- per-linter: 100
13
+ max-same-issues : 4
14
+ new : false
15
+ exclude-files :
16
+ - " .+_test.go "
17
+ exclude-dirs :
18
+ - " vendor$ "
32
19
33
- # output configuration options
34
20
output :
35
- # colored-line-number|line-number|json|tab|checkstyle, default is "colored-line-number"
36
- format : colored-line-number
21
+ formats :
22
+ - format : line-number
23
+ sort-results : true
37
24
38
- # print lines of code with issue, default is true
39
- print-issued-lines : true
40
-
41
- # print linter name in the end of issue text, default is true
42
- print-linter-name : true
43
-
44
- # all available settings of specific linters
45
25
linters-settings :
46
26
govet :
47
- # report about shadowed variables
48
27
check-shadowing : true
49
- enable :
50
- # report mismatches between assembly files and Go declarations
51
- - asmdecl
52
- # check for useless assignments
53
- - assign
54
- # check for common mistakes using the sync/atomic package
55
- - atomic
56
- # check for non-64-bits-aligned arguments to sync/atomic functions
57
- - atomicalign
58
- # check for common mistakes involving boolean operators
59
- - bools
60
- # check that +build tags are well-formed and correctly located
61
- - buildtag
62
- # detect some violations of the cgo pointer passing rules
63
- - cgocall
64
- # check for unkeyed composite literals
65
- - composites
66
- # check for locks erroneously passed by value
67
- - copylocks
68
- # check for calls of reflect.DeepEqual on error values
69
- - deepequalerrors
70
- # report passing non-pointer or non-error values to errors.As
71
- - errorsas
72
- # find calls to a particular function
73
- - findcall
74
- # report assembly that clobbers the frame pointer before saving it
75
- - framepointer
76
- # check for mistakes using HTTP responses
77
- - httpresponse
78
- # detect impossible interface-to-interface type assertions
79
- - ifaceassert
80
- # check references to loop variables from within nested functions
81
- - loopclosure
82
- # check cancel func returned by context.WithCancel is called
83
- - lostcancel
84
- # check for useless comparisons between functions and nil
85
- - nilfunc
86
- # check for redundant or impossible nil comparisons
87
- - nilness
88
- # check consistency of Printf format strings and arguments
89
- - printf
90
- # check for comparing reflect.Value values with == or reflect.DeepEqual
91
- - reflectvaluecompare
92
- # check for possible unintended shadowing of variables
93
- - shadow
94
- # check for shifts that equal or exceed the width of the integer
95
- - shift
96
- # check for unbuffered channel of os.Signal
97
- - sigchanyzer
98
- # check the argument type of sort.Slice
99
- - sortslice
100
- # check signature of methods of well-known interfaces
101
- - stdmethods
102
- # check for string(int) conversions
103
- - stringintconv
104
- # check that struct field tags conform to reflect.StructTag.Get
105
- - structtag
106
- # report calls to (*testing.T).Fatal from goroutines started by a test.
107
- - testinggoroutine
108
- # check for common mistaken usages of tests and examples
109
- - tests
110
- # report passing non-pointer or non-interface values to unmarshal
111
- - unmarshal
112
- # check for unreachable code
113
- - unreachable
114
- # check for invalid conversions of uintptr to unsafe.Pointer
115
- - unsafeptr
116
- # check for unused results of calls to some functions
117
- - unusedresult
118
- # checks for unused writes
119
- - unusedwrite
120
- disable :
121
- # find structs that would use less memory if their fields were sorted
122
- - fieldalignment
28
+ enable :
29
+ - asmdecl
30
+ - assign
31
+ - atomic
32
+ - atomicalign
33
+ - bools
34
+ - buildtag
35
+ - cgocall
36
+ - composites
37
+ - copylocks
38
+ - deepequalerrors
39
+ - errorsas
40
+ - findcall
41
+ - framepointer
42
+ - httpresponse
43
+ - ifaceassert
44
+ - loopclosure
45
+ - lostcancel
46
+ - nilfunc
47
+ - nilness
48
+ - printf
49
+ - reflectvaluecompare
50
+ - shadow
51
+ - shift
52
+ - sigchanyzer
53
+ - sortslice
54
+ - stdmethods
55
+ - stringintconv
56
+ - structtag
57
+ - testinggoroutine
58
+ - tests
59
+ - unmarshal
60
+ - unreachable
61
+ - unsafeptr
62
+ - unusedresult
63
+ - unusedwrite
64
+ disable :
65
+ - fieldalignment
123
66
gofmt :
124
- # simplify code: gofmt with '-s' option, true by default
125
67
simplify : true
126
68
errcheck :
127
- # report about not checking of errors in type assetions: 'a := b.(MyStruct)';
128
- # default is false: such cases aren't reported by default.
129
69
check-type-assertions : true
130
- # report about assignment of errors to blank identifier: 'num, _ := strconv.Atoi(numStr)';
131
- # default is false: such cases aren't reported by default.
132
70
check-blank : true
133
71
gocyclo :
134
- # minimal code complexity to report, 30 by default (but we recommend 10-20)
135
- min-complexity : 15
72
+ min-complexity : 30
136
73
misspell :
137
- # Correct spellings using locale preferences for US or UK.
138
- # Default is to use a neutral variety of English.
139
- # Setting locale to US will correct the British spelling of 'colour' to 'color'.
140
74
locale : US
141
75
prealloc :
142
- # XXX: we don't recommend using this linter before doing performance profiling.
143
- # For most programs usage of prealloc will be a premature optimization.
144
- # Report preallocation suggestions only on simple loops that have no returns/breaks/continues/gotos in them.
145
- # True by default.
146
76
simple : true
147
- range-loops : true # Report preallocation suggestions on range loops, true by default
148
- for-loops : true # Report preallocation suggestions on for loops, false by default
77
+ range-loops : true
78
+ for-loops : true
149
79
unparam :
150
- # Inspect exported functions, default is false. Set to true if no external program/library imports your code.
151
- # XXX: if you enable this setting, unparam will report a lot of false-positives in text editors:
152
- # if it's called for subdir of a project it can't find external interfaces. All text editor integrations
153
- # with golangci-lint call it on a directory with the changed file.
154
80
check-exported : false
155
81
gci :
156
- # Section configuration to compare against.
157
- # Section names are case-insensitive and may contain parameters in ().
158
- # The default order of sections is 'standard > default > custom > blank > dot',
159
- # If 'custom-order' is 'true', it follows the order of 'sections' option.
160
- # Default: ["standard", "default"]
161
- # sections:
162
- # - standard # Standard section: captures all standard packages.
163
- # - default # Default section: contains all imports that could not be matched to another section type.
164
- # - blank # Blank section: contains all blank imports. This section is not present unless explicitly enabled.
165
- # - dot # Dot section: contains all dot imports. This section is not present unless explicitly enabled.
166
- # Skip generated files.
167
- # Default: true
168
82
skip-generated : true
169
- # Enable custom order of sections.
170
- # If 'true', make the section order the same as the order of 'sections'.
171
- # Default: false
172
83
custom-order : false
173
84
gosec :
174
- # To select a subset of rules to run.
175
- # Available rules: https://github.com/securego/gosec#available-rules
176
- # Default: [] - means include all rules
177
85
includes :
178
86
- G101 # Look for hard coded credentials
179
87
- G102 # Bind to all interfaces
@@ -209,9 +117,6 @@ linters-settings:
209
117
- G504 # Import blocklist: net/http/cgi
210
118
- G505 # Import blocklist: crypto/sha1
211
119
- G601 # Implicit memory aliasing of items from a range statement
212
- # To specify a set of rules to explicitly exclude.
213
- # Available rules: https://github.com/securego/gosec#available-rules
214
- # Default: []
215
120
excludes :
216
121
- G101 # Look for hard coded credentials
217
122
- G102 # Bind to all interfaces
@@ -247,106 +152,35 @@ linters-settings:
247
152
- G504 # Import blocklist: net/http/cgi
248
153
- G505 # Import blocklist: crypto/sha1
249
154
- G601 # Implicit memory aliasing of items from a range statement
250
- # Exclude generated files
251
- # Default: false
252
155
exclude-generated : true
253
- # Filter out the issues with a lower severity than the given value.
254
- # Valid options are: low, medium, high.
255
- # Default: low
256
156
severity : medium
257
- # Filter out the issues with a lower confidence than the given value.
258
- # Valid options are: low, medium, high.
259
- # Default: low
260
157
confidence : medium
261
- # Concurrency value.
262
- # Default: the number of logical CPUs usable by the current process.
263
158
concurrency : 12
264
- # To specify the configuration of rules.
265
159
config :
266
- # Globals are applicable to all rules.
267
160
global :
268
- # If true, ignore #nosec in comments (and an alternative as well).
269
- # Default: false
270
161
nosec : true
271
- # Add an alternative comment prefix to #nosec (both will work at the same time).
272
- # Default: ""
273
162
" #nosec " : " #my-custom-nosec"
274
- # Define whether nosec issues are counted as finding or not.
275
- # Default: false
276
163
show-ignored : true
277
- # Audit mode enables addition checks that for normal code analysis might be too nosy.
278
- # Default: false
279
164
audit : true
280
165
G101 :
281
- # Regexp pattern for variables and constants to find.
282
- # Default: "(?i)passwd|pass|password|pwd|secret|token|pw|apiKey|bearer|cred"
283
- pattern : " (?i)example"
284
- # If true, complain about all cases (even with low entropy).
285
- # Default: false
166
+ pattern : " (?i)passwd|pass|password|pwd|secret|token|pw|apiKey|bearer|cred"
286
167
ignore_entropy : false
287
- # Maximum allowed entropy of the string.
288
- # Default: "80.0"
289
168
entropy_threshold : " 80.0"
290
- # Maximum allowed value of entropy/string length.
291
- # Is taken into account if entropy >= entropy_threshold/2.
292
- # Default: "3.0"
293
169
per_char_threshold : " 3.0"
294
- # Calculate entropy for first N chars of the string.
295
- # Default: "16"
296
170
truncate : " 32"
297
- # Additional functions to ignore while checking unhandled errors.
298
- # Following functions always ignored:
299
- # bytes.Buffer:
300
- # - Write
301
- # - WriteByte
302
- # - WriteRune
303
- # - WriteString
304
- # fmt:
305
- # - Print
306
- # - Printf
307
- # - Println
308
- # - Fprint
309
- # - Fprintf
310
- # - Fprintln
311
- # strings.Builder:
312
- # - Write
313
- # - WriteByte
314
- # - WriteRune
315
- # - WriteString
316
- # io.PipeWriter:
317
- # - CloseWithError
318
- # hash.Hash:
319
- # - Write
320
- # os:
321
- # - Unsetenv
322
- # Default: {}
323
171
G104 :
324
172
fmt :
325
173
- Fscanf
326
174
G111 :
327
- # Regexp pattern to find potential directory traversal.
328
- # Default: "http\\.Dir\\(\"\\/\"\\)|http\\.Dir\\('\\/'\\)"
329
- pattern : " custom\\ .Dir\\ (\\ )"
330
- # Maximum allowed permissions mode for os.Mkdir and os.MkdirAll
331
- # Default: "0750"
175
+ pattern : " http\\ .Dir\\ (\"\\ /\"\\ )|http\\ .Dir\\ ('\\ /'\\ )"
332
176
G301 : " 0750"
333
- # Maximum allowed permissions mode for os.OpenFile and os.Chmod
334
- # Default: "0600"
335
177
G302 : " 0600"
336
- # Maximum allowed permissions mode for os.WriteFile and ioutil.WriteFile
337
- # Default: "0600"
338
178
G306 : " 0600"
339
179
340
180
lll :
341
- # Max line length, lines longer will be reported.
342
- # '\t' is counted as 1 character by default, and can be changed with the tab-width option.
343
- # Default: 120.
344
181
line-length : 130
345
- # Tab width in spaces.
346
- # Default: 1
347
182
tab-width : 1
348
183
staticcheck :
349
- # Deprecated: use the global `run.go` instead.
350
184
go : " 1.15"
351
185
# SAxxxx checks in https://staticcheck.io/docs/configuration/options/#checks
352
186
# Default: ["*"]
@@ -373,7 +207,6 @@ linters:
373
207
- errorlint
374
208
- bodyclose
375
209
- exportloopref
376
- # - gci
377
210
- gosec
378
- # - lll
211
+ - lll
379
212
fast : false
0 commit comments