linters: enable: - bidichk # - deadcode # deprecated - https://github.com/golangci/golangci-lint/issues/1841 - depguard - dupl - errcheck - forbidigo - gocritic # - gocyclo # The cyclomatic complexety of a lot of functions is too high, we should refactor those another time. - gofmt - gofumpt - gosimple - govet - ineffassign - nakedret - nolintlint - revive - staticcheck # - structcheck # deprecated - https://github.com/golangci/golangci-lint/issues/1841 - stylecheck - typecheck - unconvert - unused # - varcheck # deprecated - https://github.com/golangci/golangci-lint/issues/1841 - wastedassign enable-all: false disable-all: true fast: false run: go: "1.20" timeout: 10m skip-dirs: - node_modules - public - web_src 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: 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.20" depguard: 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" - io/ioutil: "use os or io instead" - golang.org/x/exp: "it's experimental and unreliable." - code.gitea.io/gitea/modules/git/internal: "do not use the internal package, use AddXxx function instead" issues: max-issues-per-linter: 0 max-same-issues: 0 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 - path: cmd linters: - forbidigo - linters: - dupl text: "webhook" - linters: - gocritic text: "`ID' should not be capitalized" - linters: - unused - deadcode text: "swagger" - linters: - staticcheck text: "argument x is overwritten before first use" - text: "commentFormatting: put a space between `//` and comment text" linters: - gocritic - text: "exitAfterDefer:" linters: - gocritic