[run]
timeout = "10m"

[linters-settings.golint]
min-confidence = 3

[linters-settings.goconst]
min-len = 5
min-occurrences = 5

[linters-settings.exhaustive]
default-signifies-exhaustive = true

[linters-settings.gocritic]
enabled-checks = ["ruleguard"]
[linters-settings.gocritic.settings.ruleguard]
rules = "pkg/ruleguard.rules.go"

[linters]
disable-all = true
enable = [
  "bodyclose",
  "deadcode",
  "depguard",
  "dogsled",
  "errcheck",
  # "gochecknoinits",
  "goconst",
  "gocritic",
  "goimports",
  "golint",
  "goprintffuncname",
  "gosec",
  "gosimple",
  "govet",
  "ineffassign",
  "misspell",
  "nakedret",
  "rowserrcheck",
  "exportloopref",
  "staticcheck",
  "structcheck",
  "stylecheck",
  "typecheck",
  "unconvert",
  "unused",
  "varcheck",
  "whitespace",
  "gocyclo",
  "exhaustive",
  "typecheck",
  "asciicheck",
  "errorlint",
  "sqlclosecheck",
]

# Disabled linters (might want them later)
# "unparam"

[issues]
exclude-use-default = false

# Enable when appropriate
# Poorly chosen identifier
[[issues.exclude-rules]]
linters = ["stylecheck"]
text = "ST1003"

# Enable when appropriate
# Dot imports that aren't in external test packages are discouraged.
[[issues.exclude-rules]]
linters = ["stylecheck"]
text = "ST1001"

[[issues.exclude-rules]]
linters = ["gosec"]
text = "G108"

[[issues.exclude-rules]]
linters = ["gosec"]
text = "G110"

[[issues.exclude-rules]]
linters = ["gosec"]
text = "G201"

[[issues.exclude-rules]]
linters = ["gosec"]
text = "G202"

[[issues.exclude-rules]]
linters = ["gosec"]
text = "G306"

[[issues.exclude-rules]]
linters = ["gosec"]
text = "401"

[[issues.exclude-rules]]
linters = ["gosec"]
text = "402"

[[issues.exclude-rules]]
linters = ["gosec"]
text = "501"

[[issues.exclude-rules]]
linters = ["gosec"]
text = "404"

[[issues.exclude-rules]]
linters = ["misspell"]
text = "Unknwon` is a misspelling of `Unknown"

[[issues.exclude-rules]]
linters = ["errorlint"]
text = "non-wrapping format verb for fmt.Errorf"

# TODO: Enable
[[issues.exclude-rules]]
linters = ["stylecheck"]
text = "ST1000"

# TODO: Enable
[[issues.exclude-rules]]
linters = ["stylecheck"]
text = "ST1020"

# TODO: Enable
[[issues.exclude-rules]]
linters = ["stylecheck"]
text = "ST1021"
