version: "2" run: timeout: 5m linters: disable: - staticcheck - errcheck enable: - depguard - dogsled - exhaustive - gochecknoinits # - gocritic - goprintffuncname - govet - ineffassign - misspell - nakedret - nolintlint - prealloc # - revive # - sqlclosecheck # - staticcheck - unconvert - unused - whitespace # Disable temporarily until everything works with Go 1.20 # - bodyclose # - rowserrcheck # - tparallel # - unparam # Disable temporarily until the following issue is resolved: https://github.com/golangci/golangci-lint/issues/3086 # - sqlclosecheck # TODO: fix linter errors before enabling # - exhaustivestruct # - gochecknoglobals # - errorlint # - gocognit # - godot # - nlreturn # - noctx # - revive # - wrapcheck # TODO: fix linter errors before enabling (from original config) # - dupl # - errcheck # - goconst # - gocyclo # - gosec # - lll # - scopelint # unused # - goheader # - gomodguard # don't enable: # - asciicheck # - funlen # - godox # - goerr113 # - gomnd # - interfacer # - maligned # - nestif # - testpackage # - wsl exclusions: rules: - linters: - errcheck - noctx path: _test.go presets: - comments - std-error-handling settings: misspell: locale: US nolintlint: allow-unused: false # report any unused nolint directives require-specific: false # don't require nolint directives to be specific about which linter is being skipped gocritic: # Enable multiple checks by tags. See "Tags" section in https://github.com/go-critic/go-critic#usage. enabled-tags: - diagnostic - experimental - opinionated - style disabled-checks: - importShadow - unnamedResult depguard: rules: deprecated: deny: - pkg: "io/ioutil" desc: "The 'io/ioutil' package is deprecated. Use corresponding 'os' or 'io' functions instead." formatters: enable: - gci - gofmt - gofumpt - goimports # - golines settings: gci: sections: - standard - default - localmodule # issues: # exclude-dirs: # - storage/ent/db # generated ent code