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/workflows.md +4−3

@@ -531,9 +531,10 @@ instance (`pages_ref`), not by the workflow.
531 531 ## What happens to a queued workflow
532 532
533 533 Pushing again cancels queued runs for the commit it replaced. It never stops a run
534 that is already in progress; a maintainer can stop that one from its page, and the
535 runner stops at its next heartbeat. The attempt that comes back is kept as canceled.
536 Finished runs are stored in `data/runs.db`, not on the repository's `vole` branch.
534 that is already in progress; a maintainer can stop that one from its page or with
535 `vole run cancel <id>`, and the runner stops at its next heartbeat. The attempt that
536 comes back is kept as canceled. Finished runs are stored in `data/runs.db`, not on the
537 repository's `vole` branch.
537 538
538 539 For what happens when a runner disappears, how work is requeued, and how finished
539 540 history is rebuilt, see [Runners § Scheduling and the queue](runner.md#scheduling-and-the-queue).