codeberg_cli/actions/repo/
delete.rs

1use crate::{
2    actions::{repo::parse_owner_and_repo, GeneralArgs},
3    types::context::BergContext,
4};
5
6use clap::Parser;
7
8/// Delete a repository
9#[derive(Parser, Debug)]
10pub struct RepoDeleteArgs {
11    /// Repository to be deleted
12    #[arg(value_name = "OWNER/REPO")]
13    pub owner_and_repo: String,
14}
15
16impl RepoDeleteArgs {
17    pub async fn run(self, general_args: GeneralArgs) -> anyhow::Result<()> {
18        let _ = general_args;
19        let ctx = BergContext::new(self, general_args).await?;
20
21        let (owner, repo) = parse_owner_and_repo(ctx.args.owner_and_repo.as_str())?;
22        ctx.client
23            .repo_delete(owner.as_str(), repo.as_str())
24            .await?;
25        Ok(())
26    }
27}