cargo-governor 2.0.3

Machine-First, LLM-Ready, CI/CD-Native release automation tool for Rust crates
Documentation
//! Full command options - bump, changelog, and publish in one command

use clap::Parser;

/// Full release: bump, changelog, commit, tag, and publish in one command
#[derive(Parser, Debug, Clone)]
#[command(disable_version_flag(true))]
#[allow(clippy::struct_excessive_bools)]
pub struct FullOpts {
    /// Bump strategy: auto, patch, minor, major
    #[arg(short = 'b', long)]
    pub bump: Option<String>,

    /// Force specific version
    #[arg(long)]
    pub version: Option<String>,

    /// Skip changelog generation
    #[arg(long)]
    pub no_changelog: bool,

    /// Skip git commit
    #[arg(long)]
    pub no_commit: bool,

    /// Skip git tag
    #[arg(long)]
    pub no_tag: bool,

    /// Skip git push
    #[arg(long)]
    pub no_push: bool,

    /// Skip pre-publish checks
    #[arg(long)]
    pub skip_checks: bool,

    /// Delay between publishes (seconds)
    #[arg(long)]
    pub delay: Option<u64>,

    /// Publish only specific crates
    #[arg(long)]
    pub only: Option<Vec<String>>,

    /// Exclude specific crates from publishing
    #[arg(long)]
    pub exclude: Option<Vec<String>>,

    /// Dry run - simulate without making changes
    #[arg(long)]
    pub dry_run: bool,

    /// Allow the workspace version to differ from the last release tag
    #[arg(long)]
    pub allow_version_drift: bool,

    /// Allow the release workflow to start from a dirty working tree
    #[arg(long)]
    pub allow_dirty: bool,
}