374 lines
9.7 KiB
YAML
374 lines
9.7 KiB
YAML
# Defines the configuration version.
|
|
# The only possible value is "2".
|
|
version: "2"
|
|
|
|
linters:
|
|
# Default set of linters.
|
|
# The value can be: `standard`, `all`, `none`, or `fast`.
|
|
# Default: standard
|
|
default: all
|
|
# Enable specific linter.
|
|
# https://golangci-lint.run/usage/linters/#enabled-by-default
|
|
enable:
|
|
- asasalint
|
|
- asciicheck
|
|
- bidichk
|
|
- bodyclose
|
|
- canonicalheader
|
|
- containedctx
|
|
- contextcheck
|
|
- copyloopvar
|
|
- cyclop
|
|
- decorder
|
|
- depguard
|
|
- dogsled
|
|
- dupl
|
|
- dupword
|
|
- durationcheck
|
|
- err113
|
|
- errcheck
|
|
- errchkjson
|
|
- errname
|
|
- errorlint
|
|
- exhaustive
|
|
- exhaustruct
|
|
- exptostd
|
|
- fatcontext
|
|
- forbidigo
|
|
- forcetypeassert
|
|
- funlen
|
|
- ginkgolinter
|
|
- gocheckcompilerdirectives
|
|
- gochecknoglobals
|
|
- gochecknoinits
|
|
- gochecksumtype
|
|
- gocognit
|
|
- goconst
|
|
- gocritic
|
|
- gocyclo
|
|
- godot
|
|
- godox
|
|
- goheader
|
|
- gomoddirectives
|
|
- gomodguard
|
|
- goprintffuncname
|
|
- gosec
|
|
- gosmopolitan
|
|
- govet
|
|
- grouper
|
|
- iface
|
|
- importas
|
|
- inamedparam
|
|
- ineffassign
|
|
- interfacebloat
|
|
- intrange
|
|
- ireturn
|
|
- lll
|
|
- loggercheck
|
|
- maintidx
|
|
- makezero
|
|
- mirror
|
|
- misspell
|
|
- mnd
|
|
- musttag
|
|
- nakedret
|
|
- nestif
|
|
- nilerr
|
|
- nilnesserr
|
|
- nilnil
|
|
- nlreturn
|
|
- noctx
|
|
- nolintlint
|
|
- nonamedreturns
|
|
- nosprintfhostport
|
|
- paralleltest
|
|
- perfsprint
|
|
- prealloc
|
|
- predeclared
|
|
- promlinter
|
|
- protogetter
|
|
- reassign
|
|
- recvcheck
|
|
- revive
|
|
- rowserrcheck
|
|
- sloglint
|
|
- spancheck
|
|
- sqlclosecheck
|
|
- staticcheck
|
|
- tagalign
|
|
- tagliatelle
|
|
- testableexamples
|
|
- testifylint
|
|
- testpackage
|
|
- thelper
|
|
- tparallel
|
|
- unconvert
|
|
- unparam
|
|
- unused
|
|
- usestdlibvars
|
|
- usetesting
|
|
- varnamelen
|
|
- wastedassign
|
|
- whitespace
|
|
- wrapcheck
|
|
- wsl
|
|
- zerologlint
|
|
- misspell
|
|
- mnd
|
|
- funlen
|
|
- goconst
|
|
- gocritic
|
|
- gocyclo
|
|
- gosec
|
|
- govet
|
|
- unparam
|
|
- unused
|
|
- errname
|
|
- reassign
|
|
# Disable specific linter
|
|
# https://golangci-lint.run/usage/linters/#disabled-by-default
|
|
disable:
|
|
- varnamelen
|
|
- asasalint
|
|
- asciicheck
|
|
- bidichk
|
|
- bodyclose
|
|
- canonicalheader
|
|
- containedctx
|
|
- contextcheck
|
|
- copyloopvar
|
|
- cyclop
|
|
- decorder
|
|
- depguard
|
|
- dogsled
|
|
- dupl
|
|
- dupword
|
|
- durationcheck
|
|
- err113
|
|
- errcheck
|
|
- errchkjson
|
|
- errorlint
|
|
- exhaustive
|
|
- exhaustruct
|
|
- exptostd
|
|
- fatcontext
|
|
- forbidigo
|
|
- forcetypeassert
|
|
- ginkgolinter
|
|
- gocheckcompilerdirectives
|
|
- gochecknoglobals
|
|
- gochecknoinits
|
|
- gochecksumtype
|
|
- gocognit
|
|
- godot
|
|
- godox
|
|
- gosmopolitan
|
|
- goheader
|
|
- gomoddirectives
|
|
- gomodguard
|
|
- goprintffuncname
|
|
- grouper
|
|
- iface
|
|
- importas
|
|
- inamedparam
|
|
- ineffassign
|
|
- interfacebloat
|
|
- intrange
|
|
- ireturn
|
|
- lll
|
|
- loggercheck
|
|
- maintidx
|
|
- makezero
|
|
- mirror
|
|
- musttag
|
|
- nakedret
|
|
- nestif
|
|
- nilerr
|
|
- nilnesserr
|
|
- nilnil
|
|
- nlreturn
|
|
- noctx
|
|
- nolintlint
|
|
- nonamedreturns
|
|
- nosprintfhostport
|
|
- paralleltest
|
|
- perfsprint
|
|
- prealloc
|
|
- predeclared
|
|
- promlinter
|
|
- protogetter
|
|
- reassign
|
|
- recvcheck
|
|
- revive
|
|
- rowserrcheck
|
|
- sloglint
|
|
- spancheck
|
|
- sqlclosecheck
|
|
- staticcheck
|
|
- tagalign
|
|
- tagliatelle
|
|
- testableexamples
|
|
- testifylint
|
|
- testpackage
|
|
- thelper
|
|
- tparallel
|
|
- unconvert
|
|
- usestdlibvars
|
|
- usetesting
|
|
- wastedassign
|
|
- whitespace
|
|
- wrapcheck
|
|
- wsl
|
|
- zerologlint
|
|
# All available settings of specific linters.
|
|
settings:
|
|
# See the dedicated "linters.settings" documentation section.
|
|
govet:
|
|
enable-all: true
|
|
# Defines a set of rules to ignore issues.
|
|
# It does not skip the analysis, and so does not ignore "typecheck" errors.
|
|
exclusions:
|
|
# Mode of the generated files analysis.
|
|
#
|
|
# - `strict`: sources are excluded by strictly following the Go generated file convention.
|
|
# Source files that have lines matching only the following regular expression will be excluded: `^// Code generated .* DO NOT EDIT\.$`
|
|
# This line must appear before the first non-comment, non-blank text in the file.
|
|
# https://go.dev/s/generatedcode
|
|
# - `lax`: sources are excluded if they contain lines like `autogenerated file`, `code generated`, `do not edit`, etc.
|
|
# - `disable`: disable the generated files exclusion.
|
|
#
|
|
# Default: lax
|
|
generated: strict
|
|
# Log a warning if an exclusion rule is unused.
|
|
# Default: false
|
|
warn-unused: true
|
|
# Predefined exclusion rules.
|
|
# Default: []
|
|
presets:
|
|
- comments
|
|
- std-error-handling
|
|
- common-false-positives
|
|
- legacy
|
|
# Excluding configuration per-path, per-linter, per-text and per-source.
|
|
# rules:
|
|
# # Exclude some linters from running on tests files.
|
|
# - path: _test\.go
|
|
# linters:
|
|
# - gocyclo
|
|
# - errcheck
|
|
# - dupl
|
|
# - gosec
|
|
# # Run some linter only for test files by excluding its issues for everything else.
|
|
# - path-except: _test\.go
|
|
# linters:
|
|
# - forbidigo
|
|
# # Exclude known linters from partially hard-vendored code,
|
|
# # which is impossible to exclude via `nolint` comments.
|
|
# # `/` will be replaced by the current OS file path separator to properly work on Windows.
|
|
# - path: internal/hmac/
|
|
# text: "weak cryptographic primitive"
|
|
# linters:
|
|
# - gosec
|
|
# # Exclude some `staticcheck` messages.
|
|
# - linters:
|
|
# - staticcheck
|
|
# text: "SA9003:"
|
|
# # Exclude `lll` issues for long lines with `go:generate`.
|
|
# - linters:
|
|
# - lll
|
|
# source: "^//go:generate "
|
|
# # Which file paths to exclude: they will be analyzed, but issues from them won't be reported.
|
|
# # "/" will be replaced by the current OS file path separator to properly work on Windows.
|
|
# # Default: []
|
|
# paths:
|
|
# - ".*\\.my\\.go$"
|
|
# - lib/bad.go
|
|
# # Which file paths to not exclude.
|
|
# # Default: []
|
|
# paths-except:
|
|
# - ".*\\.my\\.go$"
|
|
# - lib/bad.go
|
|
|
|
formatters:
|
|
# Enable specific formatter.
|
|
# Default: [] (uses standard Go formatting)
|
|
enable:
|
|
- gci
|
|
- gofmt
|
|
- gofumpt
|
|
- goimports
|
|
- golines
|
|
# Formatters settings.
|
|
# settings:
|
|
# # See the dedicated "formatters.settings" documentation section.
|
|
# option: value
|
|
# exclusions:
|
|
# # Mode of the generated files analysis.
|
|
# #
|
|
# # - `strict`: sources are excluded by strictly following the Go generated file convention.
|
|
# # Source files that have lines matching only the following regular expression will be excluded: `^// Code generated .* DO NOT EDIT\.$`
|
|
# # This line must appear before the first non-comment, non-blank text in the file.
|
|
# # https://go.dev/s/generatedcode
|
|
# # - `lax`: sources are excluded if they contain lines like `autogenerated file`, `code generated`, `do not edit`, etc.
|
|
# # - `disable`: disable the generated files exclusion.
|
|
# #
|
|
# # Default: lax
|
|
# generated: strict
|
|
# # Which file paths to exclude.
|
|
# # Default: []
|
|
# paths:
|
|
# - ".*\\.my\\.go$"
|
|
# - lib/bad.go
|
|
|
|
# Options for analysis running.
|
|
run:
|
|
# Timeout for total work, e.g. 30s, 5m, 5m30s.
|
|
# If the value is lower or equal to 0, the timeout is disabled.
|
|
# Default: 0 (disabled)
|
|
timeout: 5m
|
|
# The mode used to evaluate relative paths.
|
|
# It's used by exclusions, Go plugins, and some linters.
|
|
# The value can be:
|
|
# - `gomod`: the paths will be relative to the directory of the `go.mod` file.
|
|
# - `gitroot`: the paths will be relative to the git root (the parent directory of `.git`).
|
|
# - `cfg`: the paths will be relative to the configuration file.
|
|
# - `wd` (NOT recommended): the paths will be relative to the place where golangci-lint is run.
|
|
# Default: cfg
|
|
relative-path-mode: gomod
|
|
# Exit code when at least one issue was found.
|
|
# Default: 1
|
|
issues-exit-code: 2
|
|
# Include test files or not.
|
|
# Default: true
|
|
tests: false
|
|
# # List of build tags, all linters use it.
|
|
# # Default: []
|
|
# build-tags:
|
|
# - mytag
|
|
# If set, we pass it to "go list -mod={option}". From "go help modules":
|
|
# If invoked with -mod=readonly, the go command is disallowed from the implicit
|
|
# automatic updating of go.mod described above. Instead, it fails when any changes
|
|
# to go.mod are needed. This setting is most useful to check that go.mod does
|
|
# not need updates, such as in a continuous integration and testing system.
|
|
# If invoked with -mod=vendor, the go command assumes that the vendor
|
|
# directory holds the correct copies of dependencies and ignores
|
|
# the dependency descriptions in go.mod.
|
|
#
|
|
# Allowed values: readonly|vendor|mod
|
|
# Default: ""
|
|
modules-download-mode: readonly
|
|
# Allow multiple parallel golangci-lint instances running.
|
|
# If false, golangci-lint acquires file lock on start.
|
|
# Default: false
|
|
allow-parallel-runners: true
|
|
# Allow multiple golangci-lint instances running, but serialize them around a lock.
|
|
# If false, golangci-lint exits with an error if it fails to acquire file lock on start.
|
|
# Default: false
|
|
allow-serial-runners: true
|
|
# Define the Go version limit.
|
|
# Default: use Go version from the go.mod file, fallback on the env var `GOVERSION`, fallback on 1.22.
|
|
go: '1.23'
|
|
# Number of operating system threads (`GOMAXPROCS`) that can execute golangci-lint simultaneously.
|
|
# Default: 0 (automatically set to match Linux container CPU quota and
|
|
# fall back to the number of logical CPUs in the machine)
|
|
concurrency: 4 |