Skip to main content

Crate repolith_actions

Crate repolith_actions 

Source
Expand description

Concrete Action implementations for repolith.

Each backend lives behind its own cargo feature so consumers only pull the dependencies they actually need:

FeatureModuleWhat it does
gitgit_clone::GitCloneshells out to git clone / git fetch
cargocargo_install::CargoInstallshells out to cargo install --bin <name> --locked
docker[docker::DockerBuild]shells out to docker build -f … -t … -- <context>

Every action shells out to an external CLI rather than linking the corresponding library (no git2, no cargo as a crate). Two reasons: faster compile times, and the host already has the CLIs by hypothesis (you can’t run repolith sync without git and cargo on PATH).

Every spawned subprocess is raced against ctx.cancel via the shared util::run_with_cancel helper so the orchestrator’s FailFast mode can short-circuit a long-running clone or build. New actions that shell out should go through the same helper.

See CONTRIBUTING.md for the recipe to add a new action.

Modules§

cargo_install
CargoInstall action — cargo install a binary crate from git or path. CargoInstall action — wraps cargo install --git|--path --locked --force --root <dir>.
git_clone
GitClone action — mirror a remote git repository into a local path. GitClone action — fetches a git repository into a local path.
paths
Path utilities (tilde expansion). Public so the manifest factory in the CLI can apply the same expansion to node.path that cargo_install already applies to install_to. Path utilities shared by every action and by the manifest factory.