summaryrefslogtreecommitdiff
path: root/.golangci.yml
blob: 5f018970eb7103639461e0e592d6ee536bbc3ea2 (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
linters-settings:
  errcheck:
    ignore: fmt:.*,go.uber.org/zap/zapcore:^Add.*
    ignoretests: true
  gci:
    sections:
      - standard # Standard section: captures all standard packages.
      - default # Default section: contains all imports that could not be matched to another section type.
      - prefix(github.com/caddyserver/caddy/v2/cmd) # ensure that this is always at the top and always has a line break.
      - prefix(github.com/caddyserver/caddy) # Custom section: groups all imports with the specified Prefix.
    # Skip generated files.
    # Default: true
    skip-generated: true
    # Enable custom order of sections.
    # If `true`, make the section order the same as the order of `sections`.
    # Default: false
    custom-order: true

linters:
  disable-all: true
  enable:
    - bodyclose
    - errcheck
    - gci
    - gofumpt
    - gosec
    - gosimple
    - govet
    - ineffassign
    - misspell
    - prealloc
    - staticcheck
    - typecheck
    - unconvert
    - unused
  # these are implicitly disabled:
  # - asciicheck
  # - depguard
  # - dogsled
  # - dupl
  # - exhaustive
  # - exportloopref
  # - funlen
  # - gci
  # - gochecknoglobals
  # - gochecknoinits
  # - gocognit
  # - goconst
  # - gocritic
  # - gocyclo
  # - godot
  # - godox
  # - goerr113
  # - gofumpt
  # - goheader
  # - golint
  # - gomnd
  # - gomodguard
  # - goprintffuncname
  # - interfacer
  # - lll
  # - maligned
  # - nakedret
  # - nestif
  # - nlreturn
  # - noctx
  # - nolintlint
  # - rowserrcheck
  # - scopelint
  # - sqlclosecheck
  # - stylecheck
  # - testpackage
  # - unparam
  # - whitespace
  # - wsl

run:
  # default concurrency is a available CPU number.
  # concurrency: 4 # explicitly omit this value to fully utilize available resources.
  deadline: 5m
  issues-exit-code: 1
  tests: false

# output configuration options
output:
  format: 'colored-line-number'
  print-issued-lines: true
  print-linter-name: true

issues:
  exclude-rules:
    # we aren't calling unknown URL
    - text: 'G107' # G107: Url provided to HTTP request as taint input
      linters:
        - gosec
    # as a web server that's expected to handle any template, this is totally in the hands of the user.
    - text: 'G203' # G203: Use of unescaped data in HTML templates
      linters:
        - gosec
    # we're shelling out to known commands, not relying on user-defined input.
    - text: 'G204' # G204: Audit use of command execution
      linters:
        - gosec
    # the choice of weakrand is deliberate, hence the named import "weakrand"
    - path: modules/caddyhttp/reverseproxy/selectionpolicies.go
      text: 'G404' # G404: Insecure random number source (rand)
      linters:
        - gosec
    - path: modules/caddyhttp/reverseproxy/streaming.go
      text: 'G404' # G404: Insecure random number source (rand)
      linters:
        - gosec