Welcome to mirror list, hosted at ThFree Co, Russian Federation.

.golangci.yml - gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: f97d22a09f9773784a0ffe016391519c6f22d549 (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
# options for analysis running
run:
  # timeout for analysis, e.g. 30s, 5m, default is 1m
  timeout: 10m
  modules-download-mode: readonly

# list of useful linters could be found at https://github.com/golangci/awesome-go-linters
linters:
  disable-all: true
  enable:
    - bidichk
    - deadcode
    - errcheck
    - exportloopref
    - depguard
    - forbidigo
    - gci
    # We use both gofmt and gofumpt because gofumpt doesn't seem to be linting
    # for simplifications, while gofmt does.
    - gofmt
    - gofumpt
    - goimports
    - gosimple
    - govet
    - ineffassign
    - makezero
    - megacheck
    - misspell
    - noctx
    - nolintlint
    - revive
    - rowserrcheck
    - sqlclosecheck
    - staticcheck
    - structcheck
    - stylecheck
    - thelper
    - unconvert
    - unused
    - varcheck
    - wastedassign

linters-settings:
  depguard:
    list-type: blacklist
    include-go-root: true
    packages-with-error-message:
      - io/ioutil: "ioutil is deprecated starting with Go 1.16"
  errcheck:
    # The following are functions for which we are currently not consistently
    # checking returned errors. This is not intended as a list of known-okay
    # cases to skip the checks, but rather as a list of things we should
    # eventually fix.
    exclude-functions:
      - (*database/sql.DB).Close
      - (*database/sql.Rows).Close
      - (*gitlab.com/gitlab-org/gitaly/v15/client.Pool).Close
      - (*gitlab.com/gitlab-org/gitaly/v15/internal/sidechannel.ServerConn).Close
      - (*gitlab.com/gitlab-org/gitaly/v15/internal/streamcache.pipe).Close
      - (*gitlab.com/gitlab-org/gitaly/v15/internal/streamcache.pipeReader).Close
      - (*google.golang.org/grpc.ClientConn).Close
      - (*google.golang.org/grpc.ServerConn).Close
      - (*io.PipeReader).Close
      - (*io.PipeWriter).Close
      - (*os.File).Close
      - (io.Closer).Close
      - (net.Conn).Close
      - (net.Listener).Close
  forbidigo:
    forbid:
      # Tests and code which use timing-based setups have repeatedly resulted
      # in flaky tests and are considered a code smell. Tests should be
      # rewritten to use deterministic timing sources like tickers. Using the
      # following functions is thus disallowed. and a code smell.
      - ^context.WithDeadline$
      - ^context.WithTimeout$
      # Tests should always use `testhelper.Context()`: this context has
      # special handling for feature flags which allows us to assert that
      # they're tested as expected.
      - ^context.Background$
      - ^context.TODO$
      # Tests should not set the bare environment functions, but instead use
      # `t.Setenv()` or `testhelper.Unsetenv()`. These functions have sanity
      # checks to verify we don't use `t.Parallel()` when setting envvars.
      - ^os.Setenv$
      - ^os.Unsetenv$
  revive:
    rules:
      - name: context-as-argument
        arguments:
          # The context should always be first, except in our testing packages.
          allowTypesBefore: "*testing.T,*testing.B,testing.TB"
  stylecheck:
    # ST1000 checks for missing package comments. We don't use these for most
    # packages, so let's disable this check.
    checks: [ "all", "-ST1000" ]
  thelper:
    test:
      # The following linter would check whether we always call `t.Helper()` in
      # functions that are not the top-level testcase. While this is nice in
      # theory, in practice it would also impact e.g. usecases like
      # `testhelper.NewFeatureSets(...).Run(t, testWithFeatures)`. This isn't
      # really what we want, so we just leave these as disabled for the time
      # being.
      begin: false
    benchmark:
      begin: false
    tb:
      begin: false

issues:
  exclude-use-default: false
  exclude-rules:
    - linters:
        - forbidigo
      # This fine thing excludes all paths which don't end with "_test.go".
      path: "^([^_]|_([^t]|t([^e]|e([^s]|s([^t]|t([^\\.]|\\.([^g]|g[^o])))))))*$"
  # Maximum issues count per one linter. Set to 0 to disable. Default is 50.
  max-issues-per-linter: 0
  # Maximum count of issues with the same text. Set to 0 to disable. Default is 3.
  max-same-issues: 0