From 9652a1410b4c0da660dc0abb2c50192115b7c9be Mon Sep 17 00:00:00 2001 From: Carl Bergquist Date: Thu, 16 Apr 2020 16:09:27 +0200 Subject: [PATCH] Build: Stricter linting should break the build (#23606) --- .circleci/config.yml | 8 +++--- Makefile | 1 + pkg/services/alerting/conditions/query.go | 4 +-- .../alerting/notifiers/opsgenie_test.go | 7 ++--- pkg/services/alerting/rule.go | 6 ++--- scripts/go/configs/revive-strict.toml | 26 +++++++++++++++++++ 6 files changed, 41 insertions(+), 11 deletions(-) create mode 100644 scripts/go/configs/revive-strict.toml diff --git a/.circleci/config.yml b/.circleci/config.yml index 9375c458b2f..aed67fb7870 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -731,9 +731,11 @@ jobs: golangci-lint run -v -j 4 --config scripts/go/configs/ci/.golangci.yml -E unconvert -E unused \ -E varcheck -E goconst -E errcheck -E staticcheck ./pkg/... ./scripts/go/bin/revive -formatter stylish -config ./scripts/go/configs/revive.toml ./pkg/... - ./scripts/go/bin/revive ./pkg/services/alerting/... - ./scripts/go/bin/revive -formatter stylish ./pkg/services/provisioning/datasources/... - ./scripts/go/bin/revive -formatter stylish ./pkg/services/provisioning/dashboards/... + ./scripts/go/bin/revive -formatter stylish -config ./scripts/go/configs/revive-strict.toml \ + ./pkg/services/alerting/... \ + ./pkg/services/provisioning/datasources/... \ + ./pkg/services/provisioning/dashboards/... + ./scripts/go/bin/gosec -quiet -exclude=G104,G107,G108,G201,G202,G204,G301,G304,G401,G402,G501 \ -conf=./scripts/go/configs/gosec.json ./pkg/... diff --git a/Makefile b/Makefile index 10fd6f551af..d0e9b512783 100644 --- a/Makefile +++ b/Makefile @@ -84,6 +84,7 @@ revive-alerting: scripts/go/bin/revive @echo "lint alerting via revive" @scripts/go/bin/revive \ -formatter stylish \ + -config ./scripts/go/configs/revive-strict.toml \ ./pkg/services/alerting/... \ ./pkg/services/provisioning/datasources/... \ ./pkg/services/provisioning/dashboards/... diff --git a/pkg/services/alerting/conditions/query.go b/pkg/services/alerting/conditions/query.go index 55679caac15..e8288e732f6 100644 --- a/pkg/services/alerting/conditions/query.go +++ b/pkg/services/alerting/conditions/query.go @@ -127,7 +127,7 @@ func (c *QueryCondition) executeQuery(context *alerting.EvalContext, timeRange * } type queryDto struct { - RefId string `json:"refId"` + RefID string `json:"refId"` Model *simplejson.Json `json:"model"` Datasource *simplejson.Json `json:"datasource"` MaxDataPoints int64 `json:"maxDataPoints"` @@ -137,7 +137,7 @@ func (c *QueryCondition) executeQuery(context *alerting.EvalContext, timeRange * queries := []*queryDto{} for _, q := range req.Queries { queries = append(queries, &queryDto{ - RefId: q.RefId, + RefID: q.RefId, Model: q.Model, Datasource: simplejson.NewFromAny(map[string]interface{}{ "id": q.DataSource.Id, diff --git a/pkg/services/alerting/notifiers/opsgenie_test.go b/pkg/services/alerting/notifiers/opsgenie_test.go index 48619376541..d01807280fa 100644 --- a/pkg/services/alerting/notifiers/opsgenie_test.go +++ b/pkg/services/alerting/notifiers/opsgenie_test.go @@ -2,12 +2,13 @@ package notifiers import ( "context" + "testing" + "github.com/grafana/grafana/pkg/bus" "github.com/grafana/grafana/pkg/components/simplejson" "github.com/grafana/grafana/pkg/models" "github.com/grafana/grafana/pkg/services/alerting" . "github.com/smartystreets/goconvey/convey" - "testing" ) func TestOpsGenieNotifier(t *testing.T) { @@ -83,9 +84,9 @@ func TestOpsGenieNotifier(t *testing.T) { receivedTags := make([]string, 0) bus.AddHandlerCtx("alerting", func(ctx context.Context, cmd *models.SendWebhookSync) error { - bodyJson, err := simplejson.NewJson([]byte(cmd.Body)) + bodyJSON, err := simplejson.NewJson([]byte(cmd.Body)) if err == nil { - receivedTags = bodyJson.Get("tags").MustStringArray([]string{}) + receivedTags = bodyJSON.Get("tags").MustStringArray([]string{}) } return err }) diff --git a/pkg/services/alerting/rule.go b/pkg/services/alerting/rule.go index 77a79fbbc2e..06c7c5dcf2d 100644 --- a/pkg/services/alerting/rule.go +++ b/pkg/services/alerting/rule.go @@ -173,16 +173,16 @@ func NewRuleFromDBAlert(ruleDef *models.Alert) (*Rule, error) { } func translateNotificationIDToUID(id int64, orgID int64) (string, error) { - notificationUid, err := getAlertNotificationUidByIDAndOrgID(id, orgID) + notificationUID, err := getAlertNotificationUIDByIDAndOrgID(id, orgID) if err != nil { logger.Debug("Failed to translate Notification Id to Uid", "orgID", orgID, "Id", id) return "", err } - return notificationUid, nil + return notificationUID, nil } -func getAlertNotificationUidByIDAndOrgID(notificationID int64, orgID int64) (string, error) { +func getAlertNotificationUIDByIDAndOrgID(notificationID int64, orgID int64) (string, error) { query := &models.GetAlertNotificationUidQuery{ OrgId: orgID, Id: notificationID, diff --git a/scripts/go/configs/revive-strict.toml b/scripts/go/configs/revive-strict.toml new file mode 100644 index 00000000000..05e1510af1a --- /dev/null +++ b/scripts/go/configs/revive-strict.toml @@ -0,0 +1,26 @@ +ignoreGeneratedHeader = false +severity = "error" +confidence = 0.8 +errorCode = 1 +warningCode = 1 + +[rule.context-as-argument] +[rule.error-return] +[rule.package-comments] +[rule.range] +[rule.superfluous-else] +[rule.modifies-parameter] +[rule.indent-error-flow] +[rule.error-strings] +[rule.error-naming] +[rule.exported] +[rule.unexported-return] +[rule.dot-imports] +[rule.receiver-naming] +[rule.blank-imports] +[rule.var-naming] + +# This can be checked by other tools like megacheck +[rule.unreachable-code] + +