forked from metal3-io/ironic-standalone-operator
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.golangci.yaml
135 lines (135 loc) · 2.86 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
run:
go: "1.23"
linters:
disable-all: true
enable:
- asasalint
- asciicheck
- bidichk
- bodyclose
#- containedctx
- copyloopvar
- decorder
- dogsled
- dupl
- dupword
- durationcheck
- errcheck
- errchkjson
- errname
- errorlint
- exhaustive
- exptostd
- fatcontext
- forbidigo
- forcetypeassert
#- gci
- ginkgolinter
- gocheckcompilerdirectives
- gochecksumtype
- goconst
- gocritic
#- godot
- gofmt
- goimports
- goprintffuncname
- gosec
- gosimple
- gosmopolitan
- govet
- iface
- importas
- ineffassign
- intrange
- loggercheck
- makezero
- mirror
- misspell
#- mnd
#- nakedret
#- nilerr
- nilnesserr
#- nilnil
- noctx
- nolintlint
- nosprintfhostport
#- perfsprint
- prealloc
- predeclared
- reassign
#- revive
- rowserrcheck
- staticcheck
- stylecheck
#- tagliatelle
- testifylint
- thelper
- tparallel
- typecheck
- unconvert
#- unparam
- unused
- usestdlibvars
- usetesting
- whitespace
# Run with --fast=false for more extensive checks
fast: true
linters-settings:
gosec:
severity: medium
confidence: medium
concurrency: 8
# (NOTE)elfosardo: we should try removing this exclude once we bump golangci-lint to 1.61
excludes:
- G115
importas:
no-unaliased: true
alias:
# Kubernetes
- pkg: k8s.io/api/core/v1
alias: corev1
- pkg: k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1
alias: apiextensionsv1
- pkg: k8s.io/apimachinery/pkg/apis/meta/v1
alias: metav1
- pkg: k8s.io/apimachinery/pkg/api/errors
alias: k8serrors
- pkg: k8s.io/apimachinery/pkg/util/errors
alias: kerrors
- pkg: k8s.io/component-base/logs/api/v1
alias: logsv1
# Controller Runtime
- pkg: sigs.k8s.io/controller-runtime
alias: ctrl
# IrSO
- pkg: github.com/metal3-io/ironic-standalone-operator/api/v1alpha1
alias: metal3api
nolintlint:
allow-unused: false
require-specific: true
gocritic:
enabled-tags:
- experimental
issues:
exclude-files:
- "zz_generated.*\\.go$"
- ".*conversion.*\\.go$"
include:
- EXC0002 # include "missing comments" issues from golangci-lint
max-issues-per-linter: 0
max-same-issues: 0
exclude-rules:
# Dot imports for gomega or ginkgo are allowed
# within test files.
- path: test/.*.go
text: should not use dot imports
# NOTE(dtantsur): IronicDatabase is deprecated but our own code still supports it.
# Remove this exclusion when it's entirely deleted.
- linters:
- staticcheck
text: "SA1019: (metal3api.IronicDatabase|metal3iov1alpha1.IronicDatabase|ironicConf.Spec.DatabaseName|ironic.DatabaseName|old.DatabaseName) is deprecated"
# NOTE(dtantsur): Kubebuilder insists on a specific way to call imports
- linters:
- importas
path: cmd/main.go
text: metal3iov1alpha1