forked from TrueCloudLab/lego
245 lines
7.9 KiB
YAML
245 lines
7.9 KiB
YAML
run:
|
|
timeout: 10m
|
|
|
|
linters-settings:
|
|
govet:
|
|
enable:
|
|
- shadow
|
|
gocyclo:
|
|
min-complexity: 12
|
|
goconst:
|
|
min-len: 3
|
|
min-occurrences: 3
|
|
funlen:
|
|
lines: -1
|
|
statements: 50
|
|
misspell:
|
|
locale: US
|
|
ignore-words:
|
|
- internetbs
|
|
depguard:
|
|
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
|
|
tagalign:
|
|
align: false
|
|
order:
|
|
- xml
|
|
- json
|
|
- yaml
|
|
- yml
|
|
- toml
|
|
- mapstructure
|
|
- url
|
|
godox:
|
|
keywords:
|
|
- FIXME
|
|
gocritic:
|
|
enabled-tags:
|
|
- diagnostic
|
|
- style
|
|
- performance
|
|
disabled-checks:
|
|
- paramTypeCombine # already handle by gofumpt.extra-rules
|
|
- whyNoLint # already handle by nonolint
|
|
- unnamedResult
|
|
- hugeParam
|
|
- sloppyReassign
|
|
- rangeValCopy
|
|
- octalLiteral
|
|
- ptrToRefParam
|
|
- appendAssign
|
|
- ruleguard
|
|
- httpNoBody
|
|
- exposedSyncMutex
|
|
revive:
|
|
rules:
|
|
- name: struct-tag
|
|
- 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
|
|
testifylint:
|
|
disable:
|
|
- require-error
|
|
- go-require
|
|
perfsprint:
|
|
err-error: true
|
|
errorf: true
|
|
sprintf1: true
|
|
strconcat: false
|
|
|
|
linters:
|
|
enable-all: true
|
|
disable:
|
|
- gomnd # deprecated
|
|
- cyclop # duplicate of gocyclo
|
|
- sqlclosecheck # not relevant (SQL)
|
|
- rowserrcheck # not relevant (SQL)
|
|
- execinquery # not relevant (SQL)
|
|
- lll
|
|
- gosec
|
|
- dupl # not relevant
|
|
- prealloc # too many false-positive
|
|
- bodyclose # too many false-positive
|
|
- mnd
|
|
- testpackage # not relevant
|
|
- tparallel # not relevant
|
|
- paralleltest # not relevant
|
|
- nestif # too many false-positive
|
|
- wrapcheck
|
|
- err113 # not relevant
|
|
- nlreturn # not relevant
|
|
- wsl # not relevant
|
|
- exhaustive # not relevant
|
|
- exhaustruct # not relevant
|
|
- makezero # not relevant
|
|
- forbidigo
|
|
- varnamelen # not relevant
|
|
- nilnil # not relevant
|
|
- ireturn # not relevant
|
|
- contextcheck # too many false-positive
|
|
- tenv # we already have a test "framework" to handle env vars
|
|
- noctx
|
|
- forcetypeassert
|
|
- tagliatelle
|
|
- errname
|
|
- errchkjson
|
|
- nonamedreturns
|
|
- musttag # false-positive https://github.com/junk1tm/musttag/issues/17
|
|
- gosmopolitan # not relevant
|
|
- exportloopref # Useless with go1.22
|
|
- canonicalheader # Can create side effects in the context of API clients
|
|
- usestdlibvars # false-positive https://github.com/sashamelentyev/usestdlibvars/issues/96
|
|
|
|
issues:
|
|
exclude-use-default: false
|
|
max-issues-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'
|
|
- 'exported (type|method|function) (.+) should have comment or be unexported'
|
|
- 'ST1000: at least one file in a package should have a package comment'
|
|
exclude-rules:
|
|
- path: (.+)_test.go
|
|
linters:
|
|
- funlen
|
|
- goconst
|
|
- maintidx
|
|
- path: (.+)_test.go
|
|
text: 'Error return value of `fmt.Fprintln` is not checked'
|
|
linters:
|
|
- errcheck
|
|
- path: providers/dns/dns_providers.go
|
|
linters:
|
|
- gocyclo
|
|
- path: providers/dns/gcloud/googlecloud_test.go
|
|
text: 'string `(lego\.wtf|manhattan)` has (\d+) occurrences, make it a constant'
|
|
- path: providers/dns/zoneee/zoneee_test.go
|
|
text: 'string `(bar|foo)` has (\d+) occurrences, make it a constant'
|
|
- path: certcrypto/crypto.go
|
|
text: '(tlsFeatureExtensionOID|ocspMustStapleFeature) is a global variable'
|
|
- path: challenge/dns01/nameserver.go
|
|
text: '(defaultNameservers|recursiveNameservers|fqdnSoaCache|muFqdnSoaCache) is a global variable'
|
|
- path: challenge/dns01/nameserver_.+.go
|
|
text: 'dnsTimeout is a global variable'
|
|
- path: challenge/dns01/nameserver_test.go
|
|
text: 'findXByFqdnTestCases is a global variable'
|
|
- path: challenge/http01/domain_matcher.go
|
|
text: 'string `Host` has \d occurrences, make it a constant'
|
|
- path: challenge/http01/domain_matcher.go
|
|
text: 'cyclomatic complexity \d+ of func `parseForwardedHeader` is high'
|
|
- path: challenge/http01/domain_matcher.go
|
|
text: "Function 'parseForwardedHeader' has too many statements"
|
|
- path: challenge/tlsalpn01/tls_alpn_challenge.go
|
|
text: 'idPeAcmeIdentifierV1 is a global variable'
|
|
- path: log/logger.go
|
|
text: 'Logger is a global variable'
|
|
- path: 'e2e/(dnschallenge/)?[\d\w]+_test.go'
|
|
text: load is a global variable
|
|
- path: 'providers/dns/([\d\w]+/)*[\d\w]+_test.go'
|
|
text: 'envTest is a global variable'
|
|
- path: 'providers/http/([\d\w]+/)*[\d\w]+_test.go'
|
|
text: 'envTest is a global variable'
|
|
- path: providers/dns/namecheap/namecheap_test.go
|
|
text: 'testCases is a global variable'
|
|
- path: providers/dns/acmedns/acmedns_test.go
|
|
text: 'egTestAccount is a global variable'
|
|
- path: providers/http/memcached/memcached_test.go
|
|
text: 'memcachedHosts is a global variable'
|
|
- path: providers/dns/sakuracloud/client_test.go
|
|
text: 'cyclomatic complexity 13 of func `(TestDNSProvider_cleanupTXTRecord_concurrent|TestDNSProvider_addTXTRecord_concurrent)` is high'
|
|
- path: providers/dns/dns_providers.go
|
|
text: "Function 'NewDNSChallengeProviderByName' has too many statements"
|
|
- path: cmd/flags.go
|
|
text: "Function 'CreateFlags' is too long"
|
|
- path: certificate/certificates.go
|
|
text: "Function 'GetOCSP' is too long"
|
|
- path: providers/dns/otc/client.go
|
|
text: "Function 'loginRequest' is too long"
|
|
- path: providers/dns/gandi/gandi.go
|
|
text: "Function 'Present' is too long"
|
|
- path: cmd/zz_gen_cmd_dnshelp.go
|
|
linters:
|
|
- gocyclo
|
|
- funlen
|
|
- path: providers/dns/checkdomain/internal/types.go
|
|
text: '`payed` is a misspelling of `paid`'
|
|
- path: providers/dns/namecheap/namecheap_test.go
|
|
text: 'cognitive complexity (\d+) of func `TestDNSProvider_getHosts` is high'
|
|
- path: platform/tester/env_test.go
|
|
linters:
|
|
- thelper
|
|
- path: providers/dns/oraclecloud/oraclecloud_test.go
|
|
text: 'SA1019: x509.EncryptPEMBlock has been deprecated since Go 1.16'
|
|
- path: challenge/http01/domain_matcher.go
|
|
text: 'yodaStyleExpr'
|
|
- path: providers/dns/dns_providers.go
|
|
text: 'Function name: NewDNSChallengeProviderByName,'
|
|
- path: providers/dns/sakuracloud/wrapper.go
|
|
text: 'mu is a global variable'
|
|
- path: providers/dns/hosttech/internal/client_test.go
|
|
text: 'Duplicate words \(0\) found'
|
|
- path: cmd/cmd_renew.go
|
|
text: 'cyclomatic complexity \d+ of func `(renewForDomains|renewForCSR)` is high'
|
|
- path: providers/dns/cpanel/cpanel.go
|
|
text: 'cyclomatic complexity 13 of func `\(\*DNSProvider\)\.CleanUp` is high'
|
|
|
|
# Those elements have been replaced by non-exposed structures.
|
|
- path: providers/dns/linode/linode_test.go
|
|
linters:
|
|
- staticcheck
|
|
text: "SA1019: linodego\\.(DomainsPagedResponse|DomainRecordsPagedResponse) is deprecated"
|
|
|
|
output:
|
|
sort-results: true
|
|
sort-order:
|
|
- linter
|
|
- file
|