releasaurus-core 0.20.4

A comprehensive release automation tool that streamlines the software release process across multiple programming languages and forge platforms
Documentation
use secrecy::SecretString;
use std::env;

use crate::forge::{
    azure_devops::{AzureDevops, url_parse::azure_git_url_to_repo_url},
    manager::{ForgeManager, ForgeOptions},
    tests::common::{
        azure_devops::AzureDevopsForgeTestHelper, run::run_forge_test,
    },
};

#[tokio::test]
#[test_log::test]
async fn test_azure_devops_forge() {
    let repo = azure_git_url_to_repo_url(
        &env::var("AZURE_DEVOPS_TEST_REPO")
            .expect("AZURE_DEVOPS_TEST_REPO env var must be set"),
    )
    .expect("AZURE_DEVOPS_TEST_REPO must be a valid azure devops url");

    let token_str = env::var("AZURE_DEVOPS_TEST_TOKEN")
        .expect("AZURE_DEVOPS_TEST_TOKEN env var must be set");

    let token_secret = SecretString::from(token_str.clone());

    let reset_sha = env::var("AZURE_DEVOPS_RESET_SHA")
        .expect("AZURE_DEVOPS_RESET_SHA env var must be set");

    let helper =
        AzureDevopsForgeTestHelper::new(&repo, &token_str, &reset_sha).await;

    let azure_forge = AzureDevops::new(repo, Some(token_secret))
        .await
        .expect("failed to create AzureDevops forge");

    let manager = ForgeManager::new(
        Box::new(azure_forge),
        ForgeOptions { dry_run: false },
    );

    run_forge_test(&manager, &helper).await;
}