-
Notifications
You must be signed in to change notification settings - Fork 0
/
.golangci.yml
121 lines (106 loc) · 2.8 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
# yaml-language-server: $schema=https://golangci-lint.run/jsonschema/golangci.jsonschema.json
# https://golangci-lint.run/usage/configuration/
# https://golangci-lint.run/usage/linters/
run:
go: '1.23'
timeout: 10m
issues-exit-code: 1
tests: true
build-tags:
- integration
modules-download-mode: readonly
output:
formats:
- format: colored-line-number
path: stderr
print-issued-lines: true
print-linter-name: true
uniq-by-line: true
linters:
enable-all: true
disable:
- exportloopref # deprecated
- exhaustruct # TODO: reconsider
- depguard # TODO: reconsider
- funlen # TODO: reconsider
- wsl
- lll
- wrapcheck
- varnamelen
- nonamedreturns
- testpackage
- godox
- godot
- gochecknoglobals
- mnd
issues:
# https://golangci-lint.run/usage/false-positives/#default-exclusions
exclude-use-default: true
include:
- EXC0004
- EXC0005
- EXC0006
exclude-rules:
- path: '(.+)_test\.go'
linters: [gochecknoglobals, goconst, goerr113, dupl, maintidx]
- path: '(.+)_test\.go'
linters: [govet]
text: 'fieldalignment:'
linters-settings:
# https://golangci-lint.run/usage/linters/#unused
unused:
field-writes-are-uses: false
post-statements-are-reads: false
exported-fields-are-used: true
parameters-are-used: true
local-variables-are-used: false
generated-is-used: true
# https://golangci-lint.run/usage/linters/#tagliatelle
tagliatelle:
case:
use-field-name: true
rules:
# Any struct tag type can be used.
# Support string case: `camel`, `pascal`, `kebab`, `snake`, `goCamel`, `goPascal`, `goKebab`, `goSnake`, `upper`, `lower`
json: snake
yaml: camel
xml: camel
bson: camel
avro: snake
mapstructure: kebab
# https://golangci-lint.run/usage/linters/#paralleltest
paralleltest:
ignore-missing: true
ignore-missing-subtests: true
# https://golangci-lint.run/usage/linters/#nolintlint
nolintlint:
# Disable to ensure that all nolint directives actually have an effect.
# Default: false
allow-unused: true
# https://golangci-lint.run/usage/linters/#nlreturn
nlreturn:
block-size: 3
# https://golangci-lint.run/usage/linters/#cyclop
cyclop:
max-complexity: 20
package-average: 0.0
skip-tests: true
# https://golangci-lint.run/usage/linters/#gocyclo
gocyclo:
min-complexity: 40
# https://golangci-lint.run/usage/linters/#maintidx
maintidx:
under: 10
# https://golangci-lint.run/usage/linters/#govet
govet:
enable-all: true
settings:
shadow:
strict: false
#disable:
# - fieldalignment
# https://golangci-lint.run/usage/linters/#prealloc
prealloc:
simple: true
range-loops: true
for-loops: true