Skip to content

Commit 2964db6

Browse files
author
tony-landreth
committed
Updates golangci-lint config
1 parent 0f187c6 commit 2964db6

File tree

2 files changed

+266
-115
lines changed

2 files changed

+266
-115
lines changed

.golangci.bck.yaml

+122
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
# https://golangci-lint.run/usage/configuration/
2+
3+
linters:
4+
disable:
5+
- contextcheck
6+
- gofumpt
7+
enable:
8+
- goheader
9+
- gosimple
10+
- importas
11+
- misspell
12+
- unconvert
13+
presets:
14+
- bugs
15+
- format
16+
- import
17+
- unused
18+
19+
linters-settings:
20+
depguard:
21+
rules:
22+
everything:
23+
list-mode: lax
24+
allow:
25+
- go.opentelemetry.io/otel/semconv/v1.27.0
26+
deny:
27+
- pkg: go.opentelemetry.io/otel/semconv
28+
desc: Use "go.opentelemetry.io/otel/semconv/v1.27.0" instead.
29+
30+
- pkg: io/ioutil
31+
desc: >
32+
Use the "io" and "os" packages instead.
33+
See https://go.dev/doc/go1.16#ioutil
34+
35+
not-tests:
36+
files: ['!$test']
37+
deny:
38+
- pkg: net/http/httptest
39+
desc: Should be used only in tests.
40+
41+
- pkg: testing/*
42+
desc: The "testing" packages should be used only in tests.
43+
44+
- pkg: github.com/crunchydata/postgres-operator/internal/testing/*
45+
desc: The "internal/testing" packages should be used only in tests.
46+
47+
- pkg: k8s.io/client-go/discovery
48+
desc: Use the "internal/kubernetes" package instead.
49+
50+
tests:
51+
files: ['$test']
52+
deny:
53+
- pkg: github.com/pkg/errors
54+
desc: Use the "errors" package unless you are interacting with stack traces.
55+
56+
errchkjson:
57+
check-error-free-encoding: true
58+
59+
exhaustive:
60+
default-signifies-exhaustive: true
61+
62+
gci:
63+
sections:
64+
- standard
65+
- default
66+
- localmodule
67+
68+
goheader:
69+
template: |-
70+
Copyright {{ DATES }} Crunchy Data Solutions, Inc.
71+
72+
SPDX-License-Identifier: Apache-2.0
73+
values:
74+
regexp:
75+
DATES: '((201[7-9]|202[0-4]) - 2025|2025)'
76+
77+
gomodguard:
78+
blocked:
79+
modules:
80+
- gopkg.in/yaml.v2: { recommendations: [sigs.k8s.io/yaml] }
81+
- gopkg.in/yaml.v3: { recommendations: [sigs.k8s.io/yaml] }
82+
- gotest.tools: { recommendations: [gotest.tools/v3] }
83+
- k8s.io/kubernetes:
84+
reason: >
85+
k8s.io/kubernetes is for managing dependencies of the Kubernetes
86+
project, i.e. building kubelet and kubeadm.
87+
88+
gosec:
89+
excludes:
90+
# Flags for potentially-unsafe casting of ints, similar problem to globally-disabled G103
91+
- G115
92+
93+
importas:
94+
alias:
95+
- pkg: k8s.io/api/(\w+)/(v[\w\w]+)
96+
alias: $1$2
97+
- pkg: k8s.io/apimachinery/pkg/apis/(\w+)/(v[\w\d]+)
98+
alias: $1$2
99+
- pkg: k8s.io/apimachinery/pkg/api/errors
100+
alias: apierrors
101+
no-unaliased: true
102+
103+
spancheck:
104+
checks: [end, record-error]
105+
extra-start-span-signatures:
106+
- 'github.com/crunchydata/postgres-operator/internal/tracing.Start:opentelemetry'
107+
ignore-check-signatures:
108+
- 'tracing.Escape'
109+
110+
issues:
111+
exclude-generated: strict
112+
exclude-rules:
113+
# This internal package is the one place we want to do API discovery.
114+
- linters: [depguard]
115+
path: internal/kubernetes/discovery.go
116+
text: k8s.io/client-go/discovery
117+
118+
# These value types have unmarshal methods.
119+
# https://github.com/raeperd/recvcheck/issues/7
120+
- linters: [recvcheck]
121+
path: internal/pki/pki.go
122+
text: 'methods of "(Certificate|PrivateKey)"'

.golangci.yaml

+144-115
Original file line numberDiff line numberDiff line change
@@ -1,122 +1,151 @@
1-
# https://golangci-lint.run/usage/configuration/
2-
1+
version: "2"
32
linters:
4-
disable:
5-
- contextcheck
6-
- gofumpt
73
enable:
4+
- asasalint
5+
- asciicheck
6+
- bidichk
7+
- bodyclose
8+
- depguard
9+
- durationcheck
10+
- errchkjson
11+
- errorlint
12+
- exhaustive
13+
- gocheckcompilerdirectives
14+
- gochecksumtype
815
- goheader
9-
- gosimple
16+
- gomodguard
17+
- gosec
18+
- gosmopolitan
1019
- importas
20+
- loggercheck
21+
- makezero
1122
- misspell
23+
- musttag
24+
- nilerr
25+
- nilnesserr
26+
- noctx
27+
- protogetter
28+
- reassign
29+
- recvcheck
30+
- rowserrcheck
31+
- spancheck
32+
- sqlclosecheck
33+
- testifylint
1234
- unconvert
13-
presets:
14-
- bugs
15-
- format
16-
- import
17-
- unused
18-
19-
linters-settings:
20-
depguard:
35+
- unparam
36+
- zerologlint
37+
disable:
38+
- contextcheck
39+
settings:
40+
depguard:
41+
rules:
42+
everything:
43+
list-mode: lax
44+
allow:
45+
- go.opentelemetry.io/otel/semconv/v1.27.0
46+
deny:
47+
- pkg: go.opentelemetry.io/otel/semconv
48+
desc: Use "go.opentelemetry.io/otel/semconv/v1.27.0" instead.
49+
- pkg: io/ioutil
50+
desc: |
51+
Use the "io" and "os" packages instead. See https://go.dev/doc/go1.16#ioutil
52+
not-tests:
53+
files:
54+
- '!$test'
55+
deny:
56+
- pkg: net/http/httptest
57+
desc: Should be used only in tests.
58+
- pkg: testing/*
59+
desc: The "testing" packages should be used only in tests.
60+
- pkg: github.com/crunchydata/postgres-operator/internal/testing/*
61+
desc: The "internal/testing" packages should be used only in tests.
62+
- pkg: k8s.io/client-go/discovery
63+
desc: Use the "internal/kubernetes" package instead.
64+
tests:
65+
files:
66+
- $test
67+
deny:
68+
- pkg: github.com/pkg/errors
69+
desc: Use the "errors" package unless you are interacting with stack traces.
70+
errchkjson:
71+
check-error-free-encoding: true
72+
exhaustive:
73+
default-signifies-exhaustive: true
74+
goheader:
75+
values:
76+
regexp:
77+
DATES: ((201[7-9]|202[0-4]) - 2025|2025)
78+
template: |-
79+
Copyright {{ DATES }} Crunchy Data Solutions, Inc.
80+
81+
SPDX-License-Identifier: Apache-2.0
82+
gomodguard:
83+
blocked:
84+
modules:
85+
- gopkg.in/yaml.v2:
86+
recommendations:
87+
- sigs.k8s.io/yaml
88+
- gopkg.in/yaml.v3:
89+
recommendations:
90+
- sigs.k8s.io/yaml
91+
- gotest.tools:
92+
recommendations:
93+
- gotest.tools/v3
94+
- k8s.io/kubernetes:
95+
reason: |
96+
k8s.io/kubernetes is for managing dependencies of the Kubernetes project, i.e. building kubelet and kubeadm.
97+
gosec:
98+
excludes:
99+
- G115
100+
importas:
101+
alias:
102+
- pkg: k8s.io/api/(\w+)/(v[\w\w]+)
103+
alias: $1$2
104+
- pkg: k8s.io/apimachinery/pkg/apis/(\w+)/(v[\w\d]+)
105+
alias: $1$2
106+
- pkg: k8s.io/apimachinery/pkg/api/errors
107+
alias: apierrors
108+
no-unaliased: true
109+
spancheck:
110+
checks:
111+
- end
112+
- record-error
113+
ignore-check-signatures:
114+
- tracing.Escape
115+
extra-start-span-signatures:
116+
- github.com/crunchydata/postgres-operator/internal/tracing.Start:opentelemetry
117+
exclusions:
118+
presets:
119+
- comments
120+
- common-false-positives
121+
- legacy
122+
- std-error-handling
21123
rules:
22-
everything:
23-
list-mode: lax
24-
allow:
25-
- go.opentelemetry.io/otel/semconv/v1.27.0
26-
deny:
27-
- pkg: go.opentelemetry.io/otel/semconv
28-
desc: Use "go.opentelemetry.io/otel/semconv/v1.27.0" instead.
29-
30-
- pkg: io/ioutil
31-
desc: >
32-
Use the "io" and "os" packages instead.
33-
See https://go.dev/doc/go1.16#ioutil
34-
35-
not-tests:
36-
files: ['!$test']
37-
deny:
38-
- pkg: net/http/httptest
39-
desc: Should be used only in tests.
40-
41-
- pkg: testing/*
42-
desc: The "testing" packages should be used only in tests.
43-
44-
- pkg: github.com/crunchydata/postgres-operator/internal/testing/*
45-
desc: The "internal/testing" packages should be used only in tests.
46-
47-
- pkg: k8s.io/client-go/discovery
48-
desc: Use the "internal/kubernetes" package instead.
49-
50-
tests:
51-
files: ['$test']
52-
deny:
53-
- pkg: github.com/pkg/errors
54-
desc: Use the "errors" package unless you are interacting with stack traces.
55-
56-
errchkjson:
57-
check-error-free-encoding: true
58-
59-
exhaustive:
60-
default-signifies-exhaustive: true
61-
62-
gci:
63-
sections:
64-
- standard
65-
- default
66-
- localmodule
67-
68-
goheader:
69-
template: |-
70-
Copyright {{ DATES }} Crunchy Data Solutions, Inc.
71-
72-
SPDX-License-Identifier: Apache-2.0
73-
values:
74-
regexp:
75-
DATES: '((201[7-9]|202[0-4]) - 2025|2025)'
76-
77-
gomodguard:
78-
blocked:
79-
modules:
80-
- gopkg.in/yaml.v2: { recommendations: [sigs.k8s.io/yaml] }
81-
- gopkg.in/yaml.v3: { recommendations: [sigs.k8s.io/yaml] }
82-
- gotest.tools: { recommendations: [gotest.tools/v3] }
83-
- k8s.io/kubernetes:
84-
reason: >
85-
k8s.io/kubernetes is for managing dependencies of the Kubernetes
86-
project, i.e. building kubelet and kubeadm.
87-
88-
gosec:
89-
excludes:
90-
# Flags for potentially-unsafe casting of ints, similar problem to globally-disabled G103
91-
- G115
92-
93-
importas:
94-
alias:
95-
- pkg: k8s.io/api/(\w+)/(v[\w\w]+)
96-
alias: $1$2
97-
- pkg: k8s.io/apimachinery/pkg/apis/(\w+)/(v[\w\d]+)
98-
alias: $1$2
99-
- pkg: k8s.io/apimachinery/pkg/api/errors
100-
alias: apierrors
101-
no-unaliased: true
102-
103-
spancheck:
104-
checks: [end, record-error]
105-
extra-start-span-signatures:
106-
- 'github.com/crunchydata/postgres-operator/internal/tracing.Start:opentelemetry'
107-
ignore-check-signatures:
108-
- 'tracing.Escape'
109-
110-
issues:
111-
exclude-generated: strict
112-
exclude-rules:
113-
# This internal package is the one place we want to do API discovery.
114-
- linters: [depguard]
115-
path: internal/kubernetes/discovery.go
116-
text: k8s.io/client-go/discovery
117-
118-
# These value types have unmarshal methods.
119-
# https://github.com/raeperd/recvcheck/issues/7
120-
- linters: [recvcheck]
121-
path: internal/pki/pki.go
122-
text: 'methods of "(Certificate|PrivateKey)"'
124+
- linters:
125+
- depguard
126+
path: internal/kubernetes/discovery.go
127+
text: k8s.io/client-go/discovery
128+
- linters:
129+
- recvcheck
130+
path: internal/pki/pki.go
131+
text: methods of "(Certificate|PrivateKey)"
132+
paths:
133+
- third_party$
134+
- builtin$
135+
- examples$
136+
formatters:
137+
enable:
138+
- gci
139+
- gofmt
140+
- goimports
141+
settings:
142+
gci:
143+
sections:
144+
- standard
145+
- default
146+
- localmodule
147+
exclusions:
148+
paths:
149+
- third_party$
150+
- builtin$
151+
- examples$

0 commit comments

Comments
 (0)