version: "2" run: go: "1.24" tests: false 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 - gochecknoglobals # Check that no global variables exist # Default/existing linters that are commonly useful - govet - errcheck - staticcheck - unused - ineffassign - 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 nestif: min-complexity: 4 nlreturn: block-size: 2 revive: rules: - name: var-naming arguments: - [] - [] - "upperCaseConst=true" testifylint: enable-all: true usetesting: {} issues: max-issues-per-linter: 0 max-same-issues: 0 exclude-rules: - path: ".*_gen\\.go" linters: - lll # Exclude unused parameter warnings for cobra command signatures - text: "parameter '(args|cmd)' seems to be unused" linters: - revive # Allow ALL_CAPS constant names - text: "don't use ALL_CAPS in Go names" linters: - revive