use clap::{Args, Subcommand};
#[derive(Args)]
pub struct QueueIssueArgs {
#[command(subcommand)]
pub command: QueueIssueCommand,
}
#[derive(Subcommand)]
pub enum QueueIssueCommand {
Publish(QueueIssuePublishArgs),
PublishMany(QueueIssuePublishManyArgs),
}
#[derive(Args, Clone)]
#[command(after_long_help = "Examples:\n\
# Preview rendered markdown for a task\n\
ralph queue issue publish RQ-0655 --dry-run\n\
# Create/update issue metadata and persist custom_fields\n\
ralph queue issue publish RQ-0655\n\
# Add labels/assignees\n\
ralph queue issue publish RQ-0655 --label bug --assignee @me\n\
# Target another repo\n\
ralph queue issue publish RQ-0655 --repo owner/repo")]
pub struct QueueIssuePublishArgs {
pub task_id: String,
#[arg(long)]
pub dry_run: bool,
#[arg(long)]
pub label: Vec<String>,
#[arg(long)]
pub assignee: Vec<String>,
#[arg(long)]
pub repo: Option<String>,
}
#[derive(Args, Clone)]
#[command(after_long_help = "Examples:\n\
# Safe preview from todo backlog\n\
ralph queue issue publish-many --status todo --tag bug --dry-run\n\
# Publish selected slice with regex and labels\n\
ralph queue issue publish-many --status todo --tag bug --id-pattern '^RQ-08' --label triage\n\
# Execute publish with confirmation override\n\
ralph queue issue publish-many --status todo --execute --force")]
pub struct QueueIssuePublishManyArgs {
#[arg(long)]
pub status: Vec<super::super::shared::StatusArg>,
#[arg(long)]
pub tag: Vec<String>,
#[arg(long)]
pub id_pattern: Option<String>,
#[arg(long)]
pub dry_run: bool,
#[arg(long)]
pub execute: bool,
#[arg(long)]
pub label: Vec<String>,
#[arg(long)]
pub assignee: Vec<String>,
#[arg(long)]
pub repo: Option<String>,
}