Class ApprovedRunAction

java.lang.Object
io.jenkins.plugins.batchcontrol.queue.ApprovedRunAction
All Implemented Interfaces:
Action, ModelObject, Queue.QueueAction

@Restricted(org.kohsuke.accmod.restrictions.NoExternalUse.class) public class ApprovedRunAction extends Object implements Action, Queue.QueueAction
Invisible marker action that authorizes exactly one queue submission for an approved run request (D-23). The marker itself carries only the request id; the queue gate (ApprovalQueueDecisionHandler) validates it against the stored request (status, target job, expiry) and atomically claims the request's single consumption ticket, so replaying the marker (re-queue, rebuild, another job) is always refused.

The action is persisted onto the executed Run, which is how the request id stays readable on the build afterwards.

security-26 S-26-01: it is a Queue.QueueAction that always asks for its own queue item, so Queue.scheduleInternal never folds an approved submission into an item of the same job that is already waiting (which would spend the ticket and lose the marker), and never folds another submission into it. This does not open a second run: every submission still passes the decision handlers first, and the gate claims the request's single consumption ticket there, so a second submission carrying the same marker is refused before this is asked.