securegit 0.8.5

Zero-trust git replacement with 12 built-in security scanners, LLM redteam bridge, universal undo, durable backups, and a 50-tool MCP server
Documentation
use crate::acquire::sources::RepoSource;
use crate::auth::SecureString;
use crate::core::AcquisitionReport;
use anyhow::Result;
use async_trait::async_trait;
use std::path::{Path, PathBuf};

/// Options passed through CLI to acquisition strategies.
#[derive(Default, Clone)]
pub struct AcquireOptions {
    pub token: Option<SecureString>,
    pub ssh_key: Option<PathBuf>,
    pub depth: Option<u32>,
    pub single_branch: bool,
    pub recurse_submodules: bool,
    pub lfs: bool,
    pub branch: Option<String>,
}

#[async_trait]
pub trait AcquisitionStrategy: Send + Sync {
    async fn acquire(
        &self,
        source: &RepoSource,
        target: &Path,
        opts: &AcquireOptions,
    ) -> Result<AcquisitionReport>;
}