run: timeout: 5m go: "1.22" linters: enable: # Additional linters requested - testifylint # Checks usage of github.com/stretchr/testify - usetesting # usetesting is an analyzer that detects using os.Setenv instead of t.Setenv since Go 1.17 - tagliatelle # Checks the struct tags - nlreturn # nlreturn checks for a new line before return and branch statements - nilnil # Checks that there is no simultaneous return of nil error and an invalid value - nestif # Reports deeply nested if statements - mnd # An analyzer to detect magic numbers - lll # Reports long lines - intrange # intrange is a linter to find places where for loops could make use of an integer range - gofumpt # Gofumpt checks whether code was gofumpt-ed - gochecknoglobals # Check that no global variables exist # Default/existing linters that are commonly useful - govet - errcheck - staticcheck - unused - gosimple - ineffassign - typecheck - gofmt - goimports - misspell - revive - gosec - unconvert - unparam linters-settings: lll: line-length: 120 mnd: # List of enabled checks, see https://github.com/tommy-muehle/go-mnd/#checks for description. checks: - argument - case - condition - operation - return - assign ignored-numbers: - '0' - '1' - '2' - '8' - '16' - '40' # GPG fingerprint length - '64' - '128' - '256' - '512' - '1024' - '2048' - '4096' nestif: min-complexity: 4 nlreturn: block-size: 2 tagliatelle: case: rules: json: snake yaml: snake xml: snake bson: snake testifylint: enable-all: true usetesting: strict: true issues: exclude-rules: # Exclude some linters from running on tests files - path: _test\.go linters: - gochecknoglobals - mnd - unparam # Allow long lines in generated code or test data - path: ".*_gen\\.go" linters: - lll # Exclude unused parameter warnings for cobra command signatures - text: "parameter '(args|cmd)' seems to be unused" linters: - revive max-issues-per-linter: 0 max-same-issues: 0