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.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanshouldSchedule(List<Action> actions) Always a separate queue item (S-26-01).Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface hudson.model.Action
getDescription, getEvent, getGroup, getSemantic, isVisibleInContextMenu
-
Constructor Details
-
ApprovedRunAction
-
-
Method Details
-
getRequestId
-
getIconFileName
- Specified by:
getIconFileNamein interfaceAction
-
getDisplayName
- Specified by:
getDisplayNamein interfaceAction- Specified by:
getDisplayNamein interfaceModelObject
-
getUrlName
- Specified by:
getUrlNamein interfaceAction
-
shouldSchedule
Always a separate queue item (S-26-01).- Specified by:
shouldSchedulein interfaceQueue.QueueAction
-