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 async_trait::async_trait;
use color_eyre::eyre::Result;

use crate::forge::{
    config::RepoUrl,
    tests::common::{gitea::GiteaForgeTestHelper, traits::ForgeTestHelper},
};

pub struct ForgejoForgeTestHelper {
    gitea_helper: GiteaForgeTestHelper,
}

impl ForgejoForgeTestHelper {
    pub async fn new(repo: &RepoUrl, token: &str, reset_sha: &str) -> Self {
        let gitea_helper =
            GiteaForgeTestHelper::new(repo, token, reset_sha).await;

        Self { gitea_helper }
    }
}

#[async_trait]
impl ForgeTestHelper for ForgejoForgeTestHelper {
    async fn reset(&self) -> Result<()> {
        self.gitea_helper.reset().await
    }

    async fn merge_pr(&self, pr_number: u64) -> Result<()> {
        self.gitea_helper.merge_pr(pr_number).await
    }
}