use super::audit::AzureDevOpsAuditArgs;
use super::azure_devops_rest_command::AzureDevOpsRestArgs;
use crate::cli::azure_devops::agent::AzureDevOpsAgentArgs;
use crate::cli::azure_devops::group::AzureDevOpsGroupArgs;
use crate::cli::azure_devops::license_entitlement::AzureDevOpsLicenseEntitlementArgs;
use crate::cli::azure_devops::project::AzureDevOpsProjectArgs;
use crate::cli::azure_devops::repo::AzureDevOpsRepoArgs;
use crate::cli::azure_devops::service_endpoint::AzureDevOpsServiceEndpointArgs;
use crate::cli::azure_devops::team::AzureDevOpsTeamArgs;
use crate::cli::azure_devops::test::AzureDevOpsTestArgs;
use crate::cli::azure_devops::work_item_query::AzureDevOpsWorkItemQueryArgs;
use clap::Subcommand;
use eyre::Result;
#[derive(Subcommand, Debug, Clone)]
pub enum AzureDevOpsCommand {
Audit(AzureDevOpsAuditArgs),
Rest(AzureDevOpsRestArgs),
Project(AzureDevOpsProjectArgs),
Group(AzureDevOpsGroupArgs),
Team(AzureDevOpsTeamArgs),
Repo(AzureDevOpsRepoArgs),
ServiceEndpoint(AzureDevOpsServiceEndpointArgs),
LicenseEntitlement(AzureDevOpsLicenseEntitlementArgs),
Agent(AzureDevOpsAgentArgs),
Query(AzureDevOpsWorkItemQueryArgs),
Test(AzureDevOpsTestArgs),
}
impl AzureDevOpsCommand {
pub async fn invoke(self) -> Result<()> {
match self {
AzureDevOpsCommand::Audit(args) => {
args.invoke().await?;
}
AzureDevOpsCommand::Rest(args) => {
args.invoke().await?;
}
AzureDevOpsCommand::Project(args) => {
args.invoke().await?;
}
AzureDevOpsCommand::Group(args) => {
args.invoke().await?;
}
AzureDevOpsCommand::Team(args) => {
args.invoke().await?;
}
AzureDevOpsCommand::Repo(args) => {
args.invoke().await?;
}
AzureDevOpsCommand::ServiceEndpoint(args) => {
args.invoke().await?;
}
AzureDevOpsCommand::LicenseEntitlement(args) => {
args.invoke().await?;
}
AzureDevOpsCommand::Agent(args) => {
args.invoke().await?;
}
AzureDevOpsCommand::Query(args) => {
args.invoke().await?;
}
AzureDevOpsCommand::Test(args) => {
args.invoke().await?;
}
}
Ok(())
}
}