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 # TODO: disabled until fixed with go 1.18 - bidichk - ineffassign - revive - gofumpt enable-all: false disable-all: true fast: false run: 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 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."