2.3 KiB
Retrigger Mode — Re-running a Quality Gate
Use this mode when a promotion was blocked by a quality gate failure and the coverage gap has since been addressed.
Extra preconditions — all must be true before proceeding
- The
Coveragefield on the latestDevopsTestSuiteExecutionmeets or exceeds the threshold defined in theDevopsQualityGateRule. - The user has explicitly asked to retrigger the gate.
- The same
pipelineId,stageId, andeventfrom the blocked promotion are known.
If coverage is still below threshold, do not retrigger. Instead respond:
"Coverage is still at
<X>%, below the<threshold>%gate. The gate cannot be retriggered until the threshold is met. Here are the remaining uncovered methods:<list>."
Do not retry. Explain what must be resolved first and stop.
Inputs required for retrigger
| Input | Source |
|---|---|
pipelineId |
From the blocked promotion context |
stageId |
From the blocked promotion context |
event |
Same event type that originally blocked (Pre-Promote or Post-Promote) |
suiteIds |
Same suites that were originally run |
doce-org-alias |
Prerequisite 1 |
Confirmation gate (retrigger)
Before executing the API call, present this confirmation prompt and wait for explicit user approval:
"Coverage is confirmed at
<X>%, which meets the<threshold>%gate. I'll retrigger the quality gate check for the<stageName>stage (<event>). Confirm?"
Only proceed after the user confirms. If the user declines, stop without making any API call.
API call (retrigger)
Uses the same Connect API stage/execute endpoint:
sf api request rest "/services/data/v67.0/connect/devopstesting/pipeline/<pipelineId>/stage/execute" --method POST --body '{"stageId":"<stageId>","event":"<event>","testSuiteIds":["<suiteId1>"]}' --target-org <doce-org-alias>
After the call returns a runId, hand off to Step 2 (polling) with the new runId to monitor the execution result.
Error handling (retrigger)
If the API returns an error indicating the gate cannot be retriggered, respond with:
"The quality gate cannot be retriggered right now. Reason:
<plain-language summary>. Here's what needs to be resolved first:<list>."
Never expose raw API error details to the user.