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.

Let the CLI cancel a run, not only the browser

deb024d49d894a5a51b1a5bdc07e66c672f113ab · Keenan Nemetz · 6d ago · parent 0c14f078

Let the CLI cancel a run, not only the browser

#168 promised the same account the same actions through either transport, and
canceling a running run had just become a browser-only action. The queue is
instance-side, so the CLI asks over the key it already pushes with:
`vole run cancel <id>` retires a queued run or asks a running one to stop, checks
the same maintainer capability the page checks, and writes the same audit record.
The server verb takes one repository and one run id and answers one line; the id
is the 26-character one in the run page URL.

The audit action is now `run.cancel` for both transports, because it is the same
action: an operator looking for canceled runs should not have to know which
surface asked.

Part of #162.

docs/runner.md +4−4

@@ -363,10 +363,10 @@ How the queue behaves:
363 363 compares each branch and tag with the last tip it queued, so a missed
364 364 notification still produces a run.
365 365 - Pushing again cancels queued runs for the commit it replaced. It never stops a run
366 that is already in progress. A maintainer can stop one from its page: the queue
367 records the request, the runner sees it on its next heartbeat, stops the container,
368 and reports the partial attempt. The run stays `canceled` rather than becoming a
369 failure, and its page says who asked.
366 that is already in progress. A maintainer can stop one from its page or with
367 `vole run cancel <id>`: the queue records the request, the runner sees it on its next
368 heartbeat, stops the container, and reports the partial attempt. The run stays
369 `canceled` rather than becoming a failure, and its page says who asked.
370 370 - If a runner disappears, its job is requeued. After five attempts the job fails
371 371 instead of cycling forever.
372 372 - Deleting `data/runs.db` loses CI history and attempts that were in flight. Current