feat: add uth token command

This commit is contained in:
daimond113 2024-11-28 16:19:31 +01:00
parent 3aadebf3ea
commit cb17c419d0
No known key found for this signature in database
GPG key ID: 3A8ECE51328B513C
4 changed files with 31 additions and 0 deletions

View file

@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Support negated globs in `workspace_members` field by @daimond113 - Support negated globs in `workspace_members` field by @daimond113
- Make `includes` use glob patterns by @daimond113 - Make `includes` use glob patterns by @daimond113
- Use symlinks for workspace dependencies to not require reinstalling by @daimond113 - Use symlinks for workspace dependencies to not require reinstalling by @daimond113
- Add `auth token` command to print the auth token for the index by @daimond113
### Fixed ### Fixed
- Install dependencies of packages in `x` command - Install dependencies of packages in `x` command

View file

@ -34,6 +34,10 @@ Removes the stored token for the index.
Prints the username of the currently authenticated user of the index. Only Prints the username of the currently authenticated user of the index. Only
works if the token is a GitHub token. works if the token is a GitHub token.
### `pesde auth token`
Prints the token for the index.
## `pesde config` ## `pesde config`
Configuration-related commands. Configuration-related commands.

View file

@ -4,6 +4,7 @@ use pesde::{errors::ManifestReadError, Project, DEFAULT_INDEX_NAME};
mod login; mod login;
mod logout; mod logout;
mod token;
mod whoami; mod whoami;
#[derive(Debug, Args)] #[derive(Debug, Args)]
@ -25,6 +26,8 @@ pub enum AuthCommands {
/// Prints the username of the currently logged-in user /// Prints the username of the currently logged-in user
#[clap(name = "whoami")] #[clap(name = "whoami")]
WhoAmI(whoami::WhoAmICommand), WhoAmI(whoami::WhoAmICommand),
/// Prints the token for an index
Token(token::TokenCommand),
} }
impl AuthSubcommand { impl AuthSubcommand {
@ -64,6 +67,7 @@ impl AuthSubcommand {
AuthCommands::Login(login) => login.run(index_url, project, reqwest).await, AuthCommands::Login(login) => login.run(index_url, project, reqwest).await,
AuthCommands::Logout(logout) => logout.run(index_url).await, AuthCommands::Logout(logout) => logout.run(index_url).await,
AuthCommands::WhoAmI(whoami) => whoami.run(index_url, reqwest).await, AuthCommands::WhoAmI(whoami) => whoami.run(index_url, reqwest).await,
AuthCommands::Token(token) => token.run(index_url).await,
} }
} }
} }

View file

@ -0,0 +1,22 @@
use crate::cli::auth::get_tokens;
use clap::Args;
#[derive(Debug, Args)]
pub struct TokenCommand {}
impl TokenCommand {
pub async fn run(self, index_url: gix::Url) -> anyhow::Result<()> {
let tokens = get_tokens().await?;
let token = match tokens.0.get(&index_url) {
Some(token) => token,
None => {
println!("not logged in into {index_url}");
return Ok(());
}
};
println!("token for {index_url}: \"{token}\"");
Ok(())
}
}