Skip to main content

codeberg_cli/actions/repo/
mod.rs

1pub mod assignees;
2pub mod branch;
3pub mod clone;
4pub mod create;
5pub mod delete;
6pub mod fork;
7pub mod info;
8pub mod list;
9pub mod migrate;
10pub mod open;
11
12use clap::Subcommand;
13
14use super::GlobalArgs;
15
16/// Repository subcommands
17#[derive(Subcommand, Debug)]
18pub enum RepoArgs {
19    Create(create::RepoCreateArgs),
20    Clone(clone::RepoCloneArgs),
21    Delete(delete::RepoDeleteArgs),
22    Fork(fork::RepoForkArgs),
23    Info(info::RepoInfoArgs),
24    Assignees(assignees::RepoAssigneesArgs),
25    Migrate(migrate::RepoMigrateArgs),
26    List(list::RepoListArgs),
27    Open(open::RepoOpenArgs),
28    #[command(subcommand)]
29    Branch(branch::BranchArgs),
30}
31
32impl RepoArgs {
33    pub async fn run(self, global_args: GlobalArgs) -> miette::Result<()> {
34        match self {
35            RepoArgs::Create(args) => args.run(global_args).await,
36            RepoArgs::Clone(args) => args.run(global_args).await,
37            RepoArgs::Delete(args) => args.run(global_args).await,
38            RepoArgs::Fork(args) => args.run(global_args).await,
39            RepoArgs::Info(args) => args.run(global_args).await,
40            RepoArgs::Assignees(args) => args.run(global_args).await,
41            RepoArgs::Migrate(args) => args.run(global_args).await,
42            RepoArgs::List(args) => args.run(global_args).await,
43            RepoArgs::Open(args) => args.run(global_args).await,
44            RepoArgs::Branch(args) => args.run(global_args).await,
45        }
46    }
47}