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
- depguard
enable-all : false
disable-all : true
fast : false
run :
go : 1.18
timeout : 10m
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.18"
depguard :
# TODO: use depguard to replace import checks in gitea-vet
list-type : denylist
# Check the list against standard lib.
include-go-root : true
packages-with-error-message :
- encoding/json : "use gitea's modules/json instead of encoding/json"
- github.com/unknwon/com : "use gitea's util and replacements"
issues :
exclude-rules :
# Exclude some linters from running on tests files.
- path : _test\.go
linters :
- gocyclo
- errcheck
- dupl
- gosec
- unparam
- staticcheck
- path : models/migrations/v
linters :
- gocyclo
- errcheck
- dupl
- gosec
- linters :
- dupl
text : "webhook"
- linters :
- gocritic
text : "`ID' should not be capitalized"
- path : modules/templates/helper.go
linters :
- gocritic
- linters :
- unused
- deadcode
text : "swagger"
- path : contrib/pr/checkout.go
linters :
- errcheck
- path : models/issue.go
linters :
- errcheck
- path : models/migrations/
linters :
- errcheck
- path : modules/log/
linters :
- errcheck
- path : routers/api/v1/repo/issue_subscription.go
linters :
- dupl
- path : routers/repo/view.go
linters :
- dupl
- path : models/migrations/
linters :
- unused
- linters :
- staticcheck
text : "argument x is overwritten before first use"
- path : modules/httplib/httplib.go
linters :
- staticcheck
# Enabling this would require refactoring the methods and how they are called.
- path : models/issue_comment_list.go
linters :
- dupl
- linters :
- misspell
text : '`Unknwon` is a misspelling of `Unknown`'
- path : models/update.go
linters :
- unused
- path : cmd/dump.go
linters :
- dupl
- path : services/webhook/webhook.go
linters :
- structcheck
- text : "commentFormatting: put a space between `//` and comment text"
linters :
- gocritic
- text : "exitAfterDefer:"
linters :
- gocritic
- path : modules/graceful/manager_windows.go
linters :
- staticcheck
text : "svc.IsAnInteractiveSession is deprecated: Use IsWindowsService instead."
- path : models/user/openid.go
linters :
- golint
- linters :
- staticcheck
text : "strings.Title is deprecated: The rule Title uses for word boundaries does not handle Unicode punctuation properly. Use golang.org/x/text/cases instead."