-
Notifications
You must be signed in to change notification settings - Fork 1.8k
/
Copy path.golangci.yml
153 lines (150 loc) · 4.97 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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
issues:
exclude-dirs:
- (^|/)node_modules/
- ^api/gen/
- ^docs/
- ^gen/
- ^rfd/
- ^web/
exclude-dirs-use-default: false
exclude-rules:
- linters:
- gosimple
text: "S1002: should omit comparison to bool constant"
- linters:
- revive
text: "exported: exported const"
# TODO(hugoShaka): Remove once https://github.com/dominikh/go-tools/issues/1294 is fixed
- linters:
- unused
path: 'integrations/operator/controllers/resources/(.+)_controller_test\.go'
- linters: [govet]
path-except: ^e/
text: "non-constant format string in call to github.com/gravitational/trace."
- linters: [testifylint]
text: "suite-thelper: suite helper method must start with"
path: 'integrations/.+'
exclude-use-default: true
max-same-issues: 0
max-issues-per-linter: 0
uniq-by-line: false
linters:
disable-all: true
enable:
- bodyclose
- depguard
- gci
- goimports
- gosimple
- govet
- ineffassign
- misspell
- nolintlint
- revive
- sloglint
- staticcheck
- testifylint
- unconvert
- unused
linters-settings:
depguard:
rules:
main:
deny:
- pkg: io/ioutil
desc: 'use "io" or "os" packages instead'
- pkg: github.com/golang/protobuf
desc: 'use "google.golang.org/protobuf"'
- pkg: github.com/hashicorp/go-uuid
desc: 'use "github.com/google/uuid" instead'
- pkg: github.com/pborman/uuid
desc: 'use "github.com/google/uuid" instead'
- pkg: github.com/siddontang/go-log/log
desc: 'use "github.com/sirupsen/logrus" instead'
- pkg: github.com/siddontang/go/log
desc: 'use "github.com/sirupsen/logrus" instead'
- pkg: github.com/tj/assert
desc: 'use "github.com/stretchr/testify/assert" instead'
- pkg: go.uber.org/atomic
desc: 'use "sync/atomic" instead'
- pkg: golang.design
desc: 'experimental project, not to be confused with official Go packages'
- pkg: golang.org/x/exp/slices
desc: 'use "slices" instead'
- pkg: github.com/hashicorp/go-version
desc: 'use "golang.org/x/mod/semver" or "coreos/go-semver/semver" instead'
- pkg: github.com/microsoftgraph/msgraph-sdk-go
desc: 'use "github.com/gravitational/teleport/lib/msgraph" instead'
- pkg: github.com/cloudflare/cfssl
desc: 'use "crypto" or "x/crypto" instead'
# Prevent importing internal packages in client tools or packages containing
# common interfaces consumed by them that are known to bloat binaries or break builds
# because they only support a single platform.
client-tools:
files:
# Tests can do anything
- "!$test"
- '**/tool/tbot/**'
- '**/lib/tbot/**'
- '**/tool/tctl/**'
- '**/tool/tsh/**'
- '**/lib/client/**'
- '**/lib/services/**'
- '**/lib/service/servicecfg/**'
- '**/lib/reversetunnelclient/**'
- '**/lib/auth/authclient/**'
- '**/lib/cloud/imds/**'
allow:
- github.com/gravitational/teleport/lib/cloud/imds
deny:
- pkg: github.com/gravitational/teleport/lib/auth$
desc: 'lib/auth should not be imported to prevent increasing binary size, prefer lib/auth/authclient instead'
- pkg: github.com/gravitational/teleport/lib/cloud
desc: 'lib/cloud should not be imported to prevent increasing binary size'
- pkg: github.com/gravitational/teleport/lib/srv$
desc: 'lib/srv prevents client tools from build on non-linux platforms'
- pkg: github.com/gravitational/teleport/lib/web$
desc: 'lib/web should not be imported to prevent increasing binary size'
list-mode: lax
errorlint:
comparison: true
asserts: true
errorf: true
gci:
sections:
- standard # Standard section: captures all standard packages.
- default # Default section: contains all imports that could not be matched to another section type.
- prefix(github.com/gravitational/teleport) # Custom section: groups all imports with the specified Prefix.
skip-generated: true # Skip generated files.
custom-order: true # Required for "sections" to take effect.
misspell:
locale: US
nolintlint:
allow-unused: true # Enabled because of conditional builds / build tags.
require-explanation: true
require-specific: true
revive:
rules:
- name: unused-parameter
disabled: true
sloglint:
context: all
key-naming-case: snake
static-msg: true
testifylint:
disable-all: true
enable:
- bool-compare
- compares
- empty
- error-is-as
- error-nil
- expected-actual
- float-compare
- len
- suite-extra-assert-call
- suite-thelper
run:
go: '1.22'
build-tags: []
timeout: 15m