use clap::ValueEnum;
#[derive(Copy, Clone, Debug, ValueEnum)]
pub(crate) enum OutputFormat {
Text,
Json,
Md,
}
#[derive(Copy, Clone, Debug, clap::ValueEnum)]
pub(crate) enum OpenPrFormat {
Text,
Json,
#[value(alias = "md")]
Markdown,
}
#[derive(Copy, Clone, Debug, PartialEq, Eq, clap::ValueEnum)]
pub(crate) enum OpenPrPolicy {
Local,
DraftPr,
AutoPr,
}
#[derive(Copy, Clone, Debug, PartialEq, Eq, clap::ValueEnum)]
pub(crate) enum MergePolicy {
Disabled,
Manual,
Gated,
}
pub(crate) fn map_open_pr_policy(policy: OpenPrPolicy) -> crate::runtime::goal::GoalDeliveryPolicy {
match policy {
OpenPrPolicy::Local => crate::runtime::goal::GoalDeliveryPolicy::Local,
OpenPrPolicy::DraftPr => crate::runtime::goal::GoalDeliveryPolicy::DraftPr,
OpenPrPolicy::AutoPr => crate::runtime::goal::GoalDeliveryPolicy::AutoPr,
}
}
pub(crate) fn map_merge_policy(policy: MergePolicy) -> crate::runtime::goal::GoalMergePolicy {
match policy {
MergePolicy::Disabled => crate::runtime::goal::GoalMergePolicy::Disabled,
MergePolicy::Manual => crate::runtime::goal::GoalMergePolicy::Manual,
MergePolicy::Gated => crate::runtime::goal::GoalMergePolicy::Gated,
}
}