summaryrefslogtreecommitdiffstats
path: root/.golangci.yml
diff options
context:
space:
mode:
Diffstat (limited to '.golangci.yml')
-rw-r--r--.golangci.yml149
1 files changed, 149 insertions, 0 deletions
diff --git a/.golangci.yml b/.golangci.yml
new file mode 100644
index 00000000..640fbb93
--- /dev/null
+++ b/.golangci.yml
@@ -0,0 +1,149 @@
+linters:
+ enable-all: false
+ disable-all: true
+ fast: false
+ enable:
+ - bidichk
+ - depguard
+ - dupl
+ - errcheck
+ - forbidigo
+ - gocritic
+ - gofmt
+ - gofumpt
+ - gosimple
+ - govet
+ - ineffassign
+ - nakedret
+ - nolintlint
+ - revive
+ - 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