use azure_devops_rust_api::Credential;
use azure_identity::{AutoRefreshingTokenCredential, DefaultAzureCredentialBuilder};
use std::sync::Arc;
#[allow(dead_code)]
pub fn get_credential() -> Credential {
match std::env::var("ADO_TOKEN") {
Ok(token) => {
println!("Authenticate using PAT provided via $ADO_TOKEN");
Credential::from_pat(token)
}
Err(_) => {
println!("Authenticate using auto-refereshing DefaultAzureCredential");
let default_azure_credential = Arc::new(
DefaultAzureCredentialBuilder::new()
.exclude_environment_credential()
.exclude_managed_identity_credential()
.build(),
);
let auto_refreshing_credential =
Arc::new(AutoRefreshingTokenCredential::new(default_azure_credential));
Credential::from_token_credential(auto_refreshing_credential)
}
}
}