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/workflows.md +14

@@ -50,6 +50,20 @@ When a push starts a job, Vole remembers the exact commit, the exact workflow
50 50 file, and the exact image definition. Editing any of them later does not change a
51 51 job that is already queued.
52 52
53 ## Combined results
54
55 A change request that cannot fast-forward needs a merge commit before it can land.
56 Vole builds that merge and runs the jobs that apply to the base branch against it,
57 so the tree that lands is the tree that was tested. The run is queued automatically
58 when the head is pushed, and again when the base moves for a request that is under
59 review or waiting to merge. It uses the workflow files at the merge, so a workflow
60 change on the base applies to the landing, and it does not deploy the repository's
61 site.
62
63 A combined result derived from a contributor branch is untrusted code. It runs only
64 after a maintainer allowed that exact head, and it uses the contributor's cache
65 namespace rather than the one a protected branch builds into.
66
53 67 ## Images
54 68
55 69 A job can name a registry image directly: