| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250 |
- version: "2"
- run:
- issues-exit-code: 1
- tests: true
- linters:
- default: none
- enable:
- - asasalint
- - bodyclose
- - depguard
- - errcheck
- - errorlint
- - godot
- - gosec
- - govet
- - ineffassign
- - misspell
- - perfsprint
- - revive
- - staticcheck
- - testifylint
- - unconvert
- - unparam
- - unused
- - usestdlibvars
- - usetesting
- settings:
- depguard:
- rules:
- auto/sdk:
- files:
- - '!internal/global/trace.go'
- - ~internal/global/trace_test.go
- deny:
- - pkg: go.opentelemetry.io/auto/sdk
- desc: Do not use SDK from automatic instrumentation.
- non-tests:
- files:
- - '!$test'
- - '!**/*test/*.go'
- - '!**/internal/matchers/*.go'
- deny:
- - pkg: testing
- - pkg: github.com/stretchr/testify
- - pkg: crypto/md5
- - pkg: crypto/sha1
- - pkg: crypto/**/pkix
- otel-internal:
- files:
- - '**/sdk/*.go'
- - '**/sdk/**/*.go'
- - '**/exporters/*.go'
- - '**/exporters/**/*.go'
- - '**/schema/*.go'
- - '**/schema/**/*.go'
- - '**/metric/*.go'
- - '**/metric/**/*.go'
- - '**/bridge/*.go'
- - '**/bridge/**/*.go'
- - '**/trace/*.go'
- - '**/trace/**/*.go'
- - '**/log/*.go'
- - '**/log/**/*.go'
- deny:
- - pkg: go.opentelemetry.io/otel/internal$
- desc: Do not use cross-module internal packages.
- - pkg: go.opentelemetry.io/otel/internal/internaltest
- desc: Do not use cross-module internal packages.
- otlp-internal:
- files:
- - '!**/exporters/otlp/internal/**/*.go'
- deny:
- - pkg: go.opentelemetry.io/otel/exporters/otlp/internal
- desc: Do not use cross-module internal packages.
- otlpmetric-internal:
- files:
- - '!**/exporters/otlp/otlpmetric/internal/*.go'
- - '!**/exporters/otlp/otlpmetric/internal/**/*.go'
- deny:
- - pkg: go.opentelemetry.io/otel/exporters/otlp/otlpmetric/internal
- desc: Do not use cross-module internal packages.
- otlptrace-internal:
- files:
- - '!**/exporters/otlp/otlptrace/*.go'
- - '!**/exporters/otlp/otlptrace/internal/**.go'
- deny:
- - pkg: go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal
- desc: Do not use cross-module internal packages.
- godot:
- exclude:
- # Exclude links.
- - '^ *\[[^]]+\]:'
- # Exclude sentence fragments for lists.
- - ^[ ]*[-•]
- # Exclude sentences prefixing a list.
- - :$
- misspell:
- locale: US
- ignore-rules:
- - cancelled
- perfsprint:
- int-conversion: true
- err-error: true
- errorf: true
- sprintf1: true
- strconcat: true
- revive:
- confidence: 0.01
- rules:
- - name: blank-imports
- - name: bool-literal-in-expr
- - name: constant-logical-expr
- - name: context-as-argument
- arguments:
- - allowTypesBefore: '*testing.T'
- disabled: true
- - name: context-keys-type
- - name: deep-exit
- - name: defer
- arguments:
- - - call-chain
- - loop
- - name: dot-imports
- - name: duplicated-imports
- - name: early-return
- arguments:
- - preserveScope
- - name: empty-block
- - name: empty-lines
- - name: error-naming
- - name: error-return
- - name: error-strings
- - name: errorf
- - name: exported
- arguments:
- - sayRepetitiveInsteadOfStutters
- - name: flag-parameter
- - name: identical-branches
- - name: if-return
- - name: import-shadowing
- - name: increment-decrement
- - name: indent-error-flow
- arguments:
- - preserveScope
- - name: package-comments
- - name: range
- - name: range-val-in-closure
- - name: range-val-address
- - name: redefines-builtin-id
- - name: string-format
- arguments:
- - - panic
- - /^[^\n]*$/
- - must not contain line breaks
- - name: struct-tag
- - name: superfluous-else
- arguments:
- - preserveScope
- - name: time-equal
- - name: unconditional-recursion
- - name: unexported-return
- - name: unhandled-error
- arguments:
- - fmt.Fprint
- - fmt.Fprintf
- - fmt.Fprintln
- - fmt.Print
- - fmt.Printf
- - fmt.Println
- - name: unnecessary-stmt
- - name: useless-break
- - name: var-declaration
- - name: var-naming
- arguments:
- - ["ID"] # AllowList
- - ["Otel", "Aws", "Gcp"] # DenyList
- - name: waitgroup-by-value
- testifylint:
- enable-all: true
- disable:
- - float-compare
- - go-require
- - require-error
- exclusions:
- generated: lax
- presets:
- - common-false-positives
- - legacy
- - std-error-handling
- rules:
- - linters:
- - revive
- path: schema/v.*/types/.*
- text: avoid meaningless package names
- # TODO: Having appropriate comments for exported objects helps development,
- # even for objects in internal packages. Appropriate comments for all
- # exported objects should be added and this exclusion removed.
- - linters:
- - revive
- path: .*internal/.*
- text: exported (method|function|type|const) (.+) should have comment or be unexported
- # Yes, they are, but it's okay in a test.
- - linters:
- - revive
- path: _test\.go
- text: exported func.*returns unexported type.*which can be annoying to use
- # Example test functions should be treated like main.
- - linters:
- - revive
- path: example.*_test\.go
- text: calls to (.+) only in main[(][)] or init[(][)] functions
- # It's okay to not run gosec and perfsprint in a test.
- - linters:
- - gosec
- - perfsprint
- path: _test\.go
- # Ignoring gosec G404: Use of weak random number generator (math/rand instead of crypto/rand)
- # as we commonly use it in tests and examples.
- - linters:
- - gosec
- text: 'G404:'
- # Ignoring gosec G402: TLS MinVersion too low
- # as the https://pkg.go.dev/crypto/tls#Config handles MinVersion default well.
- - linters:
- - gosec
- text: 'G402: TLS MinVersion too low.'
- paths:
- - third_party$
- - builtin$
- - examples$
- issues:
- max-issues-per-linter: 0
- max-same-issues: 0
- formatters:
- enable:
- - gofumpt
- - goimports
- - golines
- settings:
- goimports:
- local-prefixes:
- - go.opentelemetry.io
- golines:
- max-len: 120
- exclusions:
- generated: lax
- paths:
- - third_party$
- - builtin$
- - examples$
|