-
Notifications
You must be signed in to change notification settings - Fork 0
/
.golangci.yml
104 lines (95 loc) · 3.23 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
# This file contains all available configuration options
# with their default values.
# options for analysis running
run:
# default concurrency is a available CPU number
# concurrency: 4
# timeout for analysis, e.g. 30s, 5m, default is 1m
timeout: 5m
# exit code when at least one issue was found, default is 1
# issues-exit-code: 1
# include test files or not, default is true
tests: true
# list of build tags, all linters use it. Default is empty list.
build-tags:
- ci
# which dirs to skip: they won't be analyzed;
# can use regexp here: generated.*, regexp is applied on full path;
# default value is empty list, but next dirs are always skipped independently
# from this option's value:
# vendor$, third_party$, testdata$, examples$, Godeps$, builtin$
skip-dirs:
- scripts/*
- vendor/*
# which files to skip: they will be analyzed, but issues from them
# won't be reported. Default value is empty list, but there is
# no need to include all autogenerated files, we confidently recognize
# autogenerated files. If it's not please let us know.
# skip-files:
# by default isn't set. 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.
# modules-download-mode: vendor
linters:
enable:
- asciicheck
- bodyclose
- depguard
- dogsled
- exhaustive
- exportloopref
- gci
- gochecknoinits
- gocognit
- gocyclo
- godot
- godox
- goerr113
- gofmt
- gofumpt
- goheader
- goimports
- gomnd
- gomodguard
- goprintffuncname
- gosec
- govet
- lll
- misspell
- nakedret
- nestif
- nlreturn
- noctx
- nolintlint
- prealloc
- exportloopref
- sqlclosecheck
- stylecheck
- testpackage
- unconvert
- whitespace
- wsl
disable:
- dupl # In a template world why not but in Go...
- funlen # Makes no sense in an actual project
- gochecknoglobals # May be ok to have const
- goconst # For "classic" strings like POST, prefer to keep them hardcode
- gocritic # Raise switch type but there is no way to change it in if clause
- interfacer # Want to impose standard interface instead of logic domain
- megacheck # Panic in go1.11+
- revive # wants to merge error checking and return
- rowserrcheck # Would be great to enable it but too many false positives, needs fixing
- unparam # Error return should be automatic, even in nil case
fast: false
linters-settings:
gocognit:
# minimal code complexity to report, 30 by default (but we recommend 10-20)
min-complexity: 40
nestif:
# minimal complexity of if statements to report, 5 by default
min-complexity: 10