<aside> ⚠️ This is an experimental v0 endpoint. While marked as experimental, this endpoint is considered stable and versioned and is meant to be backwards compatible. We’re actively collecting feedback on this endpoint and will be releasing v1 in the future.
</aside>
This API provides the results of a run into your CI/CD pipeline. This could be just for visibility, but often one would use the results to block (stop, rollback, or revert pending releases and environment promotions).
<aside>
ℹ️ We highly recommend using our JavaScript SDK pollCiGreenlightStatus
function directly. See @qawolf/ci-sdk
</aside>
/api/v0/ci-greenlight/[root-run-id]
HTTP Method: GET
curl -X GET -H "Authorization: Bearer $apiKey" \\
"<https://app.qawolf.com/api/v0/ci-greenlight/$rootRunId?outcomeWhenBlockingBugsInOtherWorkflows=red>"
Header Name | Header Value | Description |
---|---|---|
Authorization |
Bearer api_*** |
Provide a string constructed by appending your team API Key to Bearer . |
Parameter name | Allowed values | Description |
---|---|---|
outcomeWhenBlockingBugsInOtherWorkflows |
green or red |
EXPERIMENTAL! Defaults to green . |
When set to red , greenlight will be false when blocking bugs were found in the environment that were affecting workflows not executed in this run. |
<aside>
ℹ️ Those responses refer to the “run” terminology that is used in the UI, it is synonymous for “suite” in the deploy_success
webhook.
</aside>
The response looks like this:
{
"blockingBugsCount": 0,
"greenlight": true,
"nonBlockingBugsCount": 2,
"relevantRunId": "***",
"relevantRunUrl": "https://***",
"relevantRunWithBugsUrl": "https://***",
"rootRunId": "***",
"rootRunUrl": "https://***",
"runStage": "completed",
"workflowsDisabledAfterRunCount": 0,
"workflowsInRunCount": 50,
"workflowsUnderInvestigationCount": 0,
"reproducedBugs": [
{
"applicationUrl": "https://***",
"externalIssue": {
"applicationUrl": "https://***",
"externalIssueId": "***",
"platform": "linear"
},
"isBlocking": false,
"isNew": false,
"name": "Bug 1",
"number": 1,
"priority": "low"
},
{
"applicationUrl": "https://***",
"externalIssue": {
"applicationUrl": "https://***",
"externalIssueId": "***",
"platform": "linear"
},
"isBlocking": false,
"isNew": true,
"name": "Bug 2",
"number": 2,
"priority": "medium"
}
]
}
Field | Description |
---|---|
greenlight |
Indicates if the relevant run outcome signals safety to release. |
relevantRunId |
See Superseding Logic section below. |
relevantRunUrl |
The application URL to the relevant run. |
relevantRunWithBugsUrl |
The application URL to the relevant run, with workflows diagnosed as bug filtered out. |
rootRunId |
See Superseding Logic section below. |
rootRunUrl |
The application URL to the root run. |
runStage |
One of "initializing" , “underReview” , "completed" and "canceled" . See Run Stages section below. |
workflowsDisabledAfterRunCount |
Number of workflows disabled after the review process is completed. This may happen when runs are put under maintenance, but should be relatively rare. |
workflowsInRunCount |
Number of workflows in this run. |
workflowsUnderInvestigationCount |
Number of failed workflows requiring investigation. |
blockingBugsCount * |
The number of blocking bugs found or reproduced after review. Present only when runStage is "completed" . |
nonBlockingBugsCount * |
The number of non-blocking bugs found or reproduced after review. Present only when runStage is "completed" . |
blockingBugUrls * |
An array of URLs to observe all blocking bugs (string). |
nonBlockingBugUrls * |
An array of URLs to observe all non-blocking bugs (string). |
reproducedBugs * |
A list of detailed bug objects. |
"underReview"
and "completed"
run stages.