# options for analysis running run: # timeout for analysis, e.g. 30s, 5m, default is 1m timeout: 30m # output configuration options output: # sorts results by: filepath, line and column sort-results: true # all available settings of specific linters linters-settings: cyclop: # the maximal code complexity to report max-complexity: 30 # the maximal average package complexity. If it's higher than 0.0 (float) the check is enabled (default 0.0) package-average: 0.0 # should ignore tests (default false) skip-tests: true dogsled: # checks assignments with too many blank identifiers; default is 2 max-blank-identifiers: 2 dupl: # tokens count to trigger issue, 150 by default threshold: 100 errcheck: # report about not checking of errors in type assertions: `a := b.(MyStruct)`; # default is false: such cases aren't reported by default. check-type-assertions: true # report about assignment of errors to blank identifier: `num, _ := strconv.Atoi(numStr)`; # default is false: such cases aren't reported by default. check-blank: true errorlint: # Check whether fmt.Errorf uses the %w verb for formatting errors. See the readme for caveats errorf: true # Check for plain type assertions and type switches asserts: true # Check for plain error comparisons comparison: true exhaustive: # indicates that switch statements are to be considered exhaustive if a # 'default' case is present, even if all enum members aren't listed in the # switch default-signifies-exhaustive: true exhaustivestruct: # Struct Patterns is list of expressions to match struct packages and names # The struct packages have the form example.com/package.ExampleStruct # The matching patterns can use matching syntax from https://pkg.go.dev/path#Match # If this list is empty, all structs are tested. struct-patterns: gocognit: # minimal code complexity to report, 30 by default (but we recommend 10-20) min-complexity: 30 nestif: # minimal complexity of if statements to report, 5 by default min-complexity: 4 goconst: # minimal length of string constant, 3 by default min-len: 3 # minimal occurrences count to trigger, 3 by default min-occurrences: 3 gocritic: # Enable multiple checks by tags, run `GL_DEBUG=gocritic golangci-lint run` to see all tags and checks. # Empty list by default. See https://github.com/go-critic/go-critic#usage -> section "Tags". enabled-tags: - diagnostic - style - performance disabled-checks: - paramTypeCombine - commentedOutCode - ifElseChain # Settings passed to gocritic. # The settings key is the name of a supported gocritic checker. # The list of supported checkers can be find in https://go-critic.github.io/overview. settings: unnamedResult: # whether to check exported functions checkExported: true gocyclo: # minimal code complexity to report, 30 by default (but we recommend 10-20) min-complexity: 30 godot: # comments to be checked: `declarations`, `toplevel`, or `all` scope: declarations # check that each sentence starts with a capital letter capital: true gofmt: # simplify code: gofmt with `-s` option, true by default simplify: true gofumpt: # Choose whether or not to use the extra rules that are disabled # by default extra-rules: false golint: # minimal confidence for issues, default is 0.8 min-confidence: 0.8 gosimple: # Select the Go version to target. The default is '1.13'. go: "1.20" # https://staticcheck.io/docs/options#checks checks: ["all"] govet: # report about shadowed variables check-shadowing: true enable-all: true maligned: # print struct with more effective memory layout or not, false by default suggest-new: true misspell: # Correct spellings using locale preferences for US or UK. # Default is to use a neutral variety of English. # Setting locale to US will correct the British spelling of 'colour' to 'color'. locale: US prealloc: # XXX: we don't recommend using this linter before doing performance profiling. # For most programs usage of prealloc will be a premature optimization. # Report preallocation suggestions only on simple loops that have no returns/breaks/continues/gotos in them. # True by default. simple: true range-loops: true for-loops: false nolintlint: # Enable to ensure that nolint directives are all used. Default is true. allow-unused: true # Disable to ensure that nolint directives don't have a leading space. Default is true. allow-leading-space: true # Exclude following linters from requiring an explanation. Default is []. allow-no-explanation: [] # Enable to require an explanation of nonzero length after each nolint directive. Default is false. require-explanation: true # Enable to require nolint directives to mention the specific linter being suppressed. Default is false. require-specific: true staticcheck: # Select the Go version to target. The default is '1.13'. go: "1.20" # https://staticcheck.io/docs/options#checks checks: ["all"] stylecheck: # Select the Go version to target. The default is '1.13'. go: "1.20" # https://staticcheck.io/docs/options#checks checks: ["all"] unparam: # Inspect exported functions, default is false. Set to true if no external program/library imports your code. # XXX: if you enable this setting, unparam will report a lot of false-positives in text editors: # if it's called for subdir of a project it can't find external interfaces. All text editor integrations # with golangci-lint call it on a directory with the changed file. check-exported: false unused: # Select the Go version to target. The default is '1.13'. go: "1.20" whitespace: multi-if: false # Enforces newlines (or comments) after every multi-line if statement multi-func: false # Enforces newlines (or comments) after every multi-line function signature wrapcheck: # An array of strings that specify substrings of signatures to ignore. # If this set, it will override the default set of ignored signatures. # See https://github.com/tomarrell/wrapcheck#configuration for more information. ignoreSigs: - .Errorf( - errors.New( - errors.Unwrap( - .Wrap( - .Wrapf( - .WithMessage( linters: disable: # Don't check for newlines before return - nlreturn # Don't check line length - lll - funlen - exhaustivestruct # Don't check nested ifs - nestif # Don't check var length - varnamelen # Don't check excessive blank identifiers - dogsled # Don't check json struct field tags - tagliatelle # Absolutely useless whitespace linting - wsl # Cognitive complexity ;) - gocognit # Deprecated - golint - interfacer - scopelint # Don't care about this (for now) - exhaustruct - wrapcheck - nonamedreturns - gomnd - depguard - gosmopolitan enable-all: true fast: false issues: # Fix found issues (if it's supported by the linter) fix: true severity: # Default value is empty string. # Set the default severity for issues. If severity rules are defined and the issues # do not match or no severity is provided to the rule this will be the default # severity applied. Severities should match the supported severity names of the # selected out format. # - Code climate: https://docs.codeclimate.com/docs/issues#issue-severity # - Checkstyle: https://checkstyle.sourceforge.io/property_types.html#severity # - Github: https://help.github.com/en/actions/reference/workflow-commands-for-github-actions#setting-an-error-message default-severity: error # The default value is false. # If set to true severity-rules regular expressions become case sensitive. case-sensitive: false