Expand description
Argv-only, hardened git runner for the read features (JSON API, search,
releases, archive).
Every invocation goes through solid_pod_rs_git::hardened_git_async
(no hooks, no system/global config, no prompts), runs with the bare repo
as the working directory, takes arguments as an argv slice (never a
shell), has no stdin, no inherited HOME, and a hard stdout cap. Callers
validate refs and paths with crate::guard before they get here.
Structs§
- GitOut
- Result of one git run.
Constants§
- GIT_
TIMEOUT - Wall-clock budget for one read-side git invocation. Dropping the future
on expiry kills the child (
kill_on_drop), so agit grepover a huge branch cannot hold a CPU for longer than this.
Functions§
- bytes
- Run and return raw stdout bytes with the same failure mapping as
text. - run
- Run
git <args>ingit_dir, capturing at mostcapbytes of stdout. - run_
heavy runfor operations that can burn real CPU or memory (search, archive): at most four run at once process-wide, and a request that cannot get a permit within a few seconds isForgeError::Busy(503).- run_
within runwith an explicit wall-clocklimit.- text
- Run and return stdout as lossy UTF-8; any failure (non-zero exit,
truncation) is
ForgeError::NotFoundwhen git complains about an unknown object, elseForgeError::Backend.