linters:
enable:
- gosimple
- deadcode
- typecheck
- govet
- errcheck
- staticcheck
- unused
- structcheck
- varcheck
- dupl
#- gocyclo # The cyclomatic complexety of a lot of functions is too high, we should refactor those another time.
- gofmt
- misspell
- gocritic
- bidichk
- ineffassign
- revive
- gofumpt
enable-all: false
disable-all: true
fast: false
run:
timeout: 3m
skip-dirs:
- node_modules
- public
- web_src
linters-settings:
gocritic:
disabled-checks:
- ifElseChain
- singleCaseSwitch # Every time this occurred in the code, there was no other way.
revive:
ignore-generated-header: false
severity: warning
confidence: 0.8
errorCode: 1
warningCode: 1
rules:
- name: blank-imports
- name: context-as-argument
- name: context-keys-type
- name: dot-imports
- name: error-return
- name: error-strings
- name: error-naming
- name: exported
- name: if-return
- name: increment-decrement
- name: var-naming
- name: var-declaration
- name: package-comments
- name: range
- name: receiver-naming
- name: time-naming
- name: unexported-return
- name: indent-error-flow
- name: errorf
- name: duplicated-imports
- name: modifies-value-receiver
gofumpt:
extra-rules: true
lang-version: 1.16
issues:
exclude-rules:
# Exclude some linters from running on tests files.
- path: _test\.go
- gocyclo
- gosec
- unparam
- path: models/migrations/v
- linters:
text: "webhook"
text: "`ID' should not be capitalized"
- path: modules/templates/helper.go
text: "swagger"
- path: contrib/pr/checkout.go
- path: models/issue.go
- path: models/migrations/
- path: modules/log/
- path: routers/api/v1/repo/issue_subscription.go
- path: routers/repo/view.go
text: "argument x is overwritten before first use"
- path: modules/httplib/httplib.go
# Enabling this would require refactoring the methods and how they are called.
- path: models/issue_comment_list.go
text: '`Unknwon` is a misspelling of `Unknown`'
- path: models/update.go
- path: cmd/dump.go
- path: services/webhook/webhook.go
- text: "commentFormatting: put a space between `//` and comment text"
- text: "exitAfterDefer:"
- path: modules/graceful/manager_windows.go
text: "svc.IsAnInteractiveSession is deprecated: Use IsWindowsService instead."
- path: models/user/openid.go
- golint