Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: force token refresh with lagoon login #409

Merged
merged 1 commit into from
Dec 6, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 20 additions & 6 deletions cmd/login.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,22 @@ import (
)

var loginCmd = &cobra.Command{
Use: "login",
Short: "Log into a Lagoon instance",
Aliases: []string{"l"},
Run: func(cmd *cobra.Command, args []string) {
validateToken(lagoonCLIConfig.Current) // get a new token if the current one is invalid
fmt.Println("Token fetched and saved.")
Use: "login",
Short: "Login or refresh an authentication token",
Long: `Login or refresh an authentication token
This can be used to clear out and force your CLI to refresh a token for a given context.`,
Aliases: []string{"token-refresh", "tr", "l"},
RunE: func(cmd *cobra.Command, args []string) error {
// clear the current token
lc := lagoonCLIConfig.Lagoons[lagoonCLIConfig.Current]
lc.Token = ""
lagoonCLIConfig.Lagoons[lagoonCLIConfig.Current] = lc
// refresh and save new token
if err := validateTokenE(lagoonCLIConfig.Current); err != nil {
return err
}
fmt.Printf("token for context %s fetched and saved.\n", lagoonCLIConfig.Current)
return nil
},
}

Expand Down Expand Up @@ -181,3 +191,7 @@ func retrieveTokenViaSsh() (string, error) {
}
return strings.TrimSpace(string(out)), err
}

func init() {
loginCmd.Flags().Bool("reset-token", false, "clear the token before attempting to log in")
}
2 changes: 1 addition & 1 deletion docs/commands/lagoon.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ lagoon [flags]
* [lagoon import](lagoon_import.md) - Import a config from a yaml file
* [lagoon kibana](lagoon_kibana.md) - Launch the kibana interface
* [lagoon list](lagoon_list.md) - List projects, environments, deployments, variables or notifications
* [lagoon login](lagoon_login.md) - Log into a Lagoon instance
* [lagoon login](lagoon_login.md) - Login or refresh an authentication token
* [lagoon logs](lagoon_logs.md) - Display logs for a service of an environment and project
* [lagoon raw](lagoon_raw.md) - Run a custom query or mutation
* [lagoon reset-password](lagoon_reset-password.md) - Send a password reset email
Expand Down
10 changes: 8 additions & 2 deletions docs/commands/lagoon_login.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
## lagoon login

Log into a Lagoon instance
Login or refresh an authentication token

### Synopsis

Login or refresh an authentication token
This can be used to clear out and force your CLI to refresh a token for a given context.

```
lagoon login [flags]
Expand All @@ -9,7 +14,8 @@ lagoon login [flags]
### Options

```
-h, --help help for login
-h, --help help for login
--reset-token clear the token before attempting to log in
```

### Options inherited from parent commands
Expand Down
Loading