codeberg_cli/actions/repo/
delete.rs

1use crate::{
2    actions::GlobalArgs,
3    types::{context::BergContext, git::OwnerRepo},
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: OwnerRepo,
14}
15
16impl RepoDeleteArgs {
17    pub async fn run(self, global_args: GlobalArgs) -> anyhow::Result<()> {
18        let _ = global_args;
19        let ctx = BergContext::new(self, global_args).await?;
20
21        let OwnerRepo { owner, repo } = ctx.args.owner_and_repo.clone();
22        ctx.client
23            .repo_delete(owner.as_str(), repo.as_str())
24            .await?;
25        Ok(())
26    }
27}