fff32e9469
Migrations should never use model structs directly, because the model structs can be different in different releases. e.g. if one migration uses "User" model, it works in the early releases, then one day, when the User model changes, the migration breaks because it will use the new (incorrect) User model, it should only use the old User model. The same to "modules/structs". --------- Signed-off-by: wxiaoguang <wxiaoguang@gmail.com> Co-authored-by: delvh <dev.lh@web.de>
191 lines
4.7 KiB
YAML
191 lines
4.7 KiB
YAML
version: "2"
|
|
output:
|
|
sort-order:
|
|
- file
|
|
linters:
|
|
default: none
|
|
enable:
|
|
- bidichk
|
|
- bodyclose
|
|
- depguard
|
|
- dupl
|
|
- errcheck
|
|
- forbidigo
|
|
- gocheckcompilerdirectives
|
|
- gocritic
|
|
- govet
|
|
- ineffassign
|
|
- mirror
|
|
- modernize
|
|
- nakedret
|
|
- nilnil
|
|
- nolintlint
|
|
- perfsprint
|
|
- revive
|
|
- staticcheck
|
|
- testifylint
|
|
- unconvert
|
|
- unparam
|
|
- unused
|
|
- usestdlibvars
|
|
- usetesting
|
|
- wastedassign
|
|
settings:
|
|
depguard:
|
|
rules:
|
|
main:
|
|
deny:
|
|
- pkg: encoding/json
|
|
desc: use gitea's modules/json instead of encoding/json
|
|
- pkg: github.com/unknwon/com
|
|
desc: use gitea's util and replacements
|
|
- pkg: io/ioutil
|
|
desc: use os or io instead
|
|
- pkg: golang.org/x/exp
|
|
desc: it's experimental and unreliable
|
|
- pkg: gitea.dev/modules/git/internal
|
|
desc: do not use the internal package, use AddXxx function instead
|
|
- pkg: gopkg.in/ini.v1
|
|
desc: do not use the ini package, use gitea's config system instead
|
|
- pkg: gitea.com/go-chi/cache
|
|
desc: do not use the go-chi cache package, use gitea's cache system
|
|
- pkg: github.com/pkg/errors
|
|
desc: use builtin errors package instead
|
|
migrations:
|
|
files:
|
|
- '**/modelmigration/**/*.go'
|
|
deny:
|
|
- pkg: gitea.dev/models$ # FIXME: it should deny all sub packages like "gitea.dev/models/repo"
|
|
desc: migrations must not depend on the models package
|
|
- pkg: gitea.dev/modules/structs
|
|
desc: migrations must not depend on modules/structs (API structures change over time)
|
|
nolintlint:
|
|
allow-unused: false
|
|
require-explanation: true
|
|
require-specific: true
|
|
gocritic:
|
|
enabled-checks:
|
|
- equalFold
|
|
disabled-checks:
|
|
- ifElseChain
|
|
- singleCaseSwitch # Every time this occurred in the code, there was no other way.
|
|
- deprecatedComment # conflicts with go-swagger comments
|
|
revive:
|
|
severity: error
|
|
rules:
|
|
- name: blank-imports
|
|
- name: constant-logical-expr
|
|
- name: context-as-argument
|
|
- name: context-keys-type
|
|
- name: dot-imports
|
|
- name: empty-lines
|
|
- name: error-return
|
|
- name: error-strings
|
|
- name: exported
|
|
- name: identical-branches
|
|
- name: if-return
|
|
- name: increment-decrement
|
|
- name: modifies-value-receiver
|
|
- name: package-comments
|
|
- name: redefines-builtin-id
|
|
- name: superfluous-else
|
|
- name: time-naming
|
|
- name: unexported-return
|
|
- name: var-declaration
|
|
- name: var-naming
|
|
arguments:
|
|
- [] # AllowList - do not remove as args for the rule are positional and won't work without lists first
|
|
- [] # DenyList
|
|
- - skip-package-name-checks: true # supress errors from underscore in migration packages
|
|
staticcheck:
|
|
checks:
|
|
- all
|
|
- -ST1003
|
|
- -ST1005
|
|
- -QF1001
|
|
- -QF1006
|
|
- -QF1008
|
|
testifylint:
|
|
disable:
|
|
- empty
|
|
- go-require
|
|
- require-error
|
|
usetesting:
|
|
os-temp-dir: true
|
|
perfsprint:
|
|
concat-loop: false
|
|
govet:
|
|
enable:
|
|
- nilness
|
|
- unusedwrite
|
|
exclusions:
|
|
generated: lax
|
|
presets:
|
|
- comments
|
|
- common-false-positives
|
|
- legacy
|
|
- std-error-handling
|
|
rules:
|
|
- linters:
|
|
- dupl
|
|
- errcheck
|
|
- staticcheck
|
|
- unparam
|
|
path: _test\.go
|
|
- linters:
|
|
- dupl
|
|
path: modelmigration/v
|
|
- linters:
|
|
- forbidigo
|
|
path: cmd
|
|
- linters:
|
|
- dupl
|
|
text: (?i)webhook
|
|
- linters:
|
|
- gocritic
|
|
text: (?i)`ID' should not be capitalized
|
|
- linters:
|
|
- unused
|
|
text: (?i)swagger
|
|
- linters:
|
|
- gocritic
|
|
text: '(?i)commentFormatting: put a space between `//` and comment text'
|
|
- linters:
|
|
- gocritic
|
|
text: '(?i)exitAfterDefer:'
|
|
paths:
|
|
- node_modules
|
|
- .venv
|
|
- public
|
|
- web_src
|
|
- third_party$
|
|
- builtin$
|
|
- examples$
|
|
issues:
|
|
max-issues-per-linter: 0
|
|
max-same-issues: 0
|
|
formatters:
|
|
enable:
|
|
- gci
|
|
- gofumpt
|
|
settings:
|
|
gci:
|
|
custom-order: true
|
|
sections:
|
|
- standard
|
|
- prefix(gitea.dev)
|
|
- blank
|
|
- default
|
|
gofumpt:
|
|
extra-rules: true
|
|
exclusions:
|
|
generated: lax
|
|
paths:
|
|
- node_modules
|
|
- .venv
|
|
- public
|
|
- web_src
|
|
|
|
run:
|
|
timeout: 10m
|