Skip to main content

Module queue_api

Module queue_api 

Source
Expand description

Driving the node’s merge queue from outside (D5, D68).

crate::Platform::run_proposal_queue is the round; this is how anybody asks for one. A single endpoint, POST /api/queue/run, and deliberately no timer: a node that spends CI on its own schedule surprises whoever pays for it, and a round that only a clock can start is a round no test can reach without waiting on one. An operator’s cron, a hook, or a person decides the cadence.

The queue’s trees are made here rather than by the operator, because the one contract that matters cannot be checked once it is wrong: the tree a round speculates in must share the served repository’s object store, or the log names merge commits git cannot see and crate::Platform::reconcile_git_refs compensates the whole round back out. A git worktree of the bare repo satisfies it by construction; a clone that looks identical does not.

Structs§

InFlight
The rounds currently running, by <repo>:<branch>.
QueueConfig
What a node needs before it can run a round.

Functions§

run
Runs one round for the target named in body, as JSON.