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 | 
