run: timeout: 10m skip-files: [] skip-dirs: - pkg/provider/kubernetes/crd/generated/ linters-settings: govet: check-shadowing: false golint: min-confidence: 0 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: list-type: denylist include-go-root: false packages: - github.com/pkg/errors godox: keywords: - FIXME importas: corev1: k8s.io/api/core/v1 networkingv1beta1: k8s.io/api/networking/v1beta1 extensionsv1beta1: k8s.io/api/extensions/v1beta1 metav1: k8s.io/apimachinery/pkg/apis/meta/v1 kubeerror: k8s.io/apimachinery/pkg/api/errors composeapi: github.com/docker/compose/v2/pkg/api revive: rules: - name: struct-tag rules: - 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 - name: if-return - name: increment-decrement - name: var-naming - name: var-declaration - name: package-comments - 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 - name: unreachable-code - name: redefines-builtin-id gomoddirectives: replace-allow-list: - github.com/abbot/go-http-auth - github.com/go-check/check - github.com/gorilla/mux - github.com/mailgun/minheap - github.com/mailgun/multibuf - github.com/jaguilar/vt100 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 issues: exclude-use-default: false max-per-linter: 0 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" - 'SA1019: http.CloseNotifier has been deprecated' # FIXME must be fixed - 'SA1019: cfg.SSLRedirect is deprecated' - 'SA1019: cfg.SSLTemporaryRedirect is deprecated' - 'SA1019: cfg.SSLHost is deprecated' - 'SA1019: cfg.SSLForceHost is deprecated' - 'SA1019: cfg.FeaturePolicy is deprecated' - 'SA1019: c.Providers.ConsulCatalog.Namespace is deprecated' - 'SA1019: c.Providers.Consul.Namespace is deprecated' 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 - path: pkg/tracing/haystack/logger.go 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' - 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