pub struct TreeGate {
pub name: String,
pub tool: TreeTool,
pub exts: Vec<String>,
pub names: Vec<String>,
pub dirs: Vec<String>,
pub opt_in: Vec<String>,
pub cwd: Option<String>,
pub inputs: Vec<String>,
pub command: String,
pub lineno: usize,
}Expand description
tree <name> <tool> <scope> attest [cwd=<dir>] [inputs=<path>,...] <command>
— a whole-tree check whose pass may be ATTESTED so CI skips the step that
runs the same command (ADR-0024).
The declaration IS the CI command. normalized() is what the workflow
step’s run: must equal, character for character; {cache} is the only
thing amont may add, and it never changes a verdict. A tree gate never
decides a commit: it is not a pre-commit or pre-push check, so it has no
severity column — attest stands where the severity would be, saying what
the line is for.
Fields§
§name: String§tool: TreeTool§exts: Vec<String>§names: Vec<String>§dirs: Vec<String>§opt_in: Vec<String>§cwd: Option<String>The directory the command runs in, relative to the repository root.
inputs: Vec<String>Extra paths that belong to the gate’s cache namespace.
command: StringThe command as declared, {cache} and all.
lineno: usizeImplementations§
Source§impl TreeGate
impl TreeGate
Sourcepub fn stamp_key(&self) -> String
pub fn stamp_key(&self) -> String
The key a tree proof is stamped under. Distinct from every commit-stamp
token (short names like cargo-test) by its :, so no per-commit
reader can mistake a staged-only pass for a whole-tree one.
Sourcepub fn normalized(&self) -> String
pub fn normalized(&self) -> String
The command CI must run: {cache} removed, then a dangling trailing
-- (left behind by npm run lint -- {cache}), then whitespace
collapsed.