2022-10-17 13:00:10 +03:00
run :
timeout : 10m
skip-files : [ ]
skip-dirs :
- pkg/provider/kubernetes/crd/generated/
linters-settings :
govet :
2023-04-17 11:56:36 +03:00
enable-all : true
disable :
- shadow
- fieldalignment
2022-10-17 13:00:10 +03:00
gocyclo :
min-complexity : 14
goconst :
min-len : 3
min-occurrences : 4
misspell :
locale : US
funlen :
lines : -1
statements : 120
forbidigo :
forbid :
- ^print(ln)?$
- ^spew\.Print(f|ln)?$
- ^spew\.Dump$
depguard :
2023-06-05 11:24:06 +03:00
rules :
main :
deny :
- pkg : "github.com/instana/testify"
desc : not allowed
- pkg : "github.com/pkg/errors"
desc : Should be replaced by standard lib errors package
2023-06-20 11:26:05 +03:00
- pkg : "k8s.io/api/networking/v1beta1"
desc : This API is deprecated
- pkg : "k8s.io/api/extensions/v1beta1"
desc : This API is deprecated
2022-10-17 13:00:10 +03:00
godox :
keywords :
- FIXME
importas :
2023-04-17 11:56:36 +03:00
no-unaliased : true
alias :
- alias : composeapi
pkg : github.com/docker/compose/v2/pkg/api
# Standard Kubernetes rewrites:
- alias : corev1
pkg : "k8s.io/api/core/v1"
- alias : netv1
pkg : "k8s.io/api/networking/v1"
- alias : admv1
pkg : "k8s.io/api/admission/v1"
- alias : admv1beta1
pkg : "k8s.io/api/admission/v1beta1"
- alias : metav1
pkg : "k8s.io/apimachinery/pkg/apis/meta/v1"
- alias : ktypes
pkg : "k8s.io/apimachinery/pkg/types"
- alias : kerror
pkg : "k8s.io/apimachinery/pkg/api/errors"
- alias : kclientset
pkg : "k8s.io/client-go/kubernetes"
- alias : kinformers
pkg : "k8s.io/client-go/informers"
- alias : ktesting
pkg : "k8s.io/client-go/testing"
- alias : kschema
pkg : "k8s.io/apimachinery/pkg/runtime/schema"
- alias : kscheme
pkg : "k8s.io/client-go/kubernetes/scheme"
- alias : kversion
pkg : "k8s.io/apimachinery/pkg/version"
- alias : kubefake
pkg : "k8s.io/client-go/kubernetes/fake"
- alias : discoveryfake
pkg : "k8s.io/client-go/discovery/fake"
# Kubernetes Gateway rewrites:
- alias : gateclientset
pkg : "sigs.k8s.io/gateway-api/pkg/client/clientset/gateway/versioned"
- alias : gateinformers
pkg : "sigs.k8s.io/gateway-api/pkg/client/informers/gateway/externalversions"
- alias : gatev1alpha2
pkg : "sigs.k8s.io/gateway-api/apis/v1alpha2"
# Traefik Kubernetes rewrites:
- alias : traefikv1alpha1
pkg : "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/traefikio/v1alpha1"
- alias : traefikclientset
pkg : "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/clientset/versioned"
- alias : traefikinformers
pkg : "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/informers/externalversions"
- alias : traefikscheme
pkg : "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/clientset/versioned/scheme"
- alias : traefikcrdfake
pkg : "github.com/traefik/traefik/v3/pkg/provider/kubernetes/crd/generated/clientset/versioned/fake"
tagalign :
align : false
sort : true
order :
- description
- json
- toml
- yaml
- yml
- label
- label-slice-as-struct
- file
- kv
- export
2022-10-17 13:00:10 +03:00
revive :
rules :
- name : struct-tag
2023-04-17 11:56:36 +03:00
- name : blank-imports
- name : context-as-argument
- name : context-keys-type
- name : dot-imports
- name : error-return
- name : error-strings
- name : error-naming
- name : exported
disabled : true
- name : if-return
- name : increment-decrement
- name : var-naming
- name : var-declaration
- name : package-comments
disabled : true
- name : range
- name : receiver-naming
- name : time-naming
- name : unexported-return
- name : indent-error-flow
- name : errorf
- name : empty-block
- name : superfluous-else
- name : unused-parameter
disabled : true
- name : unreachable-code
- name : redefines-builtin-id
2022-10-17 13:00:10 +03:00
gomoddirectives :
replace-allow-list :
- github.com/abbot/go-http-auth
- github.com/gorilla/mux
- github.com/mailgun/minheap
- github.com/mailgun/multibuf
- github.com/jaguilar/vt100
2024-01-05 17:10:05 +03:00
- github.com/cucumber/godog
2023-11-17 03:50:06 +03:00
testifylint :
2024-02-07 19:14:07 +03:00
disable :
- suite-dont-use-pkg
- require-error
- go-require
2024-01-29 19:32:05 +03:00
staticcheck :
checks :
- all
- -SA1019
2022-10-17 13:00:10 +03:00
linters :
enable-all : true
disable :
- deadcode # deprecated
- exhaustivestruct # deprecated
- golint # deprecated
- ifshort # deprecated
- interfacer # deprecated
- maligned # deprecated
- nosnakecase # deprecated
- scopelint # deprecated
- scopelint # deprecated
- structcheck # deprecated
- varcheck # deprecated
- sqlclosecheck # not relevant (SQL)
- rowserrcheck # not relevant (SQL)
- execinquery # not relevant (SQL)
- cyclop # duplicate of gocyclo
- lll # Not relevant
- gocyclo # FIXME must be fixed
- gocognit # Too strict
- nestif # Too many false-positive.
- prealloc # Too many false-positive.
- makezero # Not relevant
- dupl # Too strict
- gosec # Too strict
- gochecknoinits
- gochecknoglobals
- wsl # Too strict
- nlreturn # Not relevant
- gomnd # Too strict
- stylecheck # skip because report issues related to some generated files.
- testpackage # Too strict
- tparallel # Not relevant
- paralleltest # Not relevant
- exhaustive # Not relevant
- exhaustruct # Not relevant
- goerr113 # Too strict
- wrapcheck # Too strict
- noctx # Too strict
- bodyclose # too many false-positive
- forcetypeassert # Too strict
- tagliatelle # Too strict
- varnamelen # Not relevant
- nilnil # Not relevant
- ireturn # Not relevant
- contextcheck # too many false-positive
- containedctx # too many false-positive
- maintidx # kind of duplicate of gocyclo
- nonamedreturns # Too strict
2023-06-05 11:24:06 +03:00
- gosmopolitan # not relevant
2022-10-17 13:00:10 +03:00
issues :
exclude-use-default : false
2024-02-07 19:14:07 +03:00
max-issues-per-linter : 0
2022-10-17 13:00:10 +03:00
max-same-issues : 0
exclude :
- 'Error return value of .((os\.)?std(out|err)\..*|.*Close|.*Flush|os\.Remove(All)?|.*printf?|os\.(Un)?Setenv). is not checked'
- "should have a package comment, unless it's in another file for this package"
2024-02-07 19:14:07 +03:00
- 'fmt.Sprintf can be replaced with string addition'
2022-10-17 13:00:10 +03:00
exclude-rules :
- path : '(.+)_test.go'
linters :
- goconst
- funlen
- godot
- path : '(.+)_test.go'
text : ' always receives '
linters :
- unparam
- path : '(.+)\.go'
text: 'struct-tag : unknown option ''inline'' in JSON tag'
linters :
- revive
- path : pkg/server/service/bufferpool.go
text: 'SA6002 : argument should be pointer-like to avoid allocations'
- path : pkg/server/middleware/middlewares.go
text : "Function 'buildConstructor' has too many statements"
linters :
- funlen
2022-11-21 20:36:05 +03:00
- path : pkg/logs/haystack.go
2022-10-17 13:00:10 +03:00
linters :
- goprintffuncname
- path : pkg/tracing/tracing.go
text : "printf-like formatting function 'SetErrorWithEvent' should be named 'SetErrorWithEventf'"
linters :
- goprintffuncname
- path : pkg/tls/tlsmanager_test.go
text: 'SA1019 : config.ClientCAs.Subjects has been deprecated since Go 1.18'
- path : pkg/types/tls_test.go
text: 'SA1019 : tlsConfig.RootCAs.Subjects has been deprecated since Go 1.18'
2024-01-11 12:40:06 +03:00
- path : pkg/provider/kubernetes/crd/kubernetes.go
text: 'SA1019: middleware.Spec.IPWhiteList is deprecated : please use IPAllowList instead.'
- path : pkg/server/middleware/tcp/middlewares.go
text: 'SA1019: config.IPWhiteList is deprecated : please use IPAllowList instead.'
- path : pkg/server/middleware/middlewares.go
text: 'SA1019: config.IPWhiteList is deprecated : please use IPAllowList instead.'
2022-10-17 13:00:10 +03:00
- path : pkg/provider/kubernetes/(crd|gateway)/client.go
linters :
- interfacebloat
- path : pkg/metrics/metrics.go
linters :
- interfacebloat
- path : integration/healthcheck_test.go
text : 'Duplicate words \(wsp2,\) found'
linters :
- dupword
- path : pkg/types/domain_test.go
text : 'Duplicate words \(sub\) found'
linters :
- dupword
2022-12-09 11:58:05 +03:00
- path : pkg/provider/kubernetes/crd/kubernetes.go
text : "Function 'loadConfigurationFromCRD' has too many statements"
linters :
- funlen
2023-04-17 11:56:36 +03:00
- path : pkg/provider/kubernetes/gateway/client_mock_test.go
text: 'unusedwrite : unused write to field'
linters :
- govet
2024-01-23 11:22:05 +03:00
- path : pkg/cli/deprecation.go
linters :
- goconst
- path : pkg/cli/loader_file.go
linters :
- goconst