1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
[]
= "git-attest"
= "1.7.0"
= "2021"
= "MIT"
= "https://github.com/fredericrous/attest"
= ["Frederic Rousseau"]
= "Sign and verify attestations that a test suite already passed on a tree, so CI can skip it: the library and its command line"
= "README.md"
= ["ci", "attestation", "git-notes", "ssh-signature", "hooks"]
= ["development-tools", "command-line-utilities"]
# MEASURED against `cargo +<v> check --locked`, not inherited and not guessed.
# There are no dependencies to drag it upward, which is the point: this is the
# floor of the language features the source actually uses.
= "1.74.0"
# The library is the one implementation of the format (decisions ADR-0037):
# amont links it at pre-push, and the binary is a thin command line over it.
[]
= "git_attest"
= "src/lib.rs"
[[]]
= "git-attest"
= "src/main.rs"
# NO DEPENDENCIES, and this is load-bearing rather than an aesthetic.
#
# A verifier is a security boundary: it decides whether a test suite may be
# skipped. Everything it links is something a reviewer has to trust, and
# something an advisory can force a release for. The two hard problems here —
# ed25519 and the OpenSSH signature envelope — are solved by `ssh-keygen`,
# which is already on every runner and is audited by people who do that for a
# living. Hand-rolling either, or pulling a crate that does, would be strictly
# worse than shelling out.
#
# `verify.sh` makes the same bet in the same words, and `tests/conformance.sh`
# is what proves the two agree. The bar is higher now that amont's commit
# path links this crate: its own resolved tree must stay empty, which amont's
# `scripts/check-no-deps.sh` checks.
[]
[]
= true
= "s"
= true