use clap::Subcommand;
use crate::daemon::client::DaemonClient;
#[derive(Subcommand, Debug)]
pub enum PrCommands {
Review {
number: u64,
},
Fix {
number: u64,
},
Merge {
number: u64,
#[arg(long)]
force: bool,
},
}
pub async fn handle(command: PrCommands, client: &mut DaemonClient) -> anyhow::Result<()> {
match command {
PrCommands::Review { number } => {
println!("[review_pr] Reviewing PR #{number}...");
super::run_workflow_chain(client, "review_pr", number, 1, false).await
}
PrCommands::Fix { number } => {
println!("[fix_review] Fixing PR #{number} review issues...");
super::run_workflow_chain(client, "fix_review", number, 2, false).await
}
PrCommands::Merge { number, force } => {
if force {
println!("[merge_pr] Merging PR #{number} (force)...");
} else {
println!("[merge_pr] Merging PR #{number}...");
}
super::run_workflow_chain(client, "merge_pr", number, 3, !force).await
}
}
}