From d9f93f01c4d0f1b52ae00d51e16be82776ccf6c2 Mon Sep 17 00:00:00 2001 From: Cyborus Date: Fri, 25 Oct 2024 12:12:43 -0400 Subject: feat: add user agent --- src/keys.rs | 15 ++++++++++++--- 1 file 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 { 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) } } -- cgit v1.2.3