chore: update linter
This commit is contained in:
parent
40242294d8
commit
14ab1514dc
3 changed files with 191 additions and 220 deletions
2
.github/workflows/validate.yaml
vendored
2
.github/workflows/validate.yaml
vendored
|
@ -7,7 +7,7 @@ on:
|
||||||
|
|
||||||
env:
|
env:
|
||||||
GO_VERSION: 1.19
|
GO_VERSION: 1.19
|
||||||
GOLANGCI_LINT_VERSION: v1.49.0
|
GOLANGCI_LINT_VERSION: v1.50.0
|
||||||
MISSSPELL_VERSION: v0.4.0
|
MISSSPELL_VERSION: v0.4.0
|
||||||
IN_DOCKER: ""
|
IN_DOCKER: ""
|
||||||
|
|
||||||
|
|
219
.golangci.toml
219
.golangci.toml
|
@ -1,219 +0,0 @@
|
||||||
[run]
|
|
||||||
timeout = "10m"
|
|
||||||
skip-files = []
|
|
||||||
skip-dirs = [
|
|
||||||
"pkg/provider/kubernetes/crd/generated/",
|
|
||||||
]
|
|
||||||
|
|
||||||
[linters-settings]
|
|
||||||
|
|
||||||
[linters-settings.govet]
|
|
||||||
check-shadowing = false
|
|
||||||
|
|
||||||
[linters-settings.golint]
|
|
||||||
min-confidence = 0.0
|
|
||||||
|
|
||||||
[linters-settings.gocyclo]
|
|
||||||
min-complexity = 14.0
|
|
||||||
|
|
||||||
[linters-settings.goconst]
|
|
||||||
min-len = 3.0
|
|
||||||
min-occurrences = 4.0
|
|
||||||
|
|
||||||
[linters-settings.misspell]
|
|
||||||
locale = "US"
|
|
||||||
|
|
||||||
[linters-settings.funlen]
|
|
||||||
lines = 230 # default 60
|
|
||||||
statements = 120 # default 40
|
|
||||||
|
|
||||||
[linters-settings.forbidigo]
|
|
||||||
forbid = [
|
|
||||||
'^print(ln)?$',
|
|
||||||
'^spew\.Print(f|ln)?$',
|
|
||||||
'^spew\.Dump$',
|
|
||||||
]
|
|
||||||
|
|
||||||
[linters-settings.depguard]
|
|
||||||
list-type = "blacklist"
|
|
||||||
include-go-root = false
|
|
||||||
packages = ["github.com/pkg/errors"]
|
|
||||||
|
|
||||||
[linters-settings.godox]
|
|
||||||
keywords = ["FIXME"]
|
|
||||||
|
|
||||||
[linters-settings.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"
|
|
||||||
|
|
||||||
[linters-settings.revive]
|
|
||||||
[[linters-settings.revive.rules]]
|
|
||||||
name = "struct-tag"
|
|
||||||
[[linters-settings.rules]]
|
|
||||||
name = "blank-imports"
|
|
||||||
[[linters-settings.rules]]
|
|
||||||
name = "context-as-argument"
|
|
||||||
[[linters-settings.rules]]
|
|
||||||
name = "context-keys-type"
|
|
||||||
[[linters-settings.rules]]
|
|
||||||
name = "dot-imports"
|
|
||||||
[[linters-settings.rules]]
|
|
||||||
name = "error-return"
|
|
||||||
[[linters-settings.rules]]
|
|
||||||
name = "error-strings"
|
|
||||||
[[linters-settings.rules]]
|
|
||||||
name = "error-naming"
|
|
||||||
[[linters-settings.rules]]
|
|
||||||
name = "exported"
|
|
||||||
[[linters-settings.rules]]
|
|
||||||
name = "if-return"
|
|
||||||
[[linters-settings.rules]]
|
|
||||||
name = "increment-decrement"
|
|
||||||
[[linters-settings.rules]]
|
|
||||||
name = "var-naming"
|
|
||||||
[[linters-settings.rules]]
|
|
||||||
name = "var-declaration"
|
|
||||||
[[linters-settings.rules]]
|
|
||||||
name = "package-comments"
|
|
||||||
[[linters-settings.rules]]
|
|
||||||
name = "range"
|
|
||||||
[[linters-settings.rules]]
|
|
||||||
name = "receiver-naming"
|
|
||||||
[[linters-settings.rules]]
|
|
||||||
name = "time-naming"
|
|
||||||
[[linters-settings.rules]]
|
|
||||||
name = "unexported-return"
|
|
||||||
[[linters-settings.rules]]
|
|
||||||
name = "indent-error-flow"
|
|
||||||
[[linters-settings.rules]]
|
|
||||||
name = "errorf"
|
|
||||||
[[linters-settings.rules]]
|
|
||||||
name = "empty-block"
|
|
||||||
[[linters-settings.rules]]
|
|
||||||
name = "superfluous-else"
|
|
||||||
[[linters-settings.rules]]
|
|
||||||
name = "unused-parameter"
|
|
||||||
[[linters-settings.rules]]
|
|
||||||
name = "unreachable-code"
|
|
||||||
[[linters-settings.rules]]
|
|
||||||
name = "redefines-builtin-id"
|
|
||||||
|
|
||||||
[linters-settings.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",
|
|
||||||
"github.com/BurntSushi/toml",
|
|
||||||
]
|
|
||||||
|
|
||||||
[linters]
|
|
||||||
enable-all = true
|
|
||||||
disable = [
|
|
||||||
"scopelint", # Deprecated
|
|
||||||
"interfacer", # Deprecated
|
|
||||||
"maligned", # Deprecated
|
|
||||||
"golint", # Deprecated
|
|
||||||
"exhaustivestruct",# Deprecated
|
|
||||||
"nosnakecase", # Deprecated
|
|
||||||
"ifshort", # Deprecated
|
|
||||||
"structcheck", # Deprecated
|
|
||||||
"varcheck", # Deprecated
|
|
||||||
"deadcode", # Deprecated
|
|
||||||
"execinquery", # Not relevant (SQL)
|
|
||||||
"sqlclosecheck", # Not relevant (SQL)
|
|
||||||
"rowserrcheck", # Not relevant (SQL)
|
|
||||||
"lll", # Not relevant
|
|
||||||
"gocyclo", # FIXME must be fixed
|
|
||||||
"cyclop", # Duplicate of gocyclo
|
|
||||||
"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", # duplicate of exhaustivestruct
|
|
||||||
"goerr113", # Too strict
|
|
||||||
"wrapcheck", # Too strict
|
|
||||||
"noctx", # Too strict
|
|
||||||
"bodyclose", # Too many false-positive and panics.
|
|
||||||
"forcetypeassert", # Too strict
|
|
||||||
"tagliatelle", # Not compatible with current tags.
|
|
||||||
"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", # not relevant
|
|
||||||
]
|
|
||||||
|
|
||||||
[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",
|
|
||||||
]
|
|
||||||
[[issues.exclude-rules]]
|
|
||||||
path = "(.+)_test.go"
|
|
||||||
linters = ["goconst", "funlen", "godot"]
|
|
||||||
[[issues.exclude-rules]]
|
|
||||||
path = "(.+)_test.go"
|
|
||||||
text = " always receives "
|
|
||||||
linters = [ "unparam" ]
|
|
||||||
[[issues.exclude-rules]]
|
|
||||||
path = "pkg/server/service/bufferpool.go"
|
|
||||||
text = "SA6002: argument should be pointer-like to avoid allocations"
|
|
||||||
[[issues.exclude-rules]]
|
|
||||||
path = "pkg/server/middleware/middlewares.go"
|
|
||||||
text = "Function 'buildConstructor' has too many statements"
|
|
||||||
[[issues.exclude-rules]]
|
|
||||||
path = "pkg/tracing/haystack/logger.go"
|
|
||||||
linters = ["goprintffuncname"]
|
|
||||||
[[issues.exclude-rules]]
|
|
||||||
path = "pkg/tracing/tracing.go"
|
|
||||||
text = "printf-like formatting function 'SetErrorWithEvent' should be named 'SetErrorWithEventf'"
|
|
||||||
[[issues.exclude-rules]]
|
|
||||||
path = "(.+)\\.go"
|
|
||||||
text = "struct-tag: unknown option 'inline' in JSON tag"
|
|
||||||
[[issues.exclude-rules]]
|
|
||||||
path = "pkg/server/router/tcp/manager.go"
|
|
||||||
text = "Function 'buildEntryPointHandler' is too long (.+)"
|
|
||||||
[[issues.exclude-rules]]
|
|
||||||
path = "pkg/tls/tlsmanager_test.go"
|
|
||||||
text = "SA1019: config.ClientCAs.Subjects has been deprecated since Go 1.18"
|
|
||||||
[[issues.exclude-rules]]
|
|
||||||
path = "pkg/types/tls_test.go"
|
|
||||||
text = "SA1019: tlsConfig.RootCAs.Subjects has been deprecated since Go 1.18"
|
|
||||||
[[issues.exclude-rules]]
|
|
||||||
path = "pkg/provider/kubernetes/(crd|gateway)/client.go"
|
|
||||||
linters = ["interfacebloat"]
|
|
||||||
[[issues.exclude-rules]]
|
|
||||||
path = "pkg/metrics/metrics.go"
|
|
||||||
linters = ["interfacebloat"]
|
|
190
.golangci.yml
Normal file
190
.golangci.yml
Normal file
|
@ -0,0 +1,190 @@
|
||||||
|
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
|
||||||
|
- github.com/BurntSushi/toml
|
||||||
|
|
||||||
|
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
|
Loading…
Reference in a new issue