1+ version : " 2"
2+ run :
3+ build-tags :
4+ - e2e
5+ allow-parallel-runners : true
16linters :
2- disable-all : true
7+ default : none
38 enable :
49 - asciicheck
510 - bidichk
@@ -13,14 +18,11 @@ linters:
1318 - errname
1419 - errorlint
1520 - exhaustive
16- - gci
1721 - ginkgolinter
1822 - goconst
1923 - gocritic
2024 - godot
21- - gofumpt
2225 - gosec
23- - gosimple
2426 - govet
2527 - importas
2628 - inamedparam
@@ -34,175 +36,171 @@ linters:
3436 - nilerr
3537 - nolintlint
3638 - nosprintfhostport
37- - prealloc
3839 - perfsprint
39- - revive
40+ - prealloc
4041 - reassign
42+ - revive
4143 - staticcheck
42- - stylecheck
4344 - tagalign
4445 - testifylint
45- - tenv
46- - typecheck
4746 - unconvert
4847 - unparam
4948 - unused
5049 - whitespace
51-
52- linters-settings :
53- depguard :
50+ settings :
51+ depguard :
52+ rules :
53+ main :
54+ deny :
55+ - pkg : github.com/pkg/errors
56+ desc : Should be replaced by stdlib errors package
57+ gosec :
58+ excludes :
59+ - G601
60+ importas :
61+ alias :
62+ - pkg : k8s.io/api/(\w+)/(v[\w\d]+)
63+ alias : $1$2
64+ - pkg : k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1
65+ alias : apiextensionsv1
66+ - pkg : k8s.io/apimachinery/pkg/apis/meta/v1
67+ alias : metav1
68+ - pkg : k8s.io/apimachinery/pkg/api/errors
69+ alias : apierrors
70+ - pkg : k8s.io/apimachinery/pkg/util/errors
71+ alias : kerrors
72+ - pkg : sigs.k8s.io/controller-runtime
73+ alias : ctrl
74+ - pkg : sigs.k8s.io/cluster-api/api/v1beta1
75+ alias : clusterv1
76+ - pkg : sigs.k8s.io/cluster-api/test/e2e
77+ alias : capie2e
78+ - pkg : github.com/ionos-cloud/cluster-api-provider-ionoscloud/api/v1alpha1
79+ alias : infrav1
80+ - pkg : github.com/ionos-cloud/sdk-go/v6
81+ alias : sdk
82+ no-unaliased : true
83+ ireturn :
84+ allow :
85+ - error
86+ - generic
87+ - ionoscloud.Client
88+ - bootstrap.ClusterProvider
89+ - framework.ClusterProxy
90+ loggercheck :
91+ require-string-key : true
92+ no-printf-like : true
93+ revive :
94+ enable-all-rules : true
95+ rules :
96+ - name : add-constant
97+ disabled : true
98+ - name : cognitive-complexity
99+ arguments :
100+ - 25
101+ - name : cyclomatic
102+ arguments :
103+ - 15
104+ - name : enforce-switch-style
105+ disabled : true
106+ - name : line-length-limit
107+ disabled : true
108+ - name : max-public-structs
109+ disabled : true
110+ - name : range-val-address
111+ disabled : true
112+ - name : struct-tag
113+ arguments :
114+ - json,inline
115+ - name : var-naming
116+ arguments :
117+ - []
118+ - - LAN
119+ - IP
120+ - NIC
121+ testifylint :
122+ enable-all : true
123+ exclusions :
124+ generated : lax
54125 rules :
55- main :
56- deny :
57- - pkg : " github.com/pkg/errors"
58- desc : Should be replaced by stdlib errors package
59- gci :
60- sections :
61- - standard
62- - default
63- - prefix(github.com/ionos-cloud/cluster-api-provider-ionoscloud)
64- - blank
65- - dot
66- gosec :
67- excludes :
68- - G601 # Implicit memory aliasing of items from a range statement: Obsolete since Go 1.22
69- importas :
70- no-unaliased : true
71- alias :
72- # Kubernetes
73- - pkg : k8s.io/api/(\w+)/(v[\w\d]+)
74- alias : $1$2
75- - pkg : k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1
76- alias : apiextensionsv1
77- - pkg : k8s.io/apimachinery/pkg/apis/meta/v1
78- alias : metav1
79- - pkg : k8s.io/apimachinery/pkg/api/errors
80- alias : apierrors
81- - pkg : k8s.io/apimachinery/pkg/util/errors
82- alias : kerrors
83- # Controller Runtime
84- - pkg : sigs.k8s.io/controller-runtime
85- alias : ctrl
86- # Cluster API
87- - pkg : sigs.k8s.io/cluster-api/api/v1beta1
88- alias : clusterv1
89- - pkg : " sigs.k8s.io/cluster-api/test/e2e"
90- alias : capie2e
91- # Own module
92- - pkg : github.com/ionos-cloud/cluster-api-provider-ionoscloud/api/v1alpha1
93- alias : infrav1
94- - pkg : github.com/ionos-cloud/sdk-go/v6
95- alias : sdk
96- ireturn :
97- allow :
98- - error
99- - generic
100- - ionoscloud.Client
101- - bootstrap.ClusterProvider
102- - framework.ClusterProxy
103- loggercheck :
104- require-string-key : true
105- no-printf-like : true
106- revive :
107- enable-all-rules : true
108- rules :
109- - name : add-constant
110- disabled : true
111- - name : cognitive-complexity
112- arguments :
113- - 25
114- - name : cyclomatic
115- arguments :
116- - 15
117- - name : line-length-limit
118- disabled : true
119- - name : max-public-structs
120- disabled : true
121- - name : range-val-address
122- disabled : true # Obsolete since Go 1.22
123- - name : struct-tag
124- arguments :
125- - json,inline
126- - name : var-naming
127- arguments :
128- - [] # first list is an allow list. All initialisms placed here will be ignored
129- - [LAN, IP, NIC] # second list is a deny list. These rules will be enforced
130- testifylint :
131- enable-all : true
132-
126+ - linters :
127+ - containedctx
128+ path : (.+)_test\.go
129+ - linters :
130+ - gocritic
131+ text : ' appendAssign: append result not assigned to the same slice'
132+ - linters :
133+ - revive
134+ text : ' comment-spacings: no space between comment delimiter and comment text'
135+ source : //(\+(kubebuilder|optional|required)|#nosec)
136+ - linters :
137+ - revive
138+ text : ' exported: exported method .*\.(Reconcile|SetupWithManager|SetupWebhookWithManager) should have comment or be unexported'
139+ - linters :
140+ - revive
141+ path : suite_test.go
142+ text : maximum number of lines per function exceeded
143+ - linters :
144+ - revive
145+ text : exported (method|function|type|const) (.+) should have comment or be unexported
146+ source : (func|type).*Fake.*
147+ - linters :
148+ - revive
149+ path : fake_\.go
150+ text : exported (method|function|type|const) (.+) should have comment or be unexported
151+ - linters :
152+ - revive
153+ path : (framework|e2e|infrastructure/docker)/.*.go
154+ text : exported (method|function|type|const) (.+) should have comment or be unexported
155+ - linters :
156+ - revive
157+ text : line is \d+ characters, out of limit \d+
158+ source : \s*//\+kubebuilder:.*
159+ - linters :
160+ - revive
161+ text : line is \d+ characters, out of limit \d+
162+ source : \s*//.*[-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?$
163+ - linters :
164+ - revive
165+ path : _test\.go
166+ text : ' function-length: maximum number of lines per function exceeded'
167+ - linters :
168+ - unparam
169+ text : always receives
170+ - path : _test\.go
171+ text : should not use dot imports
172+ - path : _test\.go
173+ text : cyclomatic complexity
174+ - path : (framework|e2e)/.*.go
175+ text : should not use dot imports
176+ paths :
177+ - zz_generated.*\.go$
178+ - .*conversion.*\.go$
179+ - mock*
180+ - third_party$
181+ - builtin$
182+ - examples$
133183issues :
134- max-same-issues : 0
135184 max-issues-per-linter : 0
136- # We are disabling default golangci exclusions because we want to help reviewers to focus on reviewing the most relevant
137- # changes in PRs and avoid nitpicking.
138- exclude-use-default : false
139- exclude-rules :
140- - linters :
141- - containedctx
142- path : ' (.+)_test\.go'
143- - linters :
144- - gocritic
145- text : " appendAssign: append result not assigned to the same slice"
146- - linters :
147- - revive
148- text : " comment-spacings: no space between comment delimiter and comment text"
149- source : " //(\\ +(kubebuilder|optional|required)|#nosec)"
150- - linters :
151- - revive
152- text : " exported: exported method .*\\ .(Reconcile|SetupWithManager|SetupWebhookWithManager) should have comment or be unexported"
153- - linters :
154- - revive
155- text : maximum number of lines per function exceeded
156- path : suite_test.go
157- # Exclude some packages or code to require comments, for example test code, or fake clients.
158- - linters :
159- - revive
160- text : exported (method|function|type|const) (.+) should have comment or be unexported
161- source : (func|type).*Fake.*
162- - linters :
163- - revive
164- text : exported (method|function|type|const) (.+) should have comment or be unexported
165- path : fake_\.go
166- - linters :
167- - revive
168- text : exported (method|function|type|const) (.+) should have comment or be unexported
169- path : " (framework|e2e|infrastructure/docker)/.*.go"
170- - linters :
171- - revive
172- text : " line is \\ d+ characters, out of limit \\ d+"
173- source : " \\ s*//\\ +kubebuilder:.*"
174- - linters :
175- - revive
176- text : " line is \\ d+ characters, out of limit \\ d+"
177- # If a line comment ends with something that looks like a URL, we ignore the line length limit.
178- source : " \\ s*//.*[-a-zA-Z0-9@:%_\\ +.~#?&//=]{2,256}\\ .[a-z]{2,4}\\ b(\\ /[-a-zA-Z0-9@:%_\\ +.~#?&//=]*)?$"
179- - linters :
180- - revive
181- text : " function-length: maximum number of lines per function exceeded"
182- path : _test\.go
183- # Disable unparam "always receives" which might not be really
184- # useful when building libraries.
185- - linters :
186- - unparam
187- text : always receives
188- # Dot imports for gomega or ginkgo are allowed
189- # within test files.
190- - path : _test\.go
191- text : should not use dot imports
192- - path : _test\.go
193- text : cyclomatic complexity
194- # Append should be able to assign to a different var/slice.
195- - path : (framework|e2e)/.*.go
196- text : should not use dot imports
197- exclude-files :
198- - " zz_generated.*\\ .go$"
199- - " .*conversion.*\\ .go$"
200- exclude-dirs :
201- - mock*
202-
203- run :
204- build-tags :
205- - e2e
206- timeout : 10m
207- allow-parallel-runners : true
208- go : " 1.22"
185+ max-same-issues : 0
186+ formatters :
187+ enable :
188+ - gci
189+ - gofumpt
190+ settings :
191+ gci :
192+ sections :
193+ - standard
194+ - default
195+ - prefix(github.com/ionos-cloud/cluster-api-provider-ionoscloud)
196+ - blank
197+ - dot
198+ exclusions :
199+ generated : lax
200+ paths :
201+ - zz_generated.*\.go$
202+ - .*conversion.*\.go$
203+ - mock*
204+ - third_party$
205+ - builtin$
206+ - examples$
0 commit comments