Skip to content
Draft
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
326 changes: 326 additions & 0 deletions .golangci.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,326 @@
version = '2'

[run]
issues-exit-code = 1
tests = true
allow-parallel-runners = false
relative-path-mode = 'gitroot'

[output]
path-prefix = ''

[output.formats]
[output.formats.text]
path = 'stdout'
print-linter-name = true
print-issued-lines = true

[linters]
default = 'all'
disable = [
'asciicheck',
'canonicalheader',
'containedctx',
'cyclop',
'depguard',
'dogsled',
'dupl',
'err113',
'errcheck',
'exhaustive',
'exhaustruct',
'forbidigo',
'funlen',
'gochecknoglobals',
'gocognit',
'goconst',
'gocyclo',
'godot',
'godox',
'goheader',
'gomoddirectives',
'importas',
'inamedparam',
'intrange',
'ireturn',
'lll',
'mnd',
'musttag',
'nilnil',
'nlreturn',
'noinlineerr',
'nonamedreturns',
'paralleltest',
'perfsprint',
'prealloc',
'promlinter',
'protogetter',
'tagliatelle',
'testpackage',
'thelper',
'unparam',
'varnamelen',
'wastedassign',
'whitespace',
'wrapcheck',
'wsl',
'wsl_v5'
]

[linters.settings]
[linters.settings.errorlint]
errorf = true
asserts = true
comparison = true

[linters.settings.forbidigo]
[[linters.settings.forbidigo.forbid]]
pattern = 'time.After\.*(# use of time After can create memory allocation issues see https://github.com/github/go-linter/tree/main/doc/time_after.md )?'

[linters.settings.gocritic]
disabled-checks = [
'importShadow',
'unnamedResult'
]
enabled-tags = [
'diagnostic',
'performance',
'style'
]

[linters.settings.gocritic.settings]
[linters.settings.gocritic.settings.hugeParam]
sizeThreshold = 256

[linters.settings.gocritic.settings.rangeValCopy]
sizeThreshold = 256

[linters.settings.gosec]
excludes = [
'G204',
'G304',
'G307'
]

[linters.settings.gosec.config]
[linters.settings.gosec.config.G104]
os = ['Setenv']

[linters.settings.govet]
disable = [
'shadow',
'fieldalignment'
]
enable-all = true

[linters.settings.nestif]
min-complexity = 9

[linters.settings.nolintlint]
require-explanation = true
require-specific = true
allow-unused = true

[linters.settings.recvcheck]
exclusions = ['*.UnmarshalJSON']

[linters.settings.revive]
confidence = 0.8
severity = 'error'
enable-all-rules = true

[[linters.settings.revive.rules]]
name = 'comment-spacings'
arguments = [
'nolint'
]
disabled = false

[[linters.settings.revive.rules]]
name = 'unchecked-type-assertion'
disabled = false

[[linters.settings.revive.rules.arguments]]
acceptIgnoredAssertionResult = true

[[linters.settings.revive.rules]]
name = 'unhandled-error'
arguments = [
'fmt.Print',
'fmt.Printf',
'fmt.Println',
'os.Setenv',
'os.Unsetenv'
]
disabled = false

[[linters.settings.revive.rules]]
name = 'add-constant'
disabled = true

[[linters.settings.revive.rules]]
name = 'argument-limit'
disabled = true

[[linters.settings.revive.rules]]
name = 'banned-characters'
disabled = true

[[linters.settings.revive.rules]]
name = 'blank-imports'
disabled = true

[[linters.settings.revive.rules]]
name = 'cognitive-complexity'
disabled = true

[[linters.settings.revive.rules]]
name = 'confusing-naming'
disabled = true

[[linters.settings.revive.rules]]
name = 'constant-logical-expr'
disabled = true

[[linters.settings.revive.rules]]
name = 'cyclomatic'
disabled = true

[[linters.settings.revive.rules]]
name = 'empty-block'
disabled = true

[[linters.settings.revive.rules]]
name = 'error-naming'
disabled = true

[[linters.settings.revive.rules]]
name = 'file-header'
disabled = true

[[linters.settings.revive.rules]]
name = 'flag-parameter'
disabled = true

[[linters.settings.revive.rules]]
name = 'function-result-limit'
disabled = true

[[linters.settings.revive.rules]]
name = 'function-length'
disabled = true

[[linters.settings.revive.rules]]
name = 'get-return'
disabled = true

[[linters.settings.revive.rules]]
name = 'imports-blocklist'
disabled = true

[[linters.settings.revive.rules]]
name = 'import-alias-naming'
disabled = true

[[linters.settings.revive.rules]]
name = 'line-length-limit'
disabled = true

[[linters.settings.revive.rules]]
name = 'max-public-structs'
disabled = true

[[linters.settings.revive.rules]]
name = 'nested-structs'
disabled = true

[[linters.settings.revive.rules]]
name = 'optimize-operands-order'
disabled = true

[[linters.settings.revive.rules]]
name = 'redundant-import-alias'
disabled = true

[[linters.settings.revive.rules]]
name = 'string-format'
disabled = true

[[linters.settings.revive.rules]]
name = 'unused-parameter'
disabled = true

[[linters.settings.revive.rules]]
name = 'unused-receiver'
disabled = true

[[linters.settings.revive.rules]]
name = 'use-any'
disabled = true

[linters.settings.testifylint]
enable-all = true
disable = [
'bool-compare',
'empty',
'error-is-as',
'len',
'negative-positive',
'go-require'
]

[linters.exclusions]
generated = 'lax'
paths = [
'third_party$',
'builtin$',
'examples$'
]

[[linters.exclusions.rules]]
linters = [
'bodyclose',
'errcheck',
'forcetypeassert',
'gosec',
'maintidx',
'noctx'
]
path = '_test.go'

[[linters.exclusions.rules]]
linters = [
'revive'
]
path = '_test.go'
text = 'unchecked-type-assertion:'

[[linters.exclusions.rules]]
linters = [
'govet'
]
path = '_test.go'
text = 'unusedwrite:'

[issues]
max-issues-per-linter = 0
max-same-issues = 0
uniq-by-line = true
new = false
fix = false

[severity]
default = 'error'

[formatters]
enable = [
'goimports'
]

[formatters.exclusions]
generated = 'lax'
paths = [
'third_party$',
'builtin$',
'examples$'
]