Skip to content

Commit d8984ad

Browse files
authored
fix(cli): auth commands errors when using a personal access token (#138)
1 parent bff2b5c commit d8984ad

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

cli/cmd/auth.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package cmd
22

33
import (
44
"fmt"
5+
"os"
56

67
"github.com/nitrictech/suga/cli/internal/version"
78
"github.com/nitrictech/suga/cli/pkg/app"
@@ -16,6 +17,10 @@ func NewLoginCmd(injector do.Injector) *cobra.Command {
1617
Short: fmt.Sprintf("Login to %s", version.ProductName),
1718
Long: fmt.Sprintf("Login to the %s CLI.", version.ProductName),
1819
Run: func(cmd *cobra.Command, args []string) {
20+
if os.Getenv(AccessTokenEnvVar) != "" {
21+
cobra.CheckErr(fmt.Errorf("currently using a personal access token via %s environment variable\nUnset %s to login manually", AccessTokenEnvVar, AccessTokenEnvVar))
22+
return
23+
}
1924
app, err := do.Invoke[*app.AuthApp](injector)
2025
if err != nil {
2126
cobra.CheckErr(err)
@@ -32,6 +37,10 @@ func NewLogoutCmd(injector do.Injector) *cobra.Command {
3237
Short: fmt.Sprintf("Logout from %s", version.ProductName),
3338
Long: fmt.Sprintf("Logout from the %s CLI.", version.ProductName),
3439
Run: func(cmd *cobra.Command, args []string) {
40+
if os.Getenv(AccessTokenEnvVar) != "" {
41+
cobra.CheckErr(fmt.Errorf("currently using a personal access token via %s environment variable\nUnset %s to logout", AccessTokenEnvVar, AccessTokenEnvVar))
42+
return
43+
}
3544
app, err := do.Invoke[*app.AuthApp](injector)
3645
if err != nil {
3746
cobra.CheckErr(err)
@@ -50,6 +59,14 @@ func NewAccessTokenCmd(injector do.Injector) *cobra.Command {
5059
Short: "Get access token",
5160
Long: `Get the current access token.`,
5261
Run: func(cmd *cobra.Command, args []string) {
62+
if token := os.Getenv(AccessTokenEnvVar); token != "" {
63+
if refresh {
64+
cobra.CheckErr(fmt.Errorf("cannot refresh a personal access token provided via %s\nThe token is static and controlled externally", AccessTokenEnvVar))
65+
return
66+
}
67+
fmt.Println(token)
68+
return
69+
}
5370
app, err := do.Invoke[*app.AuthApp](injector)
5471
if err != nil {
5572
cobra.CheckErr(err)

0 commit comments

Comments
 (0)