2024-06-19 07:02:18 +01:00
|
|
|
//
|
2024-06-29 14:56:20 +01:00
|
|
|
crate::newtype!(WebhookAuth: ulid::Ulid, derive_more::Display: r#"The unique token authorisation for the webhook.
|
|
|
|
|
|
|
|
Each monitored repository has it's own unique token, and it is different each time `git-next` runs."#);
|
2024-05-25 11:25:13 +01:00
|
|
|
impl WebhookAuth {
|
2024-06-19 07:02:18 +01:00
|
|
|
pub fn try_new(authorisation: &str) -> Result<Self, ulid::DecodeError> {
|
2024-06-03 07:38:59 +01:00
|
|
|
use std::str::FromStr as _;
|
2024-05-25 11:25:13 +01:00
|
|
|
let id = ulid::Ulid::from_str(authorisation)?;
|
|
|
|
tracing::info!("Parse auth token: {}", id);
|
|
|
|
Ok(Self(id))
|
|
|
|
}
|
|
|
|
|
|
|
|
pub fn generate() -> Self {
|
|
|
|
Self(ulid::Ulid::new())
|
|
|
|
}
|
|
|
|
|
|
|
|
pub fn header_value(&self) -> String {
|
|
|
|
format!("Basic {}", self)
|
|
|
|
}
|
|
|
|
|
|
|
|
pub const fn to_bytes(&self) -> [u8; 16] {
|
|
|
|
self.0.to_bytes()
|
|
|
|
}
|
|
|
|
}
|