diff --git a/connector/keystone/keystone.go b/connector/keystone/keystone.go
index c4e98d05693754195ef4028b31678c1ad6e2ac5d..db97b5a71fcd531a31296ba344e3698e16d8fc4f 100644
--- a/connector/keystone/keystone.go
+++ b/connector/keystone/keystone.go
@@ -168,7 +168,8 @@ func (p *conn) Login(ctx context.Context, scopes connector.Scopes, username, pas
 func (p *conn) Prompt() string { return "username" }
 
 func (p *conn) Refresh(
-	ctx context.Context, scopes connector.Scopes, identity connector.Identity) (connector.Identity, error) {
+	ctx context.Context, scopes connector.Scopes, identity connector.Identity,
+) (connector.Identity, error) {
 	token, err := p.getAdminToken(ctx)
 	if err != nil {
 		return identity, fmt.Errorf("keystone: failed to obtain admin token: %v", err)
diff --git a/connector/keystone/keystone_test.go b/connector/keystone/keystone_test.go
index cf007f19c38b2e1c7d4874579445de8f3ef08ee2..fc6c01e2293ba4cdc08929ff4af385f5410652b5 100644
--- a/connector/keystone/keystone_test.go
+++ b/connector/keystone/keystone_test.go
@@ -4,7 +4,6 @@ import (
 	"bytes"
 	"context"
 	"encoding/json"
-	"fmt"
 	"io"
 	"net/http"
 	"os"
@@ -454,22 +453,22 @@ func setupVariables(t *testing.T) {
 	keystoneAdminPassEnv := "DEX_KEYSTONE_ADMIN_PASS"
 	keystoneURL = os.Getenv(keystoneURLEnv)
 	if keystoneURL == "" {
-		t.Skip(fmt.Sprintf("variable %q not set, skipping keystone connector tests\n", keystoneURLEnv))
+		t.Skipf("variable %q not set, skipping keystone connector tests\n", keystoneURLEnv)
 		return
 	}
 	keystoneAdminURL = os.Getenv(keystoneAdminURLEnv)
 	if keystoneAdminURL == "" {
-		t.Skip(fmt.Sprintf("variable %q not set, skipping keystone connector tests\n", keystoneAdminURLEnv))
+		t.Skipf("variable %q not set, skipping keystone connector tests\n", keystoneAdminURLEnv)
 		return
 	}
 	adminUser = os.Getenv(keystoneAdminUserEnv)
 	if adminUser == "" {
-		t.Skip(fmt.Sprintf("variable %q not set, skipping keystone connector tests\n", keystoneAdminUserEnv))
+		t.Skipf("variable %q not set, skipping keystone connector tests\n", keystoneAdminUserEnv)
 		return
 	}
 	adminPass = os.Getenv(keystoneAdminPassEnv)
 	if adminPass == "" {
-		t.Skip(fmt.Sprintf("variable %q not set, skipping keystone connector tests\n", keystoneAdminPassEnv))
+		t.Skipf("variable %q not set, skipping keystone connector tests\n", keystoneAdminPassEnv)
 		return
 	}
 	authTokenURL = keystoneURL + "/v3/auth/tokens/"
diff --git a/connector/ldap/ldap.go b/connector/ldap/ldap.go
index df69d60e3cca21f56d6e36cb4fa00b9b714411ad..543402718c41bdc7cff50aa919c98feeba297035 100644
--- a/connector/ldap/ldap.go
+++ b/connector/ldap/ldap.go
@@ -220,7 +220,8 @@ func (c *Config) OpenConnector(logger log.Logger) (interface {
 	connector.Connector
 	connector.PasswordConnector
 	connector.RefreshConnector
-}, error) {
+}, error,
+) {
 	return c.openConnector(logger)
 }
 
diff --git a/connector/openshift/openshift.go b/connector/openshift/openshift.go
index 05919973e3949d02d2b3d7b48a982b98a4b68b41..81d2b356332c3ea3e2ed17b680a13ad108cba9fe 100644
--- a/connector/openshift/openshift.go
+++ b/connector/openshift/openshift.go
@@ -78,7 +78,8 @@ func (c *Config) Open(id string, logger log.Logger) (conn connector.Connector, e
 // OpenWithHTTPClient returns a connector which can be used to login users through an upstream
 // OpenShift OAuth2 provider. It provides the ability to inject a http.Client.
 func (c *Config) OpenWithHTTPClient(id string, logger log.Logger,
-	httpClient *http.Client) (conn connector.Connector, err error) {
+	httpClient *http.Client,
+) (conn connector.Connector, err error) {
 	ctx, cancel := context.WithCancel(context.Background())
 
 	wellKnownURL := strings.TrimSuffix(c.Issuer, "/") + wellKnownURLPath
@@ -156,7 +157,8 @@ func (e *oauth2Error) Error() string {
 
 // HandleCallback parses the request and returns the user's identity
 func (c *openshiftConnector) HandleCallback(s connector.Scopes,
-	r *http.Request) (identity connector.Identity, err error) {
+	r *http.Request,
+) (identity connector.Identity, err error) {
 	q := r.URL.Query()
 	if errType := q.Get("error"); errType != "" {
 		return identity, &oauth2Error{errType, q.Get("error_description")}
@@ -176,7 +178,8 @@ func (c *openshiftConnector) HandleCallback(s connector.Scopes,
 }
 
 func (c *openshiftConnector) Refresh(ctx context.Context, s connector.Scopes,
-	oldID connector.Identity) (connector.Identity, error) {
+	oldID connector.Identity,
+) (connector.Identity, error) {
 	var token oauth2.Token
 	err := json.Unmarshal(oldID.ConnectorData, &token)
 	if err != nil {
@@ -189,7 +192,8 @@ func (c *openshiftConnector) Refresh(ctx context.Context, s connector.Scopes,
 }
 
 func (c *openshiftConnector) identity(ctx context.Context, s connector.Scopes,
-	token *oauth2.Token) (identity connector.Identity, err error) {
+	token *oauth2.Token,
+) (identity connector.Identity, err error) {
 	client := c.oauth2Config.Client(ctx, token)
 	user, err := c.user(ctx, client)
 	if err != nil {
diff --git a/storage/conformance/jwks.go b/storage/conformance/jwks.go
index f42d3d1802632b73663e34ac0f2a5acbf5a56886..0f05703e1b6ac4ebdd7d89534ce5e71bf661372d 100644
--- a/storage/conformance/jwks.go
+++ b/storage/conformance/jwks.go
@@ -11,7 +11,6 @@ type keyPair struct {
 
 // keys are generated beforehand so we don't have to generate RSA keys for every test.
 var jsonWebKeys = []keyPair{
-
 	{
 		Public: mustLoadJWK(`{
 			"use": "sig",
diff --git a/storage/ent/mysql.go b/storage/ent/mysql.go
index c922eb16269f640cea262aec4cf856854ddf9b17..2d3c833b5b0d3ee8762f97a7c083e780087badc1 100644
--- a/storage/ent/mysql.go
+++ b/storage/ent/mysql.go
@@ -14,10 +14,7 @@ import (
 
 	entSQL "entgo.io/ent/dialect/sql"
 	"entgo.io/ent/dialect/sql/schema"
-	"github.com/go-sql-driver/mysql"
-
-	// Register postgres driver.
-	_ "github.com/lib/pq"
+	"github.com/go-sql-driver/mysql" // Register mysql driver.
 
 	"github.com/dexidp/dex/pkg/log"
 	"github.com/dexidp/dex/storage"
diff --git a/storage/ent/postgres.go b/storage/ent/postgres.go
index 3e8df4413c95ed062af07f52b8627c31656f54fb..c52c29023d268b184bb5130fe55306db6fd70603 100644
--- a/storage/ent/postgres.go
+++ b/storage/ent/postgres.go
@@ -13,9 +13,7 @@ import (
 
 	entSQL "entgo.io/ent/dialect/sql"
 	"entgo.io/ent/dialect/sql/schema"
-
-	// Register postgres driver.
-	_ "github.com/lib/pq"
+	_ "github.com/lib/pq" // Register postgres driver.
 
 	"github.com/dexidp/dex/pkg/log"
 	"github.com/dexidp/dex/storage"
diff --git a/storage/ent/sqlite.go b/storage/ent/sqlite.go
index 3e54e1b721b45f8e9bf727ee9a9a7fcfb47fe6a7..bb98ac06f4b9354aece0e6f992959502932ad11d 100644
--- a/storage/ent/sqlite.go
+++ b/storage/ent/sqlite.go
@@ -7,9 +7,7 @@ import (
 
 	"entgo.io/ent/dialect/sql"
 	"entgo.io/ent/dialect/sql/schema"
-
-	// Register sqlite driver.
-	_ "github.com/mattn/go-sqlite3"
+	_ "github.com/mattn/go-sqlite3" // Register sqlite driver.
 
 	"github.com/dexidp/dex/pkg/log"
 	"github.com/dexidp/dex/storage"
diff --git a/storage/kubernetes/storage_test.go b/storage/kubernetes/storage_test.go
index 4571327a151b8496439c7587abdc9797de58a964..828ff472cfc583cc0afecdd0de1c115f98f92efe 100644
--- a/storage/kubernetes/storage_test.go
+++ b/storage/kubernetes/storage_test.go
@@ -24,7 +24,7 @@ const kubeconfigPathVariableName = "DEX_KUBERNETES_CONFIG_PATH"
 
 func TestStorage(t *testing.T) {
 	if os.Getenv(kubeconfigPathVariableName) == "" {
-		t.Skip(fmt.Sprintf("variable %q not set, skipping kubernetes storage tests\n", kubeconfigPathVariableName))
+		t.Skipf("variable %q not set, skipping kubernetes storage tests\n", kubeconfigPathVariableName)
 	}
 
 	suite.Run(t, new(StorageTestSuite))
diff --git a/storage/sql/crud_test.go b/storage/sql/crud_test.go
index 9e3282e58bd58dedf3015a6eeac4260badaebb91..7cca1d6fcd8bac50367724bd147392e856c52ff7 100644
--- a/storage/sql/crud_test.go
+++ b/storage/sql/crud_test.go
@@ -1,3 +1,4 @@
+//go:build cgo
 // +build cgo
 
 package sql
diff --git a/storage/sql/migrate_test.go b/storage/sql/migrate_test.go
index 7ec6d9570669c186274b9251423f9d3532f56afb..4b77eb2fbe52a9aa07403a9fa4d45abd60f22f14 100644
--- a/storage/sql/migrate_test.go
+++ b/storage/sql/migrate_test.go
@@ -1,3 +1,4 @@
+//go:build cgo
 // +build cgo
 
 package sql
diff --git a/storage/sql/postgres_test.go b/storage/sql/postgres_test.go
index d58abc70bf2174793f71c573528da1d9ca907df6..3e5f8a8f65e99b683f19c5a6172fb45755638a5d 100644
--- a/storage/sql/postgres_test.go
+++ b/storage/sql/postgres_test.go
@@ -1,3 +1,4 @@
+//go:build go1.11
 // +build go1.11
 
 package sql
diff --git a/storage/sql/sqlite.go b/storage/sql/sqlite.go
index 0994b19014a313059f0941da70f291cf8525fbad..43df671a7cbbfef68abc91e64f349ea61f3e5721 100644
--- a/storage/sql/sqlite.go
+++ b/storage/sql/sqlite.go
@@ -1,3 +1,4 @@
+//go:build cgo
 // +build cgo
 
 package sql
diff --git a/storage/sql/sqlite_test.go b/storage/sql/sqlite_test.go
index 8be99390414cae0acd9aba267f79afcc286d6c6e..89d06aee29b0f59319116e2fcefc18ae52c6dedb 100644
--- a/storage/sql/sqlite_test.go
+++ b/storage/sql/sqlite_test.go
@@ -1,3 +1,4 @@
+//go:build cgo
 // +build cgo
 
 package sql