diff options
author | Cyborus <cyborus@cyborus.xyz> | 2024-10-25 18:12:43 +0200 |
---|---|---|
committer | Cyborus <cyborus@cyborus.xyz> | 2024-10-25 18:12:43 +0200 |
commit | d9f93f01c4d0f1b52ae00d51e16be82776ccf6c2 (patch) | |
tree | db664e48fc60b29add9cab6120893bbb18f50438 | |
parent | Merge pull request 'add `repo readme`' (#134) from repo-readme into main (diff) | |
download | forgejo-cli-d9f93f01c4d0f1b52ae00d51e16be82776ccf6c2.tar.xz forgejo-cli-d9f93f01c4d0f1b52ae00d51e16be82776ccf6c2.zip |
feat: add user agent
-rw-r--r-- | src/keys.rs | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/keys.rs b/src/keys.rs index 5239df6..7296793 100644 --- a/src/keys.rs +++ b/src/keys.rs @@ -74,6 +74,15 @@ impl KeyInfo { } } +pub const USER_AGENT: &str = concat!( + env!("CARGO_PKG_NAME"), + "/", + env!("CARGO_PKG_VERSION"), + " (", + env!("CARGO_PKG_REPOSITORY"), + ")" +); + #[derive(serde::Serialize, serde::Deserialize, Clone)] #[serde(tag = "type")] pub enum LoginInfo { @@ -100,7 +109,7 @@ impl LoginInfo { pub async fn api_for(&mut self, url: &Url) -> eyre::Result<Forgejo> { match self { LoginInfo::Application { token, .. } => { - let api = Forgejo::new(Auth::Token(token), url.clone())?; + let api = Forgejo::with_user_agent(Auth::Token(token), url.clone(), USER_AGENT)?; Ok(api) } LoginInfo::OAuth { @@ -110,7 +119,7 @@ impl LoginInfo { .. } => { if time::OffsetDateTime::now_utc() >= *expires_at { - let api = Forgejo::new(Auth::None, url.clone())?; + let api = Forgejo::with_user_agent(Auth::None, url.clone(), USER_AGENT)?; let (client_id, client_secret) = crate::auth::get_client_info_for(url) .ok_or_else(|| { eyre::eyre!("Can't refresh token; no client info for {url}. How did this happen?") @@ -131,7 +140,7 @@ impl LoginInfo { ); *expires_at = time::OffsetDateTime::now_utc() + expires_in; } - let api = Forgejo::new(Auth::Token(token), url.clone())?; + let api = Forgejo::with_user_agent(Auth::Token(token), url.clone(), USER_AGENT)?; Ok(api) } } |