Skip to main content

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}