use clap::Subcommand;
#[derive(Debug, Subcommand)]
pub(crate) enum IssueCmd {
SeedLabels {
#[arg(long)]
config: Option<std::path::PathBuf>,
#[arg(long)]
dry_run: bool,
#[arg(long, value_name = "NAME_OR_FAMILY")]
only: Vec<String>,
},
Transition {
issue: u64,
to_state: String,
#[arg(long)]
config: Option<std::path::PathBuf>,
#[arg(long)]
note: Option<String>,
},
Current {
issue: u64,
#[arg(long)]
config: Option<std::path::PathBuf>,
},
States {
#[arg(long)]
config: Option<std::path::PathBuf>,
},
Standard {
#[arg(long)]
config: Option<std::path::PathBuf>,
},
SeedConfig {
#[arg(long)]
force: bool,
},
Audit {
#[arg(conflicts_with_all = ["recent", "since"])]
issue: Option<u64>,
#[arg(long, conflicts_with = "since")]
recent: Option<usize>,
#[arg(long)]
since: Option<String>,
},
#[command(subcommand)]
Epic(EpicCmd),
Repair {
issue: u64,
#[arg(long)]
config: Option<std::path::PathBuf>,
},
}
#[derive(Debug, Subcommand)]
pub(crate) enum EpicCmd {
Create {
#[arg(long, value_name = "PATH")]
from: std::path::PathBuf,
#[arg(long, value_name = "TITLE")]
milestone: Option<String>,
#[arg(long, value_name = "LABEL")]
component: Vec<String>,
#[arg(long, value_name = "TYPE", default_value = "enhancement")]
phase_type: String,
#[arg(long, value_name = "NUMBER")]
project: Option<u64>,
#[arg(long, value_name = "NAME")]
session: Option<String>,
#[arg(long, value_name = "NUMBER")]
tracker: Option<u64>,
#[arg(long)]
dry_run: bool,
},
Sync {
epic: u64,
},
Defer {
epic: u64,
#[arg(long, value_name = "TEXT")]
item: String,
#[arg(long, value_name = "TEXT")]
why: String,
#[arg(long = "where", value_name = "TEXT")]
destination: String,
},
Close {
epic: u64,
#[arg(long, value_name = "O<n>: TEXT")]
evidence: Vec<String>,
},
}