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.

Test the merge result before landing it

e5478085e5b53a2892d0649d6f07c6f0a5653378 · Keenan Nemetz · 11d ago · parent db5e4382

Test the merge result before landing it

A protected branch could receive a non-fast-forward landing whose tree was
never built: the gate asked for checks on the request head, and the merge
commit was made at landing time. A pushed merge with the right parents but
extra content was accepted too.

Publish the merge commit under refs/vole/candidates/, test it as the base
branch, and make the gate require its results. Approvals name the head and
the base branch, so a moved base retests without a new approval. A merger
who clicks while that run is still going waits for it instead of clicking
again. A pushed merge commit now has to carry exactly the tree a clean merge
would produce.

Closes: 01M61QQ56TESQ1HTMB1Z5C3733

docs/runner.md +3−2

@@ -219,8 +219,9 @@ The cache lives under `--dir/cache`, keyed by repository, trust, and image:
219 219 `<dir>/cache/<repo>/<direct|contrib>/<image>`. The parts matter. A cache is shared
220 220 mutable state: a repository never sees another's, and a contributor branch gets its
221 221 own namespace, so a branch nobody has vouched for cannot seed the cache a protected
222 branch builds into. The image is part of the key so a cache built with one
223 toolchain is not consumed by another.
222 branch builds into. A combined result derived from a contributor branch belongs to
223 that contributor's namespace for the same reason. The image is part of the key so a
224 cache built with one toolchain is not consumed by another.
224 225
225 226 Namespaces are evicted whole and least-recently-written first, so a cache is never
226 227 left half-deleted — a Go module cache missing one file is a checksum error deep in