mirror of
https://github.com/foomo/posh.git
synced 2025-10-16 12:45:38 +00:00
122 lines
11 KiB
YAML
122 lines
11 KiB
YAML
run:
|
|
go: "1.19"
|
|
skip-dirs:
|
|
- tmp
|
|
|
|
linters-settings:
|
|
revive:
|
|
rules:
|
|
- name: indent-error-flow
|
|
disabled: true
|
|
# https://golangci-lint.run/usage/linters/#gosec
|
|
gosec:
|
|
excludes:
|
|
- G204 # Audit use of command execution
|
|
gocritic:
|
|
disabled-checks:
|
|
- assignOp
|
|
- ifElseChain
|
|
- singleCaseSwitch
|
|
- commentFormatting
|
|
importas:
|
|
no-unaliased: true
|
|
alias:
|
|
- pkg: github.com/foomo/posh/internal/(\w+)
|
|
alias: int$1
|
|
linters:
|
|
enable:
|
|
# Enabled by default linters:
|
|
- errcheck # Errcheck is a program for checking for unchecked errors in go programs. These unchecked errors can be critical bugs in some cases [fast: false, auto-fix: false]
|
|
- gosimple # (megacheck): Linter for Go source code that specializes in simplifying code [fast: false, auto-fix: false]
|
|
- govet # (vet, vetshadow): Vet examines Go source code and reports suspicious constructs, such as Printf calls whose arguments do not align with the format string [fast: false, auto-fix: false]
|
|
- ineffassign # Detects when assignments to existing variables are not used [fast: true, auto-fix: false]
|
|
- staticcheck # (megacheck): It's a set of rules from staticcheck. It's not the same thing as the staticcheck binary. The author of staticcheck doesn't support or approve the use of staticcheck as a library inside golangci-lint. [fast: false, auto-fix: false]
|
|
- typecheck # Like the front-end of a Go compiler, parses and type-checks Go code [fast: false, auto-fix: false]
|
|
- unused # (megacheck): Checks Go code for unused constants, variables, functions and types [fast: false, auto-fix: false]
|
|
|
|
# Disabled by default linters:
|
|
- asasalint # check for pass []any as any in variadic func(...any) [fast: false, auto-fix: false]
|
|
- asciicheck # Simple linter to check that your code does not contain non-ASCII identifiers [fast: true, auto-fix: false]
|
|
- bidichk # Checks for dangerous unicode character sequences [fast: true, auto-fix: false]
|
|
- bodyclose # checks whether HTTP response body is closed successfully [fast: false, auto-fix: false]
|
|
#- containedctx # containedctx is a linter that detects struct contained context.Context field [fast: true, auto-fix: false]
|
|
- contextcheck # check the function whether to use a non-inherited context [fast: false, auto-fix: false]
|
|
#- cyclop # checks function and package cyclomatic complexity [fast: false, auto-fix: false]
|
|
- decorder # check declaration order and count of types, constants, variables and functions [fast: true, auto-fix: false]
|
|
- depguard # Go linter that checks if package imports are in a list of acceptable packages [fast: true, auto-fix: false]
|
|
- dogsled # Checks assignments with too many blank identifiers (e.g. x, _, _, _, := f()) [fast: true, auto-fix: false]
|
|
- dupl # Tool for code clone detection [fast: true, auto-fix: false]
|
|
- dupword # Checks for duplicate words in the source code [fast: true, auto-fix: true]
|
|
- durationcheck # check for two durations multiplied together [fast: false, auto-fix: false]
|
|
- errchkjson # Checks types passed to the json encoding functions. Reports unsupported types and optionally reports occasions, where the check for the returned error can be omitted. [fast: false, auto-fix: false]
|
|
- errname # Checks that sentinel errors are prefixed with the `Err` and error types are suffixed with the `Error`. [fast: false, auto-fix: false]
|
|
- errorlint # errorlint is a linter for that can be used to find code that will cause problems with the error wrapping scheme introduced in Go 1.13. [fast: false, auto-fix: false]
|
|
- execinquery # execinquery is a linter about query string checker in Query function which reads your Go src files and warning it finds [fast: false, auto-fix: false]
|
|
- exhaustive # check exhaustiveness of enum switch statements [fast: false, auto-fix: false]
|
|
#- exhaustruct # Checks if all structure fields are initialized [fast: false, auto-fix: false]
|
|
- exportloopref # checks for pointers to enclosing loop variables [fast: false, auto-fix: false]
|
|
#- forbidigo # Forbids identifiers [fast: true, auto-fix: false]
|
|
- forcetypeassert # finds forced type assertions [fast: true, auto-fix: false]
|
|
#- funlen # Tool for detection of long functions [fast: true, auto-fix: false]
|
|
#- gci # Gci controls golang package import order and makes it always deterministic. [fast: true, auto-fix: false]
|
|
#- gochecknoglobals # check that no global variables exist [fast: true, auto-fix: false]
|
|
#- gochecknoinits # Checks that no init functions are present in Go code [fast: true, auto-fix: false]
|
|
#- gocognit # Computes and checks the cognitive complexity of functions [fast: true, auto-fix: false]
|
|
- goconst # Finds repeated strings that could be replaced by a constant [fast: true, auto-fix: false]
|
|
- gocritic # Provides diagnostics that check for bugs, performance and style issues. [fast: false, auto-fix: false]
|
|
- gocyclo # Computes and checks the cyclomatic complexity of functions [fast: true, auto-fix: false]
|
|
#- godot # Check if comments end in a period [fast: true, auto-fix: true]
|
|
#- godox # Tool for detection of FIXME, TODO and other comment keywords [fast: true, auto-fix: false]
|
|
#- goerr113 # Golang linter to check the errors handling expressions [fast: false, auto-fix: false]
|
|
- gofmt # Gofmt checks whether code was gofmt-ed. By default this tool runs with -s option to check for code simplification [fast: true, auto-fix: true]
|
|
#- gofumpt # Gofumpt checks whether code was gofumpt-ed. [fast: true, auto-fix: true]
|
|
- goheader # Checks is file header matches to pattern [fast: true, auto-fix: false]
|
|
- goimports # In addition to fixing imports, goimports also formats your code in the same style as gofmt. [fast: true, auto-fix: true]
|
|
#- gomnd # An analyzer to detect magic numbers. [fast: true, auto-fix: false]
|
|
#- gomoddirectives # Manage the use of 'replace', 'retract', and 'excludes' directives in go.mod. [fast: true, auto-fix: false]
|
|
- gomodguard # Allow and block list linter for direct Go module dependencies. This is different from depguard where there are different block types for example version constraints and module recommendations. [fast: true, auto-fix: false]
|
|
#- goprintffuncname # Checks that printf-like functions are named with `f` at the end [fast: true, auto-fix: false]
|
|
- gosec # (gas): Inspects source code for security problems [fast: false, auto-fix: false]
|
|
- grouper # An analyzer to analyze expression groups. [fast: true, auto-fix: false]
|
|
- importas # Enforces consistent import aliases [fast: false, auto-fix: false]
|
|
#- interfacebloat # A linter that checks the number of methods inside an interface. [fast: true, auto-fix: false]
|
|
#- ireturn # Accept Interfaces, Return Concrete Types [fast: false, auto-fix: false]
|
|
- loggercheck # Checks key valur pairs for common logger libraries (kitlog,klog,logr,zap). [fast: false, auto-fix: false]
|
|
#- lll # Reports long lines [fast: true, auto-fix: false]
|
|
- maintidx # maintidx measures the maintainability index of each function. [fast: true, auto-fix: false]
|
|
- makezero # Finds slice declarations with non-zero initial length [fast: false, auto-fix: false]
|
|
- misspell # Finds commonly misspelled English words in comments [fast: true, auto-fix: true]
|
|
- nakedret # Finds naked returns in functions greater than a specified function length [fast: true, auto-fix: false]
|
|
#- nestif # Reports deeply nested if statements [fast: true, auto-fix: false]
|
|
- nilerr # Finds the code that returns nil even if it checks that the error is not nil. [fast: false, auto-fix: false]
|
|
- nilnil # Checks that there is no simultaneous return of `nil` error and an invalid value. [fast: false, auto-fix: false]
|
|
#- nlreturn # nlreturn checks for a new line before return and branch statements to increase code clarity [fast: true, auto-fix: false]
|
|
- noctx # noctx finds sending http request without context.Context [fast: false, auto-fix: false]
|
|
- nolintlint # Reports ill-formed or insufficient nolint directives [fast: true, auto-fix: false]
|
|
- nonamedreturns # Reports all named returns [fast: false, auto-fix: false]
|
|
- nosprintfhostport # Checks for misuse of Sprintf to construct a host with port in a URL. [fast: true, auto-fix: false]
|
|
- paralleltest # paralleltest detects missing usage of t.Parallel() method in your Go test [fast: false, auto-fix: false]
|
|
- prealloc # Finds slice declarations that could potentially be pre-allocated [fast: true, auto-fix: false]
|
|
- predeclared # find code that shadows one of Go's predeclared identifiers [fast: true, auto-fix: false]
|
|
- promlinter # Check Prometheus metrics naming via promlint [fast: true, auto-fix: false]
|
|
- reassign # Checks that package variables are not reassigned [fast: false, auto-fix: false]
|
|
- revive # Fast, configurable, extensible, flexible, and beautiful linter for Go. Drop-in replacement of golint. [fast: false, auto-fix: false]
|
|
- rowserrcheck # checks whether Err of rows is checked successfully [fast: false, auto-fix: false]
|
|
- sqlclosecheck # Checks that sql.Rows and sql.Stmt are closed. [fast: false, auto-fix: false]
|
|
- stylecheck # Stylecheck is a replacement for golint [fast: false, auto-fix: false]
|
|
- tagliatelle # Checks the struct tags. [fast: true, auto-fix: false]
|
|
- tenv # tenv is analyzer that detects using os.Setenv instead of t.Setenv since Go1.17 [fast: false, auto-fix: false]
|
|
- testableexamples # linter checks if examples are testable (have an expected output) [fast: true, auto-fix: false]
|
|
- testpackage # linter that makes you use a separate _test package [fast: true, auto-fix: false]
|
|
- thelper # thelper detects golang test helpers without t.Helper() call and checks the consistency of test helpers [fast: false, auto-fix: false]
|
|
- tparallel # tparallel detects inappropriate usage of t.Parallel() method in your Go test codes [fast: false, auto-fix: false]
|
|
- unconvert # Remove unnecessary type conversions [fast: false, auto-fix: false]
|
|
- unparam # Reports unused function parameters [fast: false, auto-fix: false]
|
|
- usestdlibvars # A linter that detect the possibility to use variables/constants from the Go standard library. [fast: true, auto-fix: false]
|
|
#- varnamelen # checks that the length of a variable's name matches its scope [fast: false, auto-fix: false]
|
|
- wastedassign # wastedassign finds wasted assignment statements. [fast: false, auto-fix: false]
|
|
- whitespace # Tool for detection of leading and trailing whitespace [fast: true, auto-fix: true]
|
|
# - wrapcheck # Checks that errors returned from external packages are wrapped [fast: false, auto-fix: false]
|
|
#- wsl # Whitespace Linter - Forces you to use empty lines! [fast: true, auto-fix: false]
|
|
|