From 148b9011bc0c83362763da240af2c1be2709d9e0 Mon Sep 17 00:00:00 2001
From: Pavel Pletenev <cpp.create@gmail.com>
Date: Tue, 23 Jul 2024 10:35:39 +0300
Subject: [PATCH] feat: Align algorith to aquire tokens with goreleaser

---
 pkg/provider/gitlab.go | 39 ++++++++++++++++++++-------------------
 1 file changed, 20 insertions(+), 19 deletions(-)

diff --git a/pkg/provider/gitlab.go b/pkg/provider/gitlab.go
index 841deaa..03d984d 100644
--- a/pkg/provider/gitlab.go
+++ b/pkg/provider/gitlab.go
@@ -38,27 +38,28 @@ func (repo *GitLabRepository) Init(config map[string]string) error {
 	token := config["token"]
 	if token == "" {
 		token = os.Getenv("GITLAB_TOKEN")
-	}
-	if token == "" {
-		token = os.Getenv("CI_JOB_TOKEN")
-		repo.useJobToken = true
-
+		ci_job_token := os.Getenv("CI_JOB_TOKEN")
 		if token == "" {
-			return errors.New("gitlab token missing")
-		}
-
-		if os.Getenv("GIT_STRATEGY") == "none" {
-			return errors.New("can not use job token with sparse-checkout repository")
+			if ci_job_token == "" {
+				return errors.New("gitlab token missing")
+			}
+			token = ci_job_token
 		}
-
-		repo.localRepo = &GitProvider.Repository{}
-		err := repo.localRepo.Init(map[string]string{
-			"remote_name": "origin",
-			"git_path":    os.Getenv("CI_PROJECT_DIR"),
-			"log_order":   config["log_order"],
-		})
-		if err != nil {
-			return errors.New("failed to initialize local git repository: " + err.Error())
+		// use the same strategy as goreleaser
+		if token == ci_job_token {
+			repo.useJobToken = true
+			if os.Getenv("GIT_STRATEGY") == "none" {
+				return errors.New("can not use job token with sparse-checkout repository")
+			}
+			repo.localRepo = &GitProvider.Repository{}
+			err := repo.localRepo.Init(map[string]string{
+				"remote_name": "origin",
+				"git_path":    os.Getenv("CI_PROJECT_DIR"),
+				"log_order":   config["log_order"],
+			})
+			if err != nil {
+				return errors.New("failed to initialize local git repository: " + err.Error())
+			}
 		}
 	}
 
-- 
GitLab