Browse Source

build: partially replace gometalinter with golangci-lint (#16610)

we still use gometalinter for goconst since it doesn't 
report errors for duplicated in test files
Carl Bergquist 6 years ago
parent
commit
490515aec6

+ 1 - 1
pkg/api/login.go

@@ -164,7 +164,7 @@ func tryGetEncryptedCookie(ctx *m.ReqContext, cookieName string) (string, bool)
 		return "", false
 	}
 
-	decryptedError, err := util.Decrypt([]byte(decoded), setting.SecretKey)
+	decryptedError, err := util.Decrypt(decoded, setting.SecretKey)
 	return string(decryptedError), err == nil
 }
 

+ 2 - 1
pkg/infra/remotecache/database_storage_test.go

@@ -66,7 +66,8 @@ func TestSecondSet(t *testing.T) {
 	obj := &CacheableStruct{String: "hey!"}
 
 	err = db.Set("killa-gorilla", obj, 0)
-	err = db.Set("killa-gorilla", obj, 0)
+	assert.Equal(t, err, nil)
 
+	err = db.Set("killa-gorilla", obj, 0)
 	assert.Equal(t, err, nil)
 }

+ 1 - 0
pkg/infra/remotecache/remotecache_test.go

@@ -64,6 +64,7 @@ func canPutGetAndDeleteCachedObjects(t *testing.T, client CacheStorage) {
 	assert.Equal(t, err, nil, "expected nil. got: ", err)
 
 	data, err := client.Get("key1")
+	assert.Equal(t, err, nil)
 	s, ok := data.(CacheableStruct)
 
 	assert.Equal(t, ok, true)

+ 1 - 1
pkg/services/auth/auth_token.go

@@ -149,7 +149,7 @@ func (s *UserAuthTokenService) TryRotateToken(token *models.UserToken, clientIP,
 
 	now := getTime()
 
-	needsRotation := false
+	var needsRotation bool
 	rotatedAt := time.Unix(model.RotatedAt, 0)
 	if model.AuthTokenSeen {
 		needsRotation = rotatedAt.Before(now.Add(-time.Duration(s.Cfg.TokenRotationIntervalMinutes) * time.Minute))

+ 1 - 1
pkg/services/quota/quota.go

@@ -48,7 +48,7 @@ func (qs *QuotaService) QuotaReached(c *m.ReqContext, target string) (bool, erro
 					return false, err
 				}
 
-				if int64(usedSessions) > scope.DefaultLimit {
+				if usedSessions > scope.DefaultLimit {
 					c.Logger.Debug("Sessions limit reached", "active", usedSessions, "limit", scope.DefaultLimit)
 					return true, nil
 				}

+ 24 - 21
scripts/backend-lint.sh

@@ -1,39 +1,42 @@
 #!/bin/bash
 
 function exit_if_fail {
-    command=$@
-    echo "Executing '$command'"
-    eval $command
-    rc=$?
-    if [ $rc -ne 0 ]; then
-        echo "'$command' returned $rc."
-        exit $rc
-    fi
+  command=$@
+  echo "Executing '$command'"
+  eval $command
+  rc=$?
+  if [ $rc -ne 0 ]; then
+      echo "'$command' returned $rc."
+      exit $rc
+  fi
 }
 
 go get -u github.com/alecthomas/gometalinter
-go get -u github.com/tsenart/deadcode
 go get -u github.com/jgautheron/goconst/cmd/goconst
-go get -u github.com/gordonklaus/ineffassign
-go get -u github.com/opennota/check/cmd/structcheck
-go get -u github.com/mdempsky/unconvert
-go get -u github.com/opennota/check/cmd/varcheck
 go get -u honnef.co/go/tools/cmd/staticcheck
 go get -u github.com/mgechev/revive
 go get -u github.com/securego/gosec/cmd/gosec/...
+go get -u github.com/golangci/golangci-lint/cmd/golangci-lint
 
+# use gometalinter when lints are not available in golangci or
+# when gometalinter is better. Eg. goconst for gometalinter does not lint test files
+# which is not desired. 
 exit_if_fail gometalinter --enable-gc --vendor --deadline 10m --disable-all \
-  --enable=deadcode \
-  --enable=goconst \
-  --enable=gofmt \
-  --enable=ineffassign \
-  --enable=structcheck \
-  --enable=unconvert \
-  --enable=varcheck \
+  --enable=goconst\
   --enable=staticcheck
 
+# use golangci-when possible
+exit_if_fail golangci-lint run --deadline 10m --disable-all \
+  --enable=deadcode\
+  --enable=gofmt\
+  --enable=ineffassign\
+  --enable=structcheck\
+  --enable=unconvert\
+  --enable=varcheck
+
 exit_if_fail go vet ./pkg/...
-exit_if_fail revive -formatter stylish -config ./conf/revive.toml
+
+exit_if_fail revive -formatter stylish -config ./scripts/revive.toml
 
 # TODO recheck the rules and leave only necessary exclusions
 exit_if_fail gosec -quiet -exclude=G104,G107,G201,G202,G204,G301,G302,G304,G402,G501,G505,G401 ./pkg/...

+ 0 - 0
conf/revive.toml → scripts/revive.toml