mirror of https://github.com/grafana/grafana
Chore: Enable cache on golangci linter (#95471)
* try to enable cache on golangci linter * bump version * exclude G115 * reduce timeout * remove deprecated linter * bump linter version in bingo * try a different syntax for workspace modules * try another command * add apps to linter path * try disabling cue codegen * skip some linting in devenv * exclude dirs and try again * try workaround for pkg * try path instead of dir * make it one line * replace package prefix * exclude xorm * exclude wire * file-based aproach to nolint in workspaces * missing quote * simplify command line * change ownershippull/96052/head
parent
6638dd9a83
commit
d5cde0b60a
@ -1,7 +1,5 @@ |
|||||||
module _ // Auto generated by https://github.com/bwplotka/bingo. DO NOT EDIT |
module _ // Auto generated by https://github.com/bwplotka/bingo. DO NOT EDIT |
||||||
|
|
||||||
go 1.22.1 |
go 1.23 |
||||||
|
|
||||||
toolchain go1.23.0 |
require github.com/golangci/golangci-lint v1.61.0 // cmd/golangci-lint |
||||||
|
|
||||||
require github.com/golangci/golangci-lint v1.60.1 // cmd/golangci-lint |
|
||||||
|
@ -1,315 +0,0 @@ |
|||||||
[run] |
|
||||||
timeout = "20m" |
|
||||||
concurrency = 10 |
|
||||||
allow-parallel-runners = true |
|
||||||
|
|
||||||
[linters-settings.exhaustive] |
|
||||||
default-signifies-exhaustive = true |
|
||||||
|
|
||||||
[linters-settings.revive] |
|
||||||
ignore-generated-header = false |
|
||||||
severity = "warning" |
|
||||||
confidence = 3 |
|
||||||
|
|
||||||
[linters-settings.depguard.rules.main] |
|
||||||
allow = [] # allow all |
|
||||||
deny = [ |
|
||||||
{ pkg = "io/ioutil", desc = "Deprecated: As of Go 1.16, the same functionality is now provided by package io or package os, and those implementations should be preferred in new code. See the specific function documentation for details." }, |
|
||||||
{ pkg = "gopkg.in/yaml.v2", desc = "Grafana packages are not allowed to depend on gopkg.in/yaml.v2 as gopkg.in/yaml.v3 is now available" }, |
|
||||||
{ pkg = "github.com/pkg/errors", desc = "Deprecated: Go 1.13 supports the functionality provided by pkg/errors in the standard library." }, |
|
||||||
{ pkg = "github.com/xorcare/pointer", desc = "Use pkg/util.Pointer instead, which is a generic one-liner alternative" }, |
|
||||||
{ pkg = "github.com/gofrs/uuid", desc = "Use github.com/google/uuid instead, which we already depend on." }, |
|
||||||
{ pkg = "github.com/bmizerany/assert", desc = "Use github.com/stretchr/testify/assert instead, which we already depend on." }, |
|
||||||
] |
|
||||||
|
|
||||||
[linters-settings.depguard.rules.coreplugins] |
|
||||||
deny = [ |
|
||||||
{ pkg = "github.com/grafana/grafana/pkg/api", desc = "Core plugins are not allowed to depend on Grafana core packages" }, |
|
||||||
{ pkg = "github.com/grafana/grafana/pkg/cmd", desc = "Core plugins are not allowed to depend on Grafana core packages" }, |
|
||||||
{ pkg = "github.com/grafana/grafana/pkg/cuectx", desc = "Core plugins are not allowed to depend on Grafana core packages" }, |
|
||||||
{ pkg = "github.com/grafana/grafana/pkg/extensions", desc = "Core plugins are not allowed to depend on Grafana core packages" }, |
|
||||||
{ pkg = "github.com/grafana/grafana/pkg/kinds", desc = "Core plugins are not allowed to depend on Grafana core packages" }, |
|
||||||
{ pkg = "github.com/grafana/grafana/pkg/middleware", desc = "Core plugins are not allowed to depend on Grafana core packages" }, |
|
||||||
{ pkg = "github.com/grafana/grafana/pkg/modules", desc = "Core plugins are not allowed to depend on Grafana core packages" }, |
|
||||||
{ pkg = "github.com/grafana/grafana/pkg/registry", desc = "Core plugins are not allowed to depend on Grafana core packages" }, |
|
||||||
{ pkg = "github.com/grafana/grafana/pkg/services", desc = "Core plugins are not allowed to depend on Grafana core packages" }, |
|
||||||
{ pkg = "github.com/grafana/grafana/pkg/build", desc = "Core plugins are not allowed to depend on Grafana core packages" }, |
|
||||||
{ pkg = "github.com/grafana/grafana/pkg/codegen", desc = "Core plugins are not allowed to depend on Grafana core packages" }, |
|
||||||
{ pkg = "github.com/grafana/grafana/pkg/events", desc = "Core plugins are not allowed to depend on Grafana core packages" }, |
|
||||||
{ pkg = "github.com/grafana/grafana/pkg/ifaces", desc = "Core plugins are not allowed to depend on Grafana core packages" }, |
|
||||||
{ pkg = "github.com/grafana/grafana/pkg/kindsysreport", desc = "Core plugins are not allowed to depend on Grafana core packages" }, |
|
||||||
{ pkg = "github.com/grafana/grafana/pkg/mocks", desc = "Core plugins are not allowed to depend on Grafana core packages" }, |
|
||||||
{ pkg = "github.com/grafana/grafana/pkg/plugins", desc = "Core plugins are not allowed to depend on Grafana core packages" }, |
|
||||||
{ pkg = "github.com/grafana/grafana/pkg/setting", desc = "Core plugins are not allowed to depend on Grafana core packages" }, |
|
||||||
{ pkg = "github.com/grafana/grafana/pkg/util", desc = "Core plugins are not allowed to depend on Grafana core packages" }, |
|
||||||
{ pkg = "github.com/grafana/grafana/pkg/bus", desc = "Core plugins are not allowed to depend on Grafana core packages" }, |
|
||||||
{ pkg = "github.com/grafana/grafana/pkg/components", desc = "Core plugins are not allowed to depend on Grafana core packages" }, |
|
||||||
{ pkg = "github.com/grafana/grafana/pkg/expr", desc = "Core plugins are not allowed to depend on Grafana core packages" }, |
|
||||||
{ pkg = "github.com/grafana/grafana/pkg/infra", desc = "Core plugins are not allowed to depend on Grafana core packages" }, |
|
||||||
{ pkg = "github.com/grafana/grafana/pkg/login", desc = "Core plugins are not allowed to depend on Grafana core packages" }, |
|
||||||
{ pkg = "github.com/grafana/grafana/pkg/models", desc = "Core plugins are not allowed to depend on Grafana core packages" }, |
|
||||||
{ pkg = "github.com/grafana/grafana/pkg/server", desc = "Core plugins are not allowed to depend on Grafana core packages" }, |
|
||||||
{ pkg = "github.com/grafana/grafana/pkg/tests", desc = "Core plugins are not allowed to depend on Grafana core packages" }, |
|
||||||
{ pkg = "github.com/grafana/grafana/pkg/web", desc = "Core plugins are not allowed to depend on Grafana core packages" }, |
|
||||||
{ pkg = "github.com/grafana/grafana/pkg/tsdb/intervalv2", desc = "Core plugins are not allowed to depend on Grafana core packages" }, |
|
||||||
] |
|
||||||
files = [ |
|
||||||
"**/pkg/tsdb/grafana-pyroscope-datasource/*", |
|
||||||
"**/pkg/tsdb/grafana-pyroscope-datasource/**/*", |
|
||||||
"**/pkg/tsdb/grafana-testdata-datasource/*", |
|
||||||
"**/pkg/tsdb/grafana-testdata-datasource/**/*", |
|
||||||
"**/pkg/tsdb/azuremonitor/*", |
|
||||||
"**/pkg/tsdb/azuremonitor/**/*", |
|
||||||
"**/pkg/tsdb/cloud-monitoring/*", |
|
||||||
"**/pkg/tsdb/cloud-monitoring/**/*", |
|
||||||
"**/pkg/tsdb/mysql/*", |
|
||||||
"**/pkg/tsdb/mysql/**/*", |
|
||||||
"**/pkg/tsdb/parca/*", |
|
||||||
"**/pkg/tsdb/parca/**/*", |
|
||||||
"**/pkg/tsdb/tempo/*", |
|
||||||
"**/pkg/tsdb/tempo/**/*", |
|
||||||
"**/pkg/tsdb/cloudwatch/*", |
|
||||||
"**/pkg/tsdb/cloudwatch/**/*", |
|
||||||
] |
|
||||||
|
|
||||||
[linters-settings.depguard.rules.apiserver] |
|
||||||
list-mode = "lax" |
|
||||||
allow = [ |
|
||||||
"github.com/grafana/grafana/pkg/apimachinery", |
|
||||||
"github.com/grafana/grafana/pkg/apiserver", |
|
||||||
] |
|
||||||
deny = [ |
|
||||||
{ pkg = "github.com/grafana/grafana/pkg", desc = "apiserver is not allowed to import grafana core" } |
|
||||||
] |
|
||||||
files = [ |
|
||||||
"**/pkg/apiserver/*", |
|
||||||
"**/pkg/apiserver/**/*" |
|
||||||
] |
|
||||||
|
|
||||||
[linters-settings.depguard.rules.apimachinery] |
|
||||||
list-mode = "lax" |
|
||||||
allow = [ |
|
||||||
"github.com/grafana/grafana/pkg/apimachinery", |
|
||||||
] |
|
||||||
deny = [ |
|
||||||
{ pkg = "github.com/grafana/grafana/pkg", desc = "apimachinery is not allowed to import grafana core" } |
|
||||||
] |
|
||||||
files = [ |
|
||||||
"**/pkg/apimachinery/*", |
|
||||||
"**/pkg/apimachinery/**/*" |
|
||||||
] |
|
||||||
|
|
||||||
[linters-settings.depguard.rules.aggregator] |
|
||||||
list-mode = "lax" |
|
||||||
allow = [ |
|
||||||
"github.com/grafana/grafana/pkg/aggregator", |
|
||||||
"github.com/grafana/grafana/pkg/semconv", |
|
||||||
"github.com/grafana/grafana/pkg/apimachinery", |
|
||||||
] |
|
||||||
deny = [ |
|
||||||
{ pkg = "github.com/grafana/grafana/pkg", desc = "apimachinery is not allowed to import grafana core" } |
|
||||||
] |
|
||||||
files = [ |
|
||||||
"./pkg/aggregator/*", |
|
||||||
"./pkg/aggregator/**/*" |
|
||||||
] |
|
||||||
|
|
||||||
[linters-settings.depguard.rules.promlib] |
|
||||||
list-mode = "lax" # allow unless explicitely denied |
|
||||||
deny = [ |
|
||||||
{ pkg = "github.com/grafana/grafana/pkg", desc = "promlib is not allowed to import grafana core" } |
|
||||||
] |
|
||||||
allow = [ |
|
||||||
"github.com/grafana/grafana/pkg/promlib" |
|
||||||
] |
|
||||||
files = [ |
|
||||||
"**/pkg/promlib/**/*" |
|
||||||
] |
|
||||||
|
|
||||||
[linters-settings.depguard.rules.storage-unified-resource] |
|
||||||
list-mode = "lax" |
|
||||||
allow = [ |
|
||||||
"github.com/grafana/grafana/pkg/apimachinery", |
|
||||||
] |
|
||||||
deny = [ |
|
||||||
{ pkg = "github.com/grafana/grafana/pkg", desc = "pkg/storage/unified/resource is not allowed to import grafana core" } |
|
||||||
] |
|
||||||
files = [ |
|
||||||
"./pkg/storage/unified/resource/*", |
|
||||||
"./pkg/storage/unified/resource/**/*" |
|
||||||
] |
|
||||||
|
|
||||||
[linters-settings.depguard.rules.storage-unified-apistore] |
|
||||||
list-mode = "lax" |
|
||||||
allow = [ |
|
||||||
"github.com/grafana/grafana/pkg/apimachinery", |
|
||||||
"github.com/grafana/grafana/pkg/apiserver", |
|
||||||
"github.com/grafana/grafana/pkg/unified/resource", |
|
||||||
] |
|
||||||
deny = [ |
|
||||||
{ pkg = "github.com/grafana/grafana/pkg", desc = "pkg/storage/unified/apistore is not allowed to import grafana core" } |
|
||||||
] |
|
||||||
files = [ |
|
||||||
"./pkg/storage/unified/apistore/*", |
|
||||||
"./pkg/storage/unified/apistore/**/*" |
|
||||||
] |
|
||||||
|
|
||||||
[linters-settings.depguard.rules.apps-playlist] |
|
||||||
list-mode = "lax" |
|
||||||
allow = [] |
|
||||||
deny = [ |
|
||||||
{ pkg = "github.com/grafana/grafana/pkg", desc = "apps/playlist is not allowed to import grafana core" } |
|
||||||
] |
|
||||||
files = [ |
|
||||||
"./apps/playlist/*", |
|
||||||
"./apps/playlist/**/*" |
|
||||||
] |
|
||||||
|
|
||||||
[linters-settings.gocritic] |
|
||||||
enabled-checks = ["ruleguard"] |
|
||||||
[linters-settings.gocritic.settings.ruleguard] |
|
||||||
rules = "pkg/ruleguard.rules.go" |
|
||||||
|
|
||||||
[linters-settings.misspell] |
|
||||||
ignore-words = ["Unknwon", "Creater"] |
|
||||||
|
|
||||||
[linters-settings.nakedret] |
|
||||||
max-func-lines = 60 |
|
||||||
|
|
||||||
[linters] |
|
||||||
disable-all = true |
|
||||||
# try to keep this list sorted, please |
|
||||||
enable = [ |
|
||||||
"asciicheck", |
|
||||||
"bodyclose", |
|
||||||
"depguard", |
|
||||||
"dogsled", |
|
||||||
"errcheck", |
|
||||||
"errorlint", |
|
||||||
"exhaustive", |
|
||||||
"exportloopref", |
|
||||||
# "gochecknoinits", |
|
||||||
# "goconst", |
|
||||||
# "gocritic", # Temporarily disabled on 2022-09-09, running into weird bug "ruleguard: execution error: used Run() with an empty rule set; forgot to call Load() first?" |
|
||||||
"gocyclo", |
|
||||||
"goimports", |
|
||||||
"goprintffuncname", |
|
||||||
"gosec", |
|
||||||
"gosimple", |
|
||||||
"govet", |
|
||||||
"ineffassign", |
|
||||||
"misspell", |
|
||||||
"nakedret", |
|
||||||
"prealloc", |
|
||||||
"revive", |
|
||||||
"staticcheck", |
|
||||||
"stylecheck", |
|
||||||
"unconvert", |
|
||||||
"unused", |
|
||||||
"whitespace", |
|
||||||
] |
|
||||||
|
|
||||||
# Disabled linters (might want them later) |
|
||||||
# "unparam" |
|
||||||
# "rowserrcheck" # The linter doesn't detect that both Scan and Close also returns the error message returned by Err. |
|
||||||
|
|
||||||
[issues] |
|
||||||
exclude-use-default = false |
|
||||||
max-same-issues = 0 |
|
||||||
|
|
||||||
# Enable when appropriate |
|
||||||
# Poorly chosen identifier |
|
||||||
[[issues.exclude-rules]] |
|
||||||
linters = ["stylecheck"] |
|
||||||
text = "ST1003" |
|
||||||
|
|
||||||
# Enable when appropriate |
|
||||||
# Dot imports that aren't in external test packages are discouraged. |
|
||||||
[[issues.exclude-rules]] |
|
||||||
linters = ["stylecheck"] |
|
||||||
text = "ST1001" |
|
||||||
|
|
||||||
# Enable when appropriate |
|
||||||
# http.CloseNotifier has been deprecated since Go 1.11 and an alternative has been available since Go 1.7: We currently need it in pkg/web/response_writer.go. |
|
||||||
[[issues.exclude-rules]] |
|
||||||
linters = ["staticcheck"] |
|
||||||
text = "SA1019: http.CloseNotifier" |
|
||||||
|
|
||||||
# strings.Title has been deprecated since Go 1.18 and an alternative has been available since Go 1.0: The rule Title uses for word boundaries does not handle Unicode punctuation properly. |
|
||||||
# Use golang.org/x/text/cases instead. |
|
||||||
[[issues.exclude-rules]] |
|
||||||
linters = ["staticcheck"] |
|
||||||
text = "SA1019: strings.Title" |
|
||||||
|
|
||||||
# go.opentelemetry.io/otel/exporters/jaeger" is deprecated: This module is no longer supported. OpenTelemetry dropped support for Jaeger exporter in July 2023. |
|
||||||
# Jaeger officially accepts and recommends using OTLP. |
|
||||||
# Use [go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp] or [go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc] instead. |
|
||||||
[[issues.exclude-rules]] |
|
||||||
linters = ["staticcheck"] |
|
||||||
text = "SA1019: \"go.opentelemetry.io/otel/exporters/jaeger\"" |
|
||||||
|
|
||||||
[[issues.exclude-rules]] |
|
||||||
linters = ["staticcheck"] |
|
||||||
text = "use fake service and real access control evaluator instead" |
|
||||||
|
|
||||||
[[issues.exclude-rules]] |
|
||||||
linters = ["gosec"] |
|
||||||
text = "G108" |
|
||||||
|
|
||||||
[[issues.exclude-rules]] |
|
||||||
linters = ["gosec"] |
|
||||||
text = "G110" |
|
||||||
|
|
||||||
[[issues.exclude-rules]] |
|
||||||
linters = ["gosec"] |
|
||||||
text = "G201" |
|
||||||
|
|
||||||
[[issues.exclude-rules]] |
|
||||||
linters = ["gosec"] |
|
||||||
text = "G202" |
|
||||||
|
|
||||||
[[issues.exclude-rules]] |
|
||||||
linters = ["gosec"] |
|
||||||
text = "G306" |
|
||||||
|
|
||||||
[[issues.exclude-rules]] |
|
||||||
linters = ["gosec"] |
|
||||||
text = "401" |
|
||||||
|
|
||||||
[[issues.exclude-rules]] |
|
||||||
linters = ["gosec"] |
|
||||||
text = "402" |
|
||||||
|
|
||||||
[[issues.exclude-rules]] |
|
||||||
linters = ["gosec"] |
|
||||||
text = "501" |
|
||||||
|
|
||||||
[[issues.exclude-rules]] |
|
||||||
linters = ["gosec"] |
|
||||||
text = "404" |
|
||||||
|
|
||||||
[[issues.exclude-rules]] |
|
||||||
linters = ["errorlint"] |
|
||||||
text = "non-wrapping format verb for fmt.Errorf" |
|
||||||
|
|
||||||
# TODO: Enable |
|
||||||
[[issues.exclude-rules]] |
|
||||||
linters = ["stylecheck"] |
|
||||||
text = "ST1000" |
|
||||||
|
|
||||||
# TODO: Enable |
|
||||||
[[issues.exclude-rules]] |
|
||||||
linters = ["stylecheck"] |
|
||||||
text = "ST1020" |
|
||||||
|
|
||||||
# TODO: Enable |
|
||||||
[[issues.exclude-rules]] |
|
||||||
linters = ["stylecheck"] |
|
||||||
text = "ST1021" |
|
||||||
|
|
||||||
# Remove this when we have go v1.22 in place |
|
||||||
# https://stackoverflow.com/a/68247837/767660 |
|
||||||
[[issues.exclude-rules]] |
|
||||||
linters = ["gosec"] |
|
||||||
path = '(.+)_test\.go' |
|
||||||
text = "G601" |
|
@ -0,0 +1,301 @@ |
|||||||
|
run: |
||||||
|
timeout: 10m |
||||||
|
concurrency: 10 |
||||||
|
allow-parallel-runners: true |
||||||
|
linters-settings: |
||||||
|
exhaustive: |
||||||
|
default-signifies-exhaustive: true |
||||||
|
revive: |
||||||
|
ignore-generated-header: false |
||||||
|
severity: warning |
||||||
|
confidence: 3 |
||||||
|
depguard: |
||||||
|
rules: |
||||||
|
main: |
||||||
|
allow: [] |
||||||
|
deny: |
||||||
|
- pkg: io/ioutil |
||||||
|
desc: >- |
||||||
|
Deprecated: As of Go 1.16, the same functionality is now provided |
||||||
|
by package io or package os, and those implementations should be |
||||||
|
preferred in new code. See the specific function documentation for |
||||||
|
details. |
||||||
|
- pkg: gopkg.in/yaml.v2 |
||||||
|
desc: >- |
||||||
|
Grafana packages are not allowed to depend on gopkg.in/yaml.v2 as |
||||||
|
gopkg.in/yaml.v3 is now available |
||||||
|
- pkg: github.com/pkg/errors |
||||||
|
desc: >- |
||||||
|
Deprecated: Go 1.13 supports the functionality provided by |
||||||
|
pkg/errors in the standard library. |
||||||
|
- pkg: github.com/xorcare/pointer |
||||||
|
desc: >- |
||||||
|
Use pkg/util.Pointer instead, which is a generic one-liner |
||||||
|
alternative |
||||||
|
- pkg: github.com/gofrs/uuid |
||||||
|
desc: 'Use github.com/google/uuid instead, which we already depend on.' |
||||||
|
- pkg: github.com/bmizerany/assert |
||||||
|
desc: >- |
||||||
|
Use github.com/stretchr/testify/assert instead, which we already |
||||||
|
depend on. |
||||||
|
coreplugins: |
||||||
|
deny: |
||||||
|
- pkg: github.com/grafana/grafana/pkg/api |
||||||
|
desc: Core plugins are not allowed to depend on Grafana core packages |
||||||
|
- pkg: github.com/grafana/grafana/pkg/cmd |
||||||
|
desc: Core plugins are not allowed to depend on Grafana core packages |
||||||
|
- pkg: github.com/grafana/grafana/pkg/cuectx |
||||||
|
desc: Core plugins are not allowed to depend on Grafana core packages |
||||||
|
- pkg: github.com/grafana/grafana/pkg/extensions |
||||||
|
desc: Core plugins are not allowed to depend on Grafana core packages |
||||||
|
- pkg: github.com/grafana/grafana/pkg/kinds |
||||||
|
desc: Core plugins are not allowed to depend on Grafana core packages |
||||||
|
- pkg: github.com/grafana/grafana/pkg/middleware |
||||||
|
desc: Core plugins are not allowed to depend on Grafana core packages |
||||||
|
- pkg: github.com/grafana/grafana/pkg/modules |
||||||
|
desc: Core plugins are not allowed to depend on Grafana core packages |
||||||
|
- pkg: github.com/grafana/grafana/pkg/registry |
||||||
|
desc: Core plugins are not allowed to depend on Grafana core packages |
||||||
|
- pkg: github.com/grafana/grafana/pkg/services |
||||||
|
desc: Core plugins are not allowed to depend on Grafana core packages |
||||||
|
- pkg: github.com/grafana/grafana/pkg/build |
||||||
|
desc: Core plugins are not allowed to depend on Grafana core packages |
||||||
|
- pkg: github.com/grafana/grafana/pkg/codegen |
||||||
|
desc: Core plugins are not allowed to depend on Grafana core packages |
||||||
|
- pkg: github.com/grafana/grafana/pkg/events |
||||||
|
desc: Core plugins are not allowed to depend on Grafana core packages |
||||||
|
- pkg: github.com/grafana/grafana/pkg/ifaces |
||||||
|
desc: Core plugins are not allowed to depend on Grafana core packages |
||||||
|
- pkg: github.com/grafana/grafana/pkg/kindsysreport |
||||||
|
desc: Core plugins are not allowed to depend on Grafana core packages |
||||||
|
- pkg: github.com/grafana/grafana/pkg/mocks |
||||||
|
desc: Core plugins are not allowed to depend on Grafana core packages |
||||||
|
- pkg: github.com/grafana/grafana/pkg/plugins |
||||||
|
desc: Core plugins are not allowed to depend on Grafana core packages |
||||||
|
- pkg: github.com/grafana/grafana/pkg/setting |
||||||
|
desc: Core plugins are not allowed to depend on Grafana core packages |
||||||
|
- pkg: github.com/grafana/grafana/pkg/util |
||||||
|
desc: Core plugins are not allowed to depend on Grafana core packages |
||||||
|
- pkg: github.com/grafana/grafana/pkg/bus |
||||||
|
desc: Core plugins are not allowed to depend on Grafana core packages |
||||||
|
- pkg: github.com/grafana/grafana/pkg/components |
||||||
|
desc: Core plugins are not allowed to depend on Grafana core packages |
||||||
|
- pkg: github.com/grafana/grafana/pkg/expr |
||||||
|
desc: Core plugins are not allowed to depend on Grafana core packages |
||||||
|
- pkg: github.com/grafana/grafana/pkg/infra |
||||||
|
desc: Core plugins are not allowed to depend on Grafana core packages |
||||||
|
- pkg: github.com/grafana/grafana/pkg/login |
||||||
|
desc: Core plugins are not allowed to depend on Grafana core packages |
||||||
|
- pkg: github.com/grafana/grafana/pkg/models |
||||||
|
desc: Core plugins are not allowed to depend on Grafana core packages |
||||||
|
- pkg: github.com/grafana/grafana/pkg/server |
||||||
|
desc: Core plugins are not allowed to depend on Grafana core packages |
||||||
|
- pkg: github.com/grafana/grafana/pkg/tests |
||||||
|
desc: Core plugins are not allowed to depend on Grafana core packages |
||||||
|
- pkg: github.com/grafana/grafana/pkg/web |
||||||
|
desc: Core plugins are not allowed to depend on Grafana core packages |
||||||
|
- pkg: github.com/grafana/grafana/pkg/tsdb/intervalv2 |
||||||
|
desc: Core plugins are not allowed to depend on Grafana core packages |
||||||
|
files: |
||||||
|
- '**/pkg/tsdb/grafana-pyroscope-datasource/*' |
||||||
|
- '**/pkg/tsdb/grafana-pyroscope-datasource/**/*' |
||||||
|
- '**/pkg/tsdb/grafana-testdata-datasource/*' |
||||||
|
- '**/pkg/tsdb/grafana-testdata-datasource/**/*' |
||||||
|
- '**/pkg/tsdb/azuremonitor/*' |
||||||
|
- '**/pkg/tsdb/azuremonitor/**/*' |
||||||
|
- '**/pkg/tsdb/cloud-monitoring/*' |
||||||
|
- '**/pkg/tsdb/cloud-monitoring/**/*' |
||||||
|
- '**/pkg/tsdb/mysql/*' |
||||||
|
- '**/pkg/tsdb/mysql/**/*' |
||||||
|
- '**/pkg/tsdb/parca/*' |
||||||
|
- '**/pkg/tsdb/parca/**/*' |
||||||
|
- '**/pkg/tsdb/tempo/*' |
||||||
|
- '**/pkg/tsdb/tempo/**/*' |
||||||
|
- '**/pkg/tsdb/cloudwatch/*' |
||||||
|
- '**/pkg/tsdb/cloudwatch/**/*' |
||||||
|
apiserver: |
||||||
|
list-mode: lax |
||||||
|
allow: |
||||||
|
- github.com/grafana/grafana/pkg/apimachinery |
||||||
|
- github.com/grafana/grafana/pkg/apiserver |
||||||
|
deny: |
||||||
|
- pkg: github.com/grafana/grafana/pkg |
||||||
|
desc: apiserver is not allowed to import grafana core |
||||||
|
files: |
||||||
|
- '**/pkg/apiserver/*' |
||||||
|
- '**/pkg/apiserver/**/*' |
||||||
|
apimachinery: |
||||||
|
list-mode: lax |
||||||
|
allow: |
||||||
|
- github.com/grafana/grafana/pkg/apimachinery |
||||||
|
deny: |
||||||
|
- pkg: github.com/grafana/grafana/pkg |
||||||
|
desc: apimachinery is not allowed to import grafana core |
||||||
|
files: |
||||||
|
- '**/pkg/apimachinery/*' |
||||||
|
- '**/pkg/apimachinery/**/*' |
||||||
|
aggregator: |
||||||
|
list-mode: lax |
||||||
|
allow: |
||||||
|
- github.com/grafana/grafana/pkg/aggregator |
||||||
|
- github.com/grafana/grafana/pkg/semconv |
||||||
|
- github.com/grafana/grafana/pkg/apimachinery |
||||||
|
deny: |
||||||
|
- pkg: github.com/grafana/grafana/pkg |
||||||
|
desc: apimachinery is not allowed to import grafana core |
||||||
|
files: |
||||||
|
- ./pkg/aggregator/* |
||||||
|
- ./pkg/aggregator/**/* |
||||||
|
promlib: |
||||||
|
list-mode: lax |
||||||
|
deny: |
||||||
|
- pkg: github.com/grafana/grafana/pkg |
||||||
|
desc: promlib is not allowed to import grafana core |
||||||
|
allow: |
||||||
|
- github.com/grafana/grafana/pkg/promlib |
||||||
|
files: |
||||||
|
- '**/pkg/promlib/**/*' |
||||||
|
storage-unified-resource: |
||||||
|
list-mode: lax |
||||||
|
allow: |
||||||
|
- github.com/grafana/grafana/pkg/apimachinery |
||||||
|
deny: |
||||||
|
- pkg: github.com/grafana/grafana/pkg |
||||||
|
desc: pkg/storage/unified/resource is not allowed to import grafana core |
||||||
|
files: |
||||||
|
- ./pkg/storage/unified/resource/* |
||||||
|
- ./pkg/storage/unified/resource/**/* |
||||||
|
storage-unified-apistore: |
||||||
|
list-mode: lax |
||||||
|
allow: |
||||||
|
- github.com/grafana/grafana/pkg/apimachinery |
||||||
|
- github.com/grafana/grafana/pkg/apiserver |
||||||
|
- github.com/grafana/grafana/pkg/unified/resource |
||||||
|
deny: |
||||||
|
- pkg: github.com/grafana/grafana/pkg |
||||||
|
desc: pkg/storage/unified/apistore is not allowed to import grafana core |
||||||
|
files: |
||||||
|
- ./pkg/storage/unified/apistore/* |
||||||
|
- ./pkg/storage/unified/apistore/**/* |
||||||
|
apps-playlist: |
||||||
|
list-mode: lax |
||||||
|
allow: [] |
||||||
|
deny: |
||||||
|
- pkg: github.com/grafana/grafana/pkg |
||||||
|
desc: apps/playlist is not allowed to import grafana core |
||||||
|
files: |
||||||
|
- ./apps/playlist/* |
||||||
|
- ./apps/playlist/**/* |
||||||
|
gocritic: |
||||||
|
enabled-checks: |
||||||
|
- ruleguard |
||||||
|
settings: |
||||||
|
ruleguard: |
||||||
|
rules: pkg/ruleguard.rules.go |
||||||
|
misspell: |
||||||
|
ignore-words: |
||||||
|
- Unknwon |
||||||
|
- Creater |
||||||
|
nakedret: |
||||||
|
max-func-lines: 60 |
||||||
|
linters: |
||||||
|
disable-all: true |
||||||
|
enable: |
||||||
|
- asciicheck |
||||||
|
- bodyclose |
||||||
|
- depguard |
||||||
|
- dogsled |
||||||
|
- errcheck |
||||||
|
- errorlint |
||||||
|
- exhaustive |
||||||
|
- gocyclo |
||||||
|
- goimports |
||||||
|
- goprintffuncname |
||||||
|
- gosec |
||||||
|
- gosimple |
||||||
|
- govet |
||||||
|
- ineffassign |
||||||
|
- misspell |
||||||
|
- nakedret |
||||||
|
- prealloc |
||||||
|
- revive |
||||||
|
- staticcheck |
||||||
|
- stylecheck |
||||||
|
- unconvert |
||||||
|
- unused |
||||||
|
- whitespace |
||||||
|
issues: |
||||||
|
exclude-use-default: false |
||||||
|
max-same-issues: 0 |
||||||
|
exclude-dirs: |
||||||
|
- devenv |
||||||
|
- scripts |
||||||
|
exclude-files: |
||||||
|
- pkg/util/xorm/*.go |
||||||
|
- pkg/build/wire/*.go |
||||||
|
exclude-rules: |
||||||
|
- linters: |
||||||
|
- stylecheck |
||||||
|
text: ST1003 |
||||||
|
- linters: |
||||||
|
- stylecheck |
||||||
|
text: ST1001 |
||||||
|
- linters: |
||||||
|
- staticcheck |
||||||
|
text: 'SA1019: http.CloseNotifier' |
||||||
|
- linters: |
||||||
|
- staticcheck |
||||||
|
text: 'SA1019: strings.Title' |
||||||
|
- linters: |
||||||
|
- staticcheck |
||||||
|
text: 'SA1019: "go.opentelemetry.io/otel/exporters/jaeger"' |
||||||
|
- linters: |
||||||
|
- staticcheck |
||||||
|
text: use fake service and real access control evaluator instead |
||||||
|
- linters: |
||||||
|
- gosec |
||||||
|
text: G108 |
||||||
|
- linters: |
||||||
|
- gosec |
||||||
|
text: G110 |
||||||
|
- linters: |
||||||
|
- gosec |
||||||
|
text: G115 |
||||||
|
- linters: |
||||||
|
- gosec |
||||||
|
text: G201 |
||||||
|
- linters: |
||||||
|
- gosec |
||||||
|
text: G202 |
||||||
|
- linters: |
||||||
|
- gosec |
||||||
|
text: G306 |
||||||
|
- linters: |
||||||
|
- gosec |
||||||
|
text: '401' |
||||||
|
- linters: |
||||||
|
- gosec |
||||||
|
text: '402' |
||||||
|
- linters: |
||||||
|
- gosec |
||||||
|
text: '501' |
||||||
|
- linters: |
||||||
|
- gosec |
||||||
|
text: '404' |
||||||
|
- linters: |
||||||
|
- errorlint |
||||||
|
text: non-wrapping format verb for fmt.Errorf |
||||||
|
- linters: |
||||||
|
- stylecheck |
||||||
|
text: ST1000 |
||||||
|
- linters: |
||||||
|
- stylecheck |
||||||
|
text: ST1020 |
||||||
|
- linters: |
||||||
|
- stylecheck |
||||||
|
text: ST1021 |
||||||
|
- linters: |
||||||
|
- gosec |
||||||
|
path: (.+)_test\.go |
||||||
|
text: G601 |
||||||
|
|
Loading…
Reference in new issue