123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- # 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
|