-
Notifications
You must be signed in to change notification settings - Fork 1.1k
/
.golangci.yml
113 lines (103 loc) · 2.98 KB
/
.golangci.yml
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
# Options for analysis running.
run:
timeout: 20m
tests: true
# Be as complete as possible when reporting issues
max-issues-per-linter: 0
max-same-issues: 0
# If set we pass it to "go list -mod={option}". From "go help modules":
# If invoked with -mod=readonly, the go command is disallowed from the implicit
# automatic updating of go.mod described above. Instead, it fails when any changes
# to go.mod are needed. This setting is most useful to check that go.mod does
# not need updates, such as in a continuous integration and testing system.
# If invoked with -mod=vendor, the go command assumes that the vendor
# directory holds the correct copies of dependencies and ignores
# the dependency descriptions in go.mod.
#
# Allowed values: readonly|vendor|mod
# By default, it isn't set.
modules-download-mode: readonly
# Allow multiple parallel golangci-lint instances running.
# If false (default) - golangci-lint acquires file lock on start.
allow-parallel-runners: false
linters:
disable:
- varnamelen
- tagliatelle
- testpackage
- paralleltest
- ireturn
enable:
- govet
- forbidigo
- gochecknoinits
- thelper
- errcheck
- errorlint
- noctx
- dupl
- nilerr
- misspell
- goimports
- revive
linters-settings:
fobidigo:
forbid:
- p: ^fmt\.Print.*$
msg: Do not commit print statements, use t.Log or Logrus.
- p: ^net\/http\.(Get|Head|Post|Form).*$
msg: Do not use top level http package functions, NewRequestWithContext is encouraged.
exclude-godoc-examples: false
analyze-types: true
revive:
ignore-generated-header: true
severity: error
enable-all-rules: false
rules:
- name: unused-parameter
disabled: false
arguments:
- allowRegex: "^_"
- name: import-shadowing
disabled: false
- name: exported
disabled: false
govet:
enable-all: true
disable:
- fieldalignment
- shadow
goimports:
local-prefixes: github.com/TykTechnologies,github.com/TykTechnologies/tyk/internal
errcheck:
check-type-assertions: true
check-blank: true
exclude-functions:
- (*github.com/TykTechnologies/tyk/gateway.Test).Run
- time.Parse
issues:
max-issues-per-linter: 0
max-same-issues: 0
exclude-generated: strict
exclude-files:
- ".*\\.pb\\.go$"
- ".*/mock/.+\\.go$"
- ".*/bindata.go$"
exclude-dirs:
- ci
- bin
- webclient
- portal
exclude-rules:
- path: ^cli/
linters:
- forbidigo # cli package uses fmt.Print by design
- path: _test\.go
linters:
- dupl # many functions looks like dupes
- gocyclo # many functions can be very long
- funlen # many functions can be very long
- gosec # tests don't have CVEs
exclude:
- G404 # Use of weak random number generator (math/rand instead of crypto/rand)
- SA9004 # only the first constant in this group has an explicit type