pub struct Ctx<'a> {
pub name: &'a str,
pub args: &'a [OsString],
pub hooks_dir: &'a Path,
pub push: &'a PushRefs,
pub manifest: &'a Manifest,
pub settings: &'a Settings,
}Expand description
Everything a hook is given. One shape for all of them, so a handler that needs the invoked name (ban-terms excludes its own source by it) or the hooks directory (the dispatchers glob it) does not need its own signature.
Fields§
§name: &'a strThe hook name as invoked.
args: &'a [OsString]Arguments git passed the hook.
hooks_dir: &'a PathDirectory the shim lives in. Only foreign sub-hooks are found here now; our own checks are functions in this binary.
push: &'a PushRefsThe pre-push ref list, read from stdin at most once and lent to every
check that asks. See pushrefs.
manifest: &'a ManifestWhat this repository’s manifest declares — parsed and trust-gated once
by the entrypoint, lent to everything downstream. The same shape as
push: read once, owned high, borrowed everywhere.
settings: &'a SettingsConfiguration resolved once for this process: the manifest’s trusted
policy plus the reads memoised over it. Joins manifest and push in
the read-once-borrow-everywhere shape, and replaces the process-global
policy store — see crate::config::Settings.