173 lines
5.6 KiB
YAML
173 lines
5.6 KiB
YAML
# options for analysis running
|
|
run:
|
|
# default concurrency is an available CPU number
|
|
concurrency: 8
|
|
|
|
# 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
|
|
|
|
# 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:
|
|
# - ^test.*
|
|
|
|
# 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: readonly
|
|
|
|
# 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:
|
|
# - ".*\\.my\\.go$"
|
|
# - lib/bad.go
|
|
|
|
# all available settings of specific linters
|
|
linters-settings:
|
|
gocyclo:
|
|
# minimal code complexity to report, 30 by default (but we recommend 10-20)
|
|
min-complexity: 35
|
|
|
|
govet:
|
|
enable:
|
|
- nilness
|
|
goimports:
|
|
local-prefixes: github.com/cilium/cilium
|
|
unused:
|
|
parameters-are-used: true
|
|
local-variables-are-used: true
|
|
field-writes-are-uses: true
|
|
post-statements-are-reads: true
|
|
exported-fields-are-used: true
|
|
generated-is-used: true
|
|
goheader:
|
|
values:
|
|
regexp:
|
|
PROJECT: 'K9s'
|
|
template: |-
|
|
SPDX-License-Identifier: Apache-2.0
|
|
Copyright Authors of {{ PROJECT }}
|
|
gosec:
|
|
includes:
|
|
- G402
|
|
sloglint:
|
|
# Enforce not mixing key-value pairs and attributes.
|
|
# https://github.com/go-simpler/sloglint?tab=readme-ov-file#no-mixed-arguments
|
|
# Default: true
|
|
no-mixed-args: true
|
|
# Enforce using key-value pairs only (overrides no-mixed-args, incompatible with attr-only).
|
|
# https://github.com/go-simpler/sloglint?tab=readme-ov-file#key-value-pairs-only
|
|
# Default: false
|
|
kv-only: true
|
|
# Enforce using attributes only (overrides no-mixed-args, incompatible with kv-only).
|
|
# https://github.com/go-simpler/sloglint?tab=readme-ov-file#attributes-only
|
|
# Default: false
|
|
attr-only: false
|
|
# Enforce not using global loggers.
|
|
# Values:
|
|
# - "": disabled
|
|
# - "all": report all global loggers
|
|
# - "default": report only the default slog logger
|
|
# https://github.com/go-simpler/sloglint?tab=readme-ov-file#no-global
|
|
# Default: ""
|
|
no-global: ""
|
|
# Enforce using methods that accept a context.
|
|
# Values:
|
|
# - "": disabled
|
|
# - "all": report all contextless calls
|
|
# - "scope": report only if a context exists in the scope of the outermost function
|
|
# https://github.com/go-simpler/sloglint?tab=readme-ov-file#context-only
|
|
# Default: ""
|
|
context: ""
|
|
# Enforce using static values for log messages.
|
|
# https://github.com/go-simpler/sloglint?tab=readme-ov-file#static-messages
|
|
# Default: false
|
|
static-msg: false
|
|
# Enforce using constants instead of raw keys.
|
|
# https://github.com/go-simpler/sloglint?tab=readme-ov-file#no-raw-keys
|
|
# Default: false
|
|
no-raw-keys: true
|
|
# Enforce a single key naming convention.
|
|
# Values: snake, kebab, camel, pascal
|
|
# https://github.com/go-simpler/sloglint?tab=readme-ov-file#key-naming-convention
|
|
# Default: ""
|
|
key-naming-case: camel
|
|
# Enforce not using specific keys.
|
|
# https://github.com/go-simpler/sloglint?tab=readme-ov-file#forbidden-keys
|
|
# Default: []
|
|
forbidden-keys:
|
|
- time
|
|
- level
|
|
- msg
|
|
- source
|
|
# Enforce putting arguments on separate lines.
|
|
# https://github.com/go-simpler/sloglint?tab=readme-ov-file#arguments-on-separate-lines
|
|
# Default: false
|
|
args-on-sep-lines: false
|
|
|
|
|
|
issues:
|
|
|
|
# default is true. Enables skipping of directories:
|
|
# vendor$, third_party$, testdata$, examples$, Godeps$, builtin$
|
|
exclude-dirs-use-default: true
|
|
|
|
# Excluding configuration per-path, per-linter, per-text and per-source
|
|
exclude-rules:
|
|
- linters: [staticcheck]
|
|
text: "SA1019" # this is rule for deprecated method
|
|
- linters: [staticcheck]
|
|
text: "SA9003: empty branch"
|
|
- linters: [staticcheck]
|
|
text: "SA2001: empty critical section"
|
|
- linters: [err113]
|
|
text: "do not define dynamic errors, use wrapped static errors instead" # This rule to avoid opinionated check fmt.Errorf("text")
|
|
# Skip goimports check on generated files
|
|
- path: \\.(generated\\.deepcopy|pb)\\.go$
|
|
linters:
|
|
- goimports
|
|
# Skip goheader check on files imported and modified from upstream k8s
|
|
- path: "pkg/ipam/(cidrset|service)/.+\\.go"
|
|
linters:
|
|
- goheader
|
|
|
|
linters:
|
|
disable-all: true
|
|
enable:
|
|
- err113
|
|
- gofmt
|
|
- goimports
|
|
- govet
|
|
- ineffassign
|
|
- misspell
|
|
- unused
|
|
- goheader
|
|
- gosec
|
|
- gomodguard
|
|
- gosimple
|
|
- errcheck
|
|
- gocyclo
|
|
- gosec
|
|
- gosimple
|
|
- misspell
|
|
- prealloc
|
|
- typecheck
|
|
- sloglint
|
|
|