From f42073b7b2615eec1797842866291ba9cecc00d3 Mon Sep 17 00:00:00 2001 From: Damiano Stevanato Date: Thu, 21 May 2026 12:40:27 +0200 Subject: [PATCH 1/2] added the ability to read PHASE_SERVICE_TOKEN env var before asking the user for a token --- src/cmd/auth.go | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/src/cmd/auth.go b/src/cmd/auth.go index 2ed2e712..42d17ff0 100644 --- a/src/cmd/auth.go +++ b/src/cmd/auth.go @@ -83,15 +83,23 @@ func runAuth(cmd *cobra.Command, args []string) error { func runTokenAuth(cmd *cobra.Command, host string) error { // Get token - fmt.Print("Please enter Personal Access Token (PAT) or Service Account Token (hidden): ") - tokenBytes, err := term.ReadPassword(int(syscall.Stdin)) - if err != nil { - return fmt.Errorf("failed to read token: %w", err) - } - fmt.Println() - authToken := strings.TrimSpace(string(tokenBytes)) - if authToken == "" { - return fmt.Errorf("token is required") + + token := os.Getenv("PHASE_SERVICE_TOKEN") + + if host == "" { + fmt.Print("Please enter Personal Access Token (PAT) or Service Account Token (hidden): ") + tokenBytes, err := term.ReadPassword(int(syscall.Stdin)) + if err != nil { + return fmt.Errorf("failed to read token: %w", err) + } + fmt.Println() + authToken := strings.TrimSpace(string(tokenBytes)) + if authToken == "" { + return fmt.Errorf("token is required") + } + }else{ + authToken = token + fmt.Fprintf(os.Stderr, "Using PHASE_SERVICE_TOKEN environment variable for authentication\n") } isPersonalToken := strings.HasPrefix(authToken, "pss_user:") From d28f2ee6049c7cdcd1ad4171a08a66a849c33388 Mon Sep 17 00:00:00 2001 From: Damiano Stevanato Date: Thu, 21 May 2026 12:51:36 +0200 Subject: [PATCH 2/2] fix if check after reading the token --- src/cmd/auth.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cmd/auth.go b/src/cmd/auth.go index 42d17ff0..acc79d7d 100644 --- a/src/cmd/auth.go +++ b/src/cmd/auth.go @@ -86,7 +86,7 @@ func runTokenAuth(cmd *cobra.Command, host string) error { token := os.Getenv("PHASE_SERVICE_TOKEN") - if host == "" { + if token == "" { fmt.Print("Please enter Personal Access Token (PAT) or Service Account Token (hidden): ") tokenBytes, err := term.ReadPassword(int(syscall.Stdin)) if err != nil {