forked from qor/qor
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.golangci.yaml
180 lines (151 loc) · 5.8 KB
/
.golangci.yaml
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
run:
# The default concurrency value is the number of available CPU.
concurrency: 4
# Timeout for analysis, e.g. 30s, 5m.
# Default: 1m
timeout: 5m
# Include test files or not.
# Default: true
tests: true
# Which dirs to skip: issues from them won't be reported.
# Can use regexp here: `generated.*`, regexp is applied on full path.
# Default value is empty list,
# but default dirs are skipped independently of this option's value (see skip-dirs-use-default).
# "/" will be replaced by current OS file path separator to properly work on Windows.
skip-dirs:
- ui-tests
- themes
- repo-policy
- docs
# Enables skipping of directories:
# - vendor$, third_party$, testdata$, examples$, Godeps$, builtin$
# Default: true
skip-dirs-use-default: true
# If set we pass it to "go list -mod={option}". From "go help modules":
# If invoked with -mod=readonly, the go command is disallowed from the implicit
# automatic updating of go.mod described above. Instead, it fails when any changes
# to go.mod are needed. This setting is most useful to check that go.mod does
# not need updates, such as in a continuous integration and testing system.
# If invoked with -mod=vendor, the go command assumes that the vendor
# directory holds the correct copies of dependencies and ignores
# the dependency descriptions in go.mod.
#
# Allowed values: readonly|vendor|mod
# By default, it isn't set.
modules-download-mode: readonly
# Allow multiple parallel golangci-lint instances running.
# If false (default) - golangci-lint acquires file lock on start.
allow-parallel-runners: false
# Define the Go version limit.
# Mainly related to generics support since go1.18.
# Default: use Go version from the go.mod file, fallback on the env var `GOVERSION`, fallback on 1.18
# go: '1.21'
issues:
exclude:
- "^exported: exported var Err[A-Za-z0-9]+ should have comment or be unexported$"
- "shadow: declaration of .err. shadows declaration"
# Excluding configuration per-path, per-linter, per-text and per-source
exclude-rules:
# Exclude some linters from running on test files.
- path: _test\.go
linters:
- dupl
# Show only new issues created since branching away from default branch on the remote
# new-from-rev: origin/master
linters:
enable:
- dupl
- errcheck
- gocritic
- gofmt
- gofumpt
- goimports
- govet
- gosec
- ineffassign
- lll
- misspell
- revive
- staticcheck
- wsl
linters-settings:
dupl:
# tokens count to trigger issue, 150 by default
threshold: 200
errcheck:
# Report about assignment of errors to blank identifier: `num, _ := strconv.Atoi(numStr)`.
check-blank: true
# Report about not checking of errors in type assertions: `a := b.(MyStruct)`.
check-type-assertions: true
gocritic:
# See https://go-critic.github.io/overview#checks-overview
# To check which checks are enabled run `GL_DEBUG=gocritic golangci-lint run`
enabled-tags:
- performance
disabled-checks:
- hugeParam
gofmt:
# Simplify code with '-s' option
simplify: true
gofumpt:
# Choose whether or not to use the extra rules that are disabled by default
extra-rules: true
# Select the Go version to target.
lang-version: "1.22.7"
govet:
# Report about shadowed variables
check-shadowing: true
enable-all: true
disable:
- fieldalignment
gosec:
excludes:
- G601
lll:
# Max line length; lines longer will be reported
# '\t' is counted as 1 character by default, and can be changed with the 'tab-width' option
line-length: 120
# Tab width in spaces
tab-width: 2
misspell:
# Correct spellings using locale preferences for US or UK.
# Default is to use a neutral variety of English.
# Setting locale to US will correct the British spelling of 'colour' to 'color'.
# Intentionally leaving this unset as most engineering terminology skews US however Tyk standard is UK.
# locale: UK
ignore-words: []
staticcheck:
# https://staticcheck.io/docs/options#checks
checks: [ "all" ]
# Select the Go version to target.
go: "1.22.7"
whitespace:
multi-if: false # Enforces newlines (or comments) after every multi-line if statement
multi-func: false # Enforces newlines (or comments) after every multi-line function signature
wsl:
# Controls if you may cuddle assignments and anything without needing an empty line between them.
allow-assign-and-anything: false
# Allow calls and assignments to be cuddled as long as the lines have any matching variables, fields or types.
# Default is true.
allow-assign-and-call: true
# Controls if you may end case statements with a whitespace.
allow-case-trailing-whitespace: true
# Allow declarations (var) to be cuddled.
allow-cuddle-declarations: true
# Allow multiline assignments to be cuddled. Default is true.
allow-multiline-assign: true
# This option allows whitespace after each comment group that begins a block.
allow-separated-leading-comment: false
# Allow trailing comments in ending of blocks
allow-trailing-comment: false
# Enforces that an if statement checking an error variable
# is cuddled with the line that assigned that error variable.
enforce-err-cuddling: true
# Force newlines in end of case at this limit (0 = never).
force-case-trailing-whitespace: 0
# Enforces that an assignment which is actually a short declaration (using :=)
# is only allowed to cuddle with other short declarations, and not plain assignments, blocks, etc.
force-short-decl-cuddling: false
# Append is only allowed to be cuddled if appending value is matching variables, fields or types on line above.
# Default is true.
strict-append: true