lint: update golangci-lint to v1.45.2

Also removed deprecated linters:

The linter 'interfacer' is deprecated (since v1.38.0) due to: The repository of the linter has been archived by the owner.
The linter 'golint' is deprecated (since v1.41.0) due to: The repository of the linter has been archived by the owner.  Replaced by revive.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 3ffe6a3375)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
Sebastiaan van Stijn 2022-03-27 19:24:19 +02:00
parent 2f7e84be65
commit 779ed309a8
No known key found for this signature in database
GPG Key ID: 76698F39D527CE8C
2 changed files with 48 additions and 14 deletions

View File

@ -5,12 +5,10 @@ linters:
- dogsled - dogsled
- gocyclo - gocyclo
- goimports - goimports
- golint
- gosec - gosec
- gosimple - gosimple
- govet - govet
- ineffassign - ineffassign
- interfacer
- lll - lll
- megacheck - megacheck
- misspell - misspell
@ -21,6 +19,7 @@ linters:
- unconvert - unconvert
- unparam - unparam
- unused - unused
- revive
- varcheck - varcheck
disable: disable:
@ -54,30 +53,65 @@ issues:
- parameter .* always receives - parameter .* always receives
exclude-rules: exclude-rules:
# These are copied from the default exclude rules, except for "ineffective break statement" # We prefer to use an "exclude-list" so that new "default" exclusions are not
# and GoDoc checks. # automatically inherited. We can decide whether or not to follow upstream
# https://github.com/golangci/golangci-lint/blob/0cc87df732aaf1d5ad9ce9ca538d38d916918b36/pkg/config/config.go#L36 # defaults when updating golang-ci-lint versions.
- text: "Error return value of .((os\\.)?std(out|err)\\..*|.*Close|.*Flush|os\\.Remove(All)?|.*printf?|os\\.(Un)?Setenv). is not checked" # Unfortunately, this means we have to copy the whole exclusion pattern, as
# (unlike the "include" option), the "exclude" option does not take exclusion
# ID's.
#
# These exclusion patterns are copied from the default excluses at:
# https://github.com/golangci/golangci-lint/blob/v1.44.0/pkg/config/issues.go#L10-L104
# EXC0001
- text: "Error return value of .((os\\.)?std(out|err)\\..*|.*Close|.*Flush|os\\.Remove(All)?|.*print(f|ln)?|os\\.(Un)?Setenv). is not checked"
linters: linters:
- errcheck - errcheck
# EXC0003
- text: "func name will be used as test\\.Test.* by other packages, and that stutters; consider calling this" - text: "func name will be used as test\\.Test.* by other packages, and that stutters; consider calling this"
linters: linters:
- golint - revive
- text: "G103: Use of unsafe calls should be audited" # EXC0006
- text: "Use of unsafe calls should be audited"
linters: linters:
- gosec - gosec
- text: "G104: Errors unhandled" # EXC0007
- text: "Subprocess launch(ed with variable|ing should be audited)"
linters: linters:
- gosec - gosec
- text: "G204: Subprocess launch(ed with (variable|function call)|ing should be audited)" # EXC0008
# TODO: evaluate these and fix where needed: G307: Deferring unsafe method "*os.File" on type "Close" (gosec)
- text: "(G104|G307)"
linters: linters:
- gosec - gosec
- text: "(G301|G302): (Expect directory permissions to be 0750 or less|Expect file permissions to be 0600 or less)" # EXC0009
- text: "(Expect directory permissions to be 0750 or less|Expect file permissions to be 0600 or less)"
linters: linters:
- gosec - gosec
- text: "G304: Potential file inclusion via variable" # EXC0010
- text: "Potential file inclusion via variable"
linters: linters:
- gosec - gosec
- text: "(G201|G202): SQL string (formatting|concatenation)"
# Looks like the match in "EXC0007" above doesn't catch this one
# TODO: consider upstreaming this to golangci-lint's default exclusion rules
- text: "G204: Subprocess launched with a potential tainted input or cmd arguments"
linters: linters:
- gosec - gosec
# Looks like the match in "EXC0009" above doesn't catch this one
# TODO: consider upstreaming this to golangci-lint's default exclusion rules
- text: "G306: Expect WriteFile permissions to be 0600 or less"
linters:
- gosec
# Exclude some linters from running on tests files.
- path: _test\.go
linters:
- errcheck
- gosec
# Maximum issues count per one linter. Set to 0 to disable. Default is 50.
max-issues-per-linter: 0
# Maximum count of issues with the same text. Set to 0 to disable. Default is 3.
max-same-issues: 0

View File

@ -1,7 +1,7 @@
# syntax=docker/dockerfile:1.3 # syntax=docker/dockerfile:1.3
ARG GO_VERSION=1.17.13 ARG GO_VERSION=1.17.13
ARG GOLANGCI_LINTER_SHA="v1.21.0" ARG GOLANGCI_LINTER_SHA=v1.45.2
FROM golang:${GO_VERSION}-alpine AS build FROM golang:${GO_VERSION}-alpine AS build
ENV CGO_ENABLED=0 ENV CGO_ENABLED=0