cmx_core/gateway/git.rs
1use anyhow::Result;
2use std::path::Path;
3
4/// Abstraction over git operations used by cmx.
5///
6/// The real implementation delegates to `git` via `std::process::Command`.
7/// Tests inject a fake that records calls without running git.
8pub trait GitClient {
9 fn clone_repo(&self, url: &str, dest: &Path) -> Result<()>;
10 fn pull(&self, repo_path: &Path) -> Result<()>;
11}