release-kit 0.2.1

A canonical release workflow: a technology-agnostic method, per-technology bindings, and the rk CLI that lands and serves them.
Documentation
//! Arguments for `rk adopt`.

use camino::Utf8PathBuf;
use clap::Args;

/// Write the landing record for a repository that already runs the
/// convention, landed before the record existed.
///
/// Strict: every rendered file must match what this payload would
/// render, and no target file is ever changed.
#[derive(Debug, Args)]
pub struct AdoptArgs {
    /// The repository to adopt.
    #[arg(long, default_value = ".")]
    pub target: Utf8PathBuf,

    /// The technology whose payload the target runs. Defaults to
    /// detection from the version file.
    #[arg(long)]
    pub tech: Option<String>,

    /// The forge whose payload the target runs: github or gitlab.
    /// Defaults to detection from the target's git remote.
    #[arg(long)]
    pub forge: Option<String>,

    /// The project path on the forge, the parameter the candidate is
    /// rendered under. Defaults to detection from the target's git
    /// remote.
    #[arg(long)]
    pub repo: Option<String>,

    /// The Conventional Commit scopes this project accepts,
    /// comma-separated, the parameter the candidate is rendered under and
    /// the record carries. There is no record to read it from yet, so the
    /// adoption refuses without it.
    #[arg(long)]
    pub scopes: Option<String>,

    /// Write the record; without it the verification runs and nothing is
    /// touched.
    #[arg(long)]
    pub apply: bool,

    /// Emit one JSON object on stdout instead of the human report.
    #[arg(long)]
    pub json: bool,
}