linters: enable-all: false disable-all: true fast: false enable: - bidichk - depguard - dupl - errcheck - forbidigo - gocritic - gofmt - gofumpt - gosimple - govet - ineffassign - nakedret - nolintlint - revive - spancheck - staticcheck - stylecheck - tenv - testifylint - typecheck - unconvert - unused - unparam - wastedassign run: timeout: 10m output: sort-results: true sort-order: [file] show-stats: true linters-settings: stylecheck: checks: ["all", "-ST1005", "-ST1003"] nakedret: max-func-lines: 0 gocritic: disabled-checks: - ifElseChain - singleCaseSwitch # Every time this occurred in the code, there was no other way. revive: severity: error rules: - name: atomic - name: bare-return - name: blank-imports - name: constant-logical-expr - name: context-as-argument - name: context-keys-type - name: dot-imports - name: duplicated-imports - name: empty-lines - name: error-naming - name: error-return - name: error-strings - name: errorf - name: exported - name: identical-branches - name: if-return - name: increment-decrement - name: indent-error-flow - name: modifies-value-receiver - name: package-comments - name: range - name: receiver-naming - name: redefines-builtin-id - name: string-of-int - name: superfluous-else - name: time-naming - name: unconditional-recursion - name: unexported-return - name: unreachable-code - name: var-declaration - name: var-naming gofumpt: extra-rules: true 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: code.gitea.io/gitea/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: github.com/minio/sha256-simd desc: use crypto/sha256 instead, see https://codeberg.org/forgejo/forgejo/pulls/1528 testifylint: disable: - go-require issues: max-issues-per-linter: 0 max-same-issues: 0 exclude-dirs: [node_modules, public, web_src] exclude-case-sensitive: true exclude-rules: - path: models/db/sql_postgres_with_schema.go linters: - nolintlint - path: _test\.go linters: - gocyclo - errcheck - dupl - gosec - unparam - staticcheck - path: models/migrations/v linters: - gocyclo - errcheck - dupl - gosec - path: cmd linters: - forbidigo - text: "webhook" linters: - dupl - text: "`ID' should not be capitalized" linters: - gocritic - text: "swagger" linters: - unused - deadcode - text: "argument x is overwritten before first use" linters: - staticcheck - text: "commentFormatting: put a space between `//` and comment text" linters: - gocritic - text: "exitAfterDefer:" linters: - gocritic