aboutsummaryrefslogtreecommitdiffstats
path: root/.golangci.yml
blob: 0f194097ed0cd6227b22717f04c06153a6e4c07a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
version: "2"
output:
  sort-order:
    - file
linters:
  default: none
  enable:
    - bidichk
    - depguard
    - dupl
    - errcheck
    - forbidigo
    - gocritic
    - govet
    - ineffassign
    - nakedret
    - nolintlint
    - revive
    - staticcheck
    - testifylint
    - unconvert
    - unparam
    - unused
    - 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: 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: gitea.com/go-chi/cache
              desc: do not use the go-chi cache package, use gitea's cache system
    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
    staticcheck:
      checks:
        - all
        - -ST1003
        - -ST1005
        - -QF1001
        - -QF1006
        - -QF1008
    testifylint:
      disable:
        - go-require
        - require-error
        - equal-values
        - empty
        - formatter
        - len
    usetesting:
      os-temp-dir: true
  exclusions:
    generated: lax
    presets:
      - comments
      - common-false-positives
      - legacy
      - std-error-handling
    rules:
      - linters:
          - dupl
          - errcheck
          - gocyclo
          - gosec
          - staticcheck
          - unparam
        path: _test\.go
      - linters:
          - dupl
          - errcheck
          - gocyclo
          - gosec
        path: models/migrations/v
      - linters:
          - forbidigo
        path: cmd
      - linters:
          - dupl
        text: (?i)webhook
      - linters:
          - gocritic
        text: (?i)`ID' should not be capitalized
      - linters:
          - deadcode
          - unused
        text: (?i)swagger
      - linters:
          - staticcheck
        text: (?i)argument x is overwritten before first use
      - linters:
          - gocritic
        text: '(?i)commentFormatting: put a space between `//` and comment text'
      - linters:
          - gocritic
        text: '(?i)exitAfterDefer:'
    paths:
      - node_modules
      - public
      - web_src
      - third_party$
      - builtin$
      - examples$
issues:
  max-issues-per-linter: 0
  max-same-issues: 0
formatters:
  enable:
    - gofmt
    - gofumpt
  settings:
    gofumpt:
      extra-rules: true
  exclusions:
    generated: lax
    paths:
      - node_modules
      - public
      - web_src
      - third_party$
      - builtin$
      - examples$

run:
  timeout: 10m