Sign in

Search issue titles and bodies, change requests and comments. Private repositories you cannot read are not included.

vole
Clone

Read only, no credentials:

https://rodent.software/git/vole.git

Write over SSH with a registered key:

git clone ssh://git@0.0.0.0:2222/vole.git

A free and open-source forge that lives in your Git repo.

Runs: the rebuild comment describes the model that exists

ec2aba4bb9355e37ad428f8d303871791b0d58e1 · Keenan Nemetz · 16d ago · parent f50f6fab

Runs: the rebuild comment describes the model that exists

It explained why RestoreFinished does not re-verify a signature. There is no
signature and nothing to re-verify: attribution is the push boundary's, and the
decision it made is in the push log rather than the object.

internal/runs/record.go +4−4

@@ -283,10 +283,10 @@ func RecordAt(g *gitx.Repo, treeish, runID string, attempt int) (*Record, error)
283 283 // only partly: a record that does not validate is reported, not skipped, because a
284 284 // half-read history is worse than a refused rebuild.
285 285 //
286 // It does not re-verify the commit signature. The push verified it, under a key the
287 // account held then; keys are retired, and a reader who wants the proof asks git
288 // (`verify-commit` against a roster they trust). A rebuild that re-verified would
289 // refuse to restore history the moment somebody rotated a key.
286 // There is nothing to re-verify: a record is attributable because `pre-receive` refused
287 // any push that did not come from the account it names, and that decision is in the push
288 // log, not in the object. A rebuild therefore restores history without asking anybody's
289 // permission, which is the property the finished half of the queue depends on.
290 290 func Records(g *gitx.Repo, ref string) ([]Record, error) {
291 291 paths, err := recordPaths(g, ref)
292 292 if err != nil {