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
- Make `includes` use glob patterns 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
- 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
works if the token is a GitHub token.
### `pesde auth token`
Prints the token for the index.
## `pesde config`
Configuration-related commands.

View file

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