# 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: 20m # 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: issues from them won't be reported; # can use regexp here: generated.*, regexp is applied on full path; # default value is empty list, but default dirs are skipped independently # from this option's value (see skip-dirs-use-default). skip-dirs: - third_party - local - cmd/otelcontribcol - cmd/oteltestbedcol # default is true. Enables skipping of directories: # vendor$, third_party$, testdata$, examples$, Godeps$, builtin$ skip-dirs-use-default: false # 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: readonly # output configuration options output: # colored-line-number|line-number|json|tab|checkstyle|code-climate, default is "colored-line-number" format: colored-line-number # print lines of code with issue, default is true print-issued-lines: true # print linter name in the end of issue text, default is true print-linter-name: true # all available settings of specific linters linters-settings: gci: sections: - standard - default - prefix(github.com/open-telemetry/opentelemetry-collector-contrib) govet: # report about shadowed variables check-shadowing: true # settings per analyzer settings: printf: # analyzer name, run `go tool vet help` to see all analyzers funcs: # run `go tool vet help printf` to see available settings for `printf` analyzer - (github.com/golangci/golangci-lint/pkg/logutils.Log).Infof - (github.com/golangci/golangci-lint/pkg/logutils.Log).Warnf - (github.com/golangci/golangci-lint/pkg/logutils.Log).Errorf - (github.com/golangci/golangci-lint/pkg/logutils.Log).Fatalf enable-all: true # TODO: Enable this and fix the alignment issues. disable: - fieldalignment - loopclosure revive: # minimal confidence for issues, default is 0.8 min-confidence: 0.8 gofmt: # simplify code: gofmt with `-s` option, true by default simplify: true rewrite-rules: - pattern: interface{} replacement: any goimports: # put imports beginning with prefix after 3rd-party packages; # it's a comma-separated list of prefixes local-prefixes: github.com/open-telemetry/opentelemetry-collector-contrib misspell: # Correct spellings using locale preferences for US or UK. # Default is to use a neutral variety of English. # Setting locale to US will correct the British spelling of 'colour' to 'color'. locale: US ignore-words: - cancelled - metre - meter - metres - kilometre - kilometres depguard: rules: denied-deps: deny: - pkg: go.uber.org/atomic desc: "Use 'sync/atomic' instead of go.uber.org/atomic" - pkg: github.com/pkg/errors desc: "Use 'errors' or 'fmt' instead of github.com/pkg/errors" - pkg: github.com/hashicorp/go-multierror desc: "Use go.uber.org/multierr instead of github.com/hashicorp/go-multierror" # Add a different guard rule so that we can ignore tests. ignore-in-test: deny: - pkg: go.opentelemetry.io/proto desc: "Use go.opentelemetry.io/collector/pdata instead" # Allow in tests for testing pdata or other receivers/exporters that expect OTLP. files: - "!**/*_test.go" exhaustive: explicit-exhaustive-switch: true ignore-enum-members: "pmetric.MetricTypeEmpty" predeclared: ignore: copy linters: enable: - decorder - depguard - errcheck - errorlint - exportloopref - exhaustive - gci - gocritic - gofmt - goimports - gosec - govet - misspell - predeclared - reassign - revive - staticcheck - tenv - unconvert - unparam - unused - wastedassign issues: # Excluding configuration per-path, per-linter, per-text and per-source exclude-rules: # Exclude some linters from running on tests files. - text: "G404:" linters: - gosec - text: "G402:" linters: - gosec