use crate::output::OutputFormat;
use camino::Utf8PathBuf;
use clap::Subcommand;
#[derive(Subcommand)]
pub enum EdgesCommand {
Create {
#[arg(long, default_value = ".")]
repo: Utf8PathBuf,
#[arg(long)]
scope: String,
#[arg(long = "type")]
edge_type: String,
#[arg(long)]
from_type: String,
#[arg(long)]
from_id: String,
#[arg(long)]
to_type: String,
#[arg(long)]
to_id: String,
#[arg(long, value_enum, default_value_t = OutputFormat::Table)]
format: OutputFormat,
},
List {
#[arg(long, default_value = ".")]
repo: Utf8PathBuf,
#[arg(long)]
scope: String,
#[arg(long, value_enum, default_value_t = OutputFormat::Table)]
format: OutputFormat,
},
Delete {
#[arg(long, default_value = ".")]
repo: Utf8PathBuf,
#[arg(long)]
scope: String,
#[arg(long)]
id: String,
#[arg(long, value_enum, default_value_t = OutputFormat::Table)]
format: OutputFormat,
},
}
#[derive(Subcommand)]
pub enum GraphReferenceCommand {
Issue {
#[arg(long, default_value = ".")]
repo: Utf8PathBuf,
#[arg(long, default_value = "default")]
scope: String,
#[arg(long)]
commit: Option<String>,
#[arg(long, requires = "correlation_key")]
correlation_system: Option<String>,
#[arg(long, requires = "correlation_system")]
correlation_key: Option<String>,
},
Show {
#[arg(long, default_value = ".")]
repo: Utf8PathBuf,
#[arg(long)]
reference: Utf8PathBuf,
},
Verify {
#[arg(long, default_value = ".")]
repo: Utf8PathBuf,
#[arg(long)]
reference: Utf8PathBuf,
},
ExactExport {
#[arg(long, default_value = ".")]
repo: Utf8PathBuf,
#[arg(long)]
reference: Utf8PathBuf,
},
}