From 20875c972ec26a58e65c07a41394311c5ffc3bf0 Mon Sep 17 00:00:00 2001
From: Maksim Nabokikh <maksim.nabokikh@flant.com>
Date: Tue, 18 May 2021 01:55:24 +0300
Subject: [PATCH] Discard package "version" (#2107)

* Discard package "version"

Signed-off-by: m.nabokikh <maksim.nabokikh@flant.com>

* Inject api version

Signed-off-by: m.nabokikh <maksim.nabokikh@flant.com>

* Pass version arg to the dex API

Signed-off-by: m.nabokikh <maksim.nabokikh@flant.com>
---
 Makefile           |  2 +-
 cmd/dex/serve.go   |  2 +-
 cmd/dex/version.go |  6 +++---
 server/api.go      | 15 ++++++++-------
 server/api_test.go |  2 +-
 version/version.go |  5 -----
 6 files changed, 14 insertions(+), 18 deletions(-)
 delete mode 100644 version/version.go

diff --git a/Makefile b/Makefile
index 391311de..0c22b256 100644
--- a/Makefile
+++ b/Makefile
@@ -17,7 +17,7 @@ group=$(shell id -g -n)
 
 export GOBIN=$(PWD)/bin
 
-LD_FLAGS="-w -X $(REPO_PATH)/version.Version=$(VERSION)"
+LD_FLAGS="-w -X main.version=$(VERSION)"
 
 # Dependency versions
 GOLANGCI_VERSION = 1.32.2
diff --git a/cmd/dex/serve.go b/cmd/dex/serve.go
index 3f2df3ed..aaf36b32 100644
--- a/cmd/dex/serve.go
+++ b/cmd/dex/serve.go
@@ -449,7 +449,7 @@ func runServe(options serveOptions) error {
 		}
 
 		grpcSrv := grpc.NewServer(grpcOptions...)
-		api.RegisterDexServer(grpcSrv, server.NewAPI(serverConfig.Storage, logger))
+		api.RegisterDexServer(grpcSrv, server.NewAPI(serverConfig.Storage, logger, version))
 
 		grpcMetrics.InitializeMetrics(grpcSrv)
 		if c.GRPC.Reflection {
diff --git a/cmd/dex/version.go b/cmd/dex/version.go
index de206e16..99bd318b 100644
--- a/cmd/dex/version.go
+++ b/cmd/dex/version.go
@@ -5,10 +5,10 @@ import (
 	"runtime"
 
 	"github.com/spf13/cobra"
-
-	"github.com/dexidp/dex/version"
 )
 
+var version = "DEV"
+
 func commandVersion() *cobra.Command {
 	return &cobra.Command{
 		Use:   "version",
@@ -16,7 +16,7 @@ func commandVersion() *cobra.Command {
 		Run: func(_ *cobra.Command, _ []string) {
 			fmt.Printf(
 				"Dex Version: %s\nGo Version: %s\nGo OS/ARCH: %s %s\n",
-				version.Version,
+				version,
 				runtime.Version(),
 				runtime.GOOS,
 				runtime.GOARCH,
diff --git a/server/api.go b/server/api.go
index 5938efa6..a68742b3 100644
--- a/server/api.go
+++ b/server/api.go
@@ -11,7 +11,6 @@ import (
 	"github.com/dexidp/dex/pkg/log"
 	"github.com/dexidp/dex/server/internal"
 	"github.com/dexidp/dex/storage"
-	"github.com/dexidp/dex/version"
 )
 
 // apiVersion increases every time a new call is added to the API. Clients should use this info
@@ -30,18 +29,20 @@ const (
 )
 
 // NewAPI returns a server which implements the gRPC API interface.
-func NewAPI(s storage.Storage, logger log.Logger) api.DexServer {
+func NewAPI(s storage.Storage, logger log.Logger, version string) api.DexServer {
 	return dexAPI{
-		s:      s,
-		logger: logger,
+		s:       s,
+		logger:  logger,
+		version: version,
 	}
 }
 
 type dexAPI struct {
 	api.UnimplementedDexServer
 
-	s      storage.Storage
-	logger log.Logger
+	s       storage.Storage
+	logger  log.Logger
+	version string
 }
 
 func (d dexAPI) CreateClient(ctx context.Context, req *api.CreateClientReq) (*api.CreateClientResp, error) {
@@ -223,7 +224,7 @@ func (d dexAPI) DeletePassword(ctx context.Context, req *api.DeletePasswordReq)
 
 func (d dexAPI) GetVersion(ctx context.Context, req *api.VersionReq) (*api.VersionResp, error) {
 	return &api.VersionResp{
-		Server: version.Version,
+		Server: d.version,
 		Api:    apiVersion,
 	}, nil
 }
diff --git a/server/api_test.go b/server/api_test.go
index e7725063..02061340 100644
--- a/server/api_test.go
+++ b/server/api_test.go
@@ -36,7 +36,7 @@ func newAPI(s storage.Storage, logger log.Logger, t *testing.T) *apiClient {
 	}
 
 	serv := grpc.NewServer()
-	api.RegisterDexServer(serv, NewAPI(s, logger))
+	api.RegisterDexServer(serv, NewAPI(s, logger, "test"))
 	go serv.Serve(l)
 
 	// Dial will retry automatically if the serv.Serve() goroutine
diff --git a/version/version.go b/version/version.go
deleted file mode 100644
index 04f684a5..00000000
--- a/version/version.go
+++ /dev/null
@@ -1,5 +0,0 @@
-// Package version contains version information for this app.
-package version
-
-// Version is set by the build scripts.
-var Version = "was not built properly"
-- 
GitLab