338 lines
8.3 KiB
YAML
338 lines
8.3 KiB
YAML
# This file contains all available configuration options
|
|
# with their default values (in comments).
|
|
#
|
|
# This file is not a configuration example,
|
|
# it contains the exhaustive configuration with explanations of the options.
|
|
|
|
linters:
|
|
# Disable all linters.
|
|
# Default: false
|
|
disable-all: true
|
|
# Enable specific linter
|
|
# https://golangci-lint.run/usage/linters/#enabled-by-default
|
|
enable:
|
|
- asasalint
|
|
- asciicheck
|
|
- bidichk
|
|
- bodyclose
|
|
- canonicalheader
|
|
- containedctx
|
|
- contextcheck
|
|
- copyloopvar
|
|
- cyclop
|
|
- decorder
|
|
- dogsled
|
|
- dupl
|
|
- dupword
|
|
- durationcheck
|
|
- err113
|
|
- errcheck
|
|
- errchkjson
|
|
- errname
|
|
- errorlint
|
|
# - exhaustive
|
|
- fatcontext
|
|
- forcetypeassert
|
|
- funlen
|
|
- gci
|
|
- ginkgolinter
|
|
- gocheckcompilerdirectives
|
|
# - gochecknoglobals
|
|
- gochecknoinits
|
|
- gochecksumtype
|
|
- gocognit
|
|
- goconst
|
|
- gocritic
|
|
- gocyclo
|
|
- godot
|
|
- godox
|
|
- gofmt
|
|
- gofumpt
|
|
- goheader
|
|
- goimports
|
|
- gomoddirectives
|
|
- gomodguard
|
|
- goprintffuncname
|
|
- gosec
|
|
- gosimple
|
|
- gosmopolitan
|
|
- govet
|
|
- grouper
|
|
- importas
|
|
- inamedparam
|
|
- ineffassign
|
|
- interfacebloat
|
|
- intrange
|
|
- ireturn
|
|
# - lll
|
|
- loggercheck
|
|
- maintidx
|
|
- makezero
|
|
- mirror
|
|
- misspell
|
|
- mnd
|
|
- musttag
|
|
- nakedret
|
|
- nestif
|
|
- nilerr
|
|
- nilnil
|
|
- nlreturn
|
|
- noctx
|
|
- nolintlint
|
|
- nonamedreturns
|
|
- nosprintfhostport
|
|
- paralleltest
|
|
- perfsprint
|
|
- prealloc
|
|
- predeclared
|
|
- promlinter
|
|
- protogetter
|
|
- reassign
|
|
- revive
|
|
- rowserrcheck
|
|
- sloglint
|
|
- spancheck
|
|
- sqlclosecheck
|
|
- staticcheck
|
|
- stylecheck
|
|
# - tagalign
|
|
- tagliatelle
|
|
- tenv
|
|
- testableexamples
|
|
- testifylint
|
|
- testpackage
|
|
- thelper
|
|
- tparallel
|
|
- unconvert
|
|
- unparam
|
|
- unused
|
|
- usestdlibvars
|
|
- varnamelen
|
|
- wastedassign
|
|
- whitespace
|
|
- wrapcheck
|
|
- wsl
|
|
- zerologlint
|
|
|
|
# Enable all available linters.
|
|
# Default: false
|
|
enable-all: false
|
|
|
|
# Enable only fast linters from enabled linters set (first run won't be fast)
|
|
# Default: false
|
|
fast: true
|
|
|
|
# All available settings of specific linters.
|
|
linters-settings:
|
|
cyclop:
|
|
# The maximal code complexity to report.
|
|
# Default: 10
|
|
max-complexity: 20
|
|
# Should ignore tests.
|
|
# Default: false
|
|
skip-tests: true
|
|
|
|
funlen:
|
|
# Checks the number of lines in a function.
|
|
# If lower than 0, disable the check.
|
|
# Default: 60
|
|
lines: 80
|
|
# Checks the number of statements in a function.
|
|
# If lower than 0, disable the check.
|
|
# Default: 40
|
|
statements: 50
|
|
# Ignore comments when counting lines.
|
|
# Default false
|
|
ignore-comments: true
|
|
|
|
gocognit:
|
|
# Minimal code complexity to report.
|
|
# Default: 30 (but we recommend 10-20)
|
|
min-complexity: 20
|
|
|
|
gocyclo:
|
|
# Minimal code complexity to report.
|
|
# Default: 30 (but we recommend 10-20)
|
|
min-complexity: 20
|
|
|
|
godot:
|
|
# Comments to be checked: `declarations`, `toplevel`, or `all`.
|
|
# Default: declarations
|
|
scope: all
|
|
# List of regexps for excluding particular comment lines from check.
|
|
# Default: []
|
|
exclude:
|
|
# Exclude todo and fixme comments.
|
|
- "^fixme:"
|
|
- "^todo:"
|
|
# Check that each sentence ends with a period.
|
|
# Default: true
|
|
period: false
|
|
# Check that each sentence starts with a capital letter.
|
|
# Default: false
|
|
capital: true
|
|
|
|
goimports:
|
|
local-prefixes: git.mousesoft.ru/ms/config
|
|
|
|
gosec:
|
|
excludes:
|
|
- G115
|
|
|
|
revive:
|
|
rules:
|
|
- name: unexported-return
|
|
disabled: true
|
|
|
|
varnamelen:
|
|
# The longest distance, in source lines, that is being considered a "small scope".
|
|
# Variables used in at most this many lines will be ignored.
|
|
# Default: 5
|
|
max-distance: 6
|
|
# The minimum length of a variable's name that is considered "long".
|
|
# Variable names that are at least this long will be ignored.
|
|
# Default: 3
|
|
min-name-length: 2
|
|
# Ignore "ok" variables that hold the bool return value of a type assertion.
|
|
# Default: false
|
|
ignore-type-assert-ok: true
|
|
# Ignore "ok" variables that hold the bool return value of a map index.
|
|
# Default: false
|
|
ignore-map-index-ok: true
|
|
# Ignore "ok" variables that hold the bool return value of a channel receive.
|
|
# Default: false
|
|
ignore-chan-recv-ok: true
|
|
# Optional list of variable names that should be ignored completely.
|
|
# Default: []
|
|
ignore-names:
|
|
- err
|
|
|
|
# output configuration options
|
|
output:
|
|
# The formats used to render issues.
|
|
# Formats:
|
|
# - `colored-line-number`
|
|
# - `line-number`
|
|
# - `json`
|
|
# - `colored-tab`
|
|
# - `tab`
|
|
# - `html`
|
|
# - `checkstyle`
|
|
# - `code-climate`
|
|
# - `junit-xml`
|
|
# - `junit-xml-extended`
|
|
# - `github-actions`
|
|
# - `teamcity`
|
|
# - `sarif`
|
|
# Output path can be either `stdout`, `stderr` or path to the file to write to.
|
|
#
|
|
# For the CLI flag (`--out-format`), multiple formats can be specified by separating them by comma.
|
|
# The output can be specified for each of them by separating format name and path by colon symbol.
|
|
# Example: "--out-format=checkstyle:report.xml,json:stdout,colored-line-number"
|
|
# The CLI flag (`--out-format`) override the configuration file.
|
|
#
|
|
# Default:
|
|
# formats:
|
|
# - format: colored-line-number
|
|
# path: stdout
|
|
formats:
|
|
# - format: json
|
|
# path: stderr
|
|
# - format: checkstyle
|
|
# path: report.xml
|
|
- format: colored-line-number
|
|
|
|
# Print lines of code with issue.
|
|
# Default: true
|
|
print-issued-lines: false
|
|
|
|
# Print linter name in the end of issue text.
|
|
# Default: true
|
|
print-linter-name: true
|
|
|
|
# Make issues output unique by line.
|
|
# Default: true
|
|
uniq-by-line: false
|
|
|
|
# Add a prefix to the output file references.
|
|
# Default: ""
|
|
path-prefix: ""
|
|
|
|
# Sort results by the order defined in `sort-order`.
|
|
# Default: false
|
|
sort-results: true
|
|
|
|
# Order to use when sorting results.
|
|
# Require `sort-results` to `true`.
|
|
# Possible values: `file`, `linter`, and `severity`.
|
|
#
|
|
# If the severity values are inside the following list, they are ordered in this order:
|
|
# 1. error
|
|
# 2. warning
|
|
# 3. high
|
|
# 4. medium
|
|
# 5. low
|
|
# Either they are sorted alphabetically.
|
|
#
|
|
# Default: ["file"]
|
|
sort-order:
|
|
- linter
|
|
- severity
|
|
- file # filepath, line, and column.
|
|
|
|
# Show statistics per linter.
|
|
# Default: false
|
|
show-stats: true
|
|
|
|
# Options for analysis running.
|
|
run:
|
|
# Timeout for analysis, e.g. 30s, 5m.
|
|
# Default: 1m
|
|
timeout: 5m
|
|
|
|
# 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.
|
|
# Mainly related to generics support since go1.18.
|
|
# Default: use Go version from the go.mod file, fallback on the env var `GOVERSION`, fallback on 1.17
|
|
go: "1.22"
|
|
|
|
# Number of operating system threads (`GOMAXPROCS`) that can execute golangci-lint simultaneously.
|
|
# If it is explicitly set to 0 (i.e. not the default) then golangci-lint will automatically set the value to match Linux container CPU quota.
|
|
# Default: the number of logical CPUs in the machine
|
|
concurrency: 4
|