curl --request POST \
--url https://api.trunk.io/v1/getSubmittedPullRequests \
--header 'Content-Type: application/json' \
--header 'x-api-token: <api-key>' \
--data '
{
"repo": {
"host": "<string>",
"owner": "<string>",
"name": "<string>"
},
"targetBranch": "<string>",
"prs": [
{
"number": 2147483647
}
],
"includeTimeline": true
}
'import requests
url = "https://api.trunk.io/v1/getSubmittedPullRequests"
payload = {
"repo": {
"host": "<string>",
"owner": "<string>",
"name": "<string>"
},
"targetBranch": "<string>",
"prs": [{ "number": 2147483647 }],
"includeTimeline": True
}
headers = {
"x-api-token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
repo: {host: '<string>', owner: '<string>', name: '<string>'},
targetBranch: '<string>',
prs: [{number: 2147483647}],
includeTimeline: true
})
};
fetch('https://api.trunk.io/v1/getSubmittedPullRequests', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.trunk.io/v1/getSubmittedPullRequests",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'repo' => [
'host' => '<string>',
'owner' => '<string>',
'name' => '<string>'
],
'targetBranch' => '<string>',
'prs' => [
[
'number' => 2147483647
]
],
'includeTimeline' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.trunk.io/v1/getSubmittedPullRequests"
payload := strings.NewReader("{\n \"repo\": {\n \"host\": \"<string>\",\n \"owner\": \"<string>\",\n \"name\": \"<string>\"\n },\n \"targetBranch\": \"<string>\",\n \"prs\": [\n {\n \"number\": 2147483647\n }\n ],\n \"includeTimeline\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.trunk.io/v1/getSubmittedPullRequests")
.header("x-api-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"repo\": {\n \"host\": \"<string>\",\n \"owner\": \"<string>\",\n \"name\": \"<string>\"\n },\n \"targetBranch\": \"<string>\",\n \"prs\": [\n {\n \"number\": 2147483647\n }\n ],\n \"includeTimeline\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.trunk.io/v1/getSubmittedPullRequests")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"repo\": {\n \"host\": \"<string>\",\n \"owner\": \"<string>\",\n \"name\": \"<string>\"\n },\n \"targetBranch\": \"<string>\",\n \"prs\": [\n {\n \"number\": 2147483647\n }\n ],\n \"includeTimeline\": true\n}"
response = http.request(request)
puts response.read_body{
"pullRequests": [
{
"stateChangedAt": "<string>",
"priorityValue": 123,
"priorityName": "<string>",
"skipTheLine": true,
"forceEnqueued": true,
"isCurrentlySubmittedToQueue": true,
"prNumber": 123,
"prTitle": "<string>",
"prSha": "<string>",
"prBaseBranch": "<string>",
"prAuthor": "<string>",
"verifiedByTestRun": {
"testRunId": "<string>",
"testBranchSha": "<string>"
},
"id": "<string>",
"state": "not_ready",
"readiness": {
"requiresImpactedTargets": true,
"doesBaseBranchMatch": true,
"gitHubMergeability": "unspecified",
"hasImpactedTargets": true
},
"timeline": [
{
"state": "not_ready",
"timestamp": "2023-11-07T05:31:56Z",
"testRun": {
"testBranch": "<string>",
"testBranchSha": "<string>",
"requiredStatuses": [
"<string>"
],
"testedPullRequests": [
{
"prNumber": 123,
"prUrl": "<string>",
"title": "<string>",
"state": "not_ready"
}
],
"testRunId": "<string>",
"prNumber": 123,
"prUrl": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"status": "in_progress",
"requiredStatusesSource": "trunk_config"
},
"notReady": {
"reason": "user_requested",
"actor": {
"gitHubLogin": "<string>",
"trunkUserId": "<string>"
},
"priorityValue": 123,
"priorityName": "<string>",
"noBatch": true
},
"pending": {
"prerequisitePullRequests": [
{
"prNumber": 123,
"prUrl": "<string>",
"title": "<string>",
"state": "not_ready"
}
],
"reason": "manual_push_to_target_branch",
"actor": {
"gitHubLogin": "<string>",
"trunkUserId": "<string>"
},
"priorityValue": 123,
"priorityName": "<string>",
"usedDefaultPriorityName": "<string>"
},
"testsPassed": {
"testBranchSha": "<string>",
"testBranchUrl": "<string>",
"batchSize": 123,
"otherTestedPullRequests": [
{
"prNumber": 123,
"prUrl": "<string>",
"title": "<string>",
"state": "not_ready"
}
],
"waitingFor": [
{
"prNumber": 123,
"prUrl": "<string>",
"title": "<string>",
"state": "not_ready"
}
],
"reason": "test_run_passed",
"testRunId": "<string>",
"bisectionId": "<string>",
"successorMergeItemId": "<string>"
},
"pendingFailure": {
"waitingFor": [
{
"prNumber": 123,
"prUrl": "<string>",
"title": "<string>",
"state": "not_ready"
}
],
"failureCausingStatuses": [
{
"name": "<string>",
"url": "<string>",
"conclusion": "<string>"
}
],
"eventualFailureReason": "start_test_run_invalid_event"
},
"failure": {
"failureCausingStatuses": [
{
"name": "<string>",
"url": "<string>",
"conclusion": "<string>"
}
],
"blockReasons": [
{
"kind": "<string>",
"have": 123,
"need": 123,
"check": "<string>",
"status": "<string>",
"state": "<string>",
"ontoPrNumber": 123
}
],
"reason": "start_test_run_invalid_event",
"apiFailureMessage": "<string>",
"conflictCulprit": {
"type": "queue_pr",
"prNumber": 123,
"prUrl": "<string>",
"sha": "<string>"
}
},
"cancellation": {
"reason": "user_requested",
"actor": {
"gitHubLogin": "<string>",
"trunkUserId": "<string>"
}
},
"merged": {
"reason": "merge_graph_merge",
"actor": {
"gitHubLogin": "<string>",
"trunkUserId": "<string>"
}
}
}
],
"usedDefaultPriorityName": "<string>"
}
],
"notFound": [
{
"number": 2147483647
}
]
}"<string>""<string>""<string>""<string>"Get several submitted pull requests from a merge queue.
The batch form of getSubmittedPullRequest, for building a view over many pull requests at once. Every pull request must be in the same repository and queue. Pull requests that were never submitted to the queue are reported in notFound rather than failing the request.
curl --request POST \
--url https://api.trunk.io/v1/getSubmittedPullRequests \
--header 'Content-Type: application/json' \
--header 'x-api-token: <api-key>' \
--data '
{
"repo": {
"host": "<string>",
"owner": "<string>",
"name": "<string>"
},
"targetBranch": "<string>",
"prs": [
{
"number": 2147483647
}
],
"includeTimeline": true
}
'import requests
url = "https://api.trunk.io/v1/getSubmittedPullRequests"
payload = {
"repo": {
"host": "<string>",
"owner": "<string>",
"name": "<string>"
},
"targetBranch": "<string>",
"prs": [{ "number": 2147483647 }],
"includeTimeline": True
}
headers = {
"x-api-token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
repo: {host: '<string>', owner: '<string>', name: '<string>'},
targetBranch: '<string>',
prs: [{number: 2147483647}],
includeTimeline: true
})
};
fetch('https://api.trunk.io/v1/getSubmittedPullRequests', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.trunk.io/v1/getSubmittedPullRequests",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'repo' => [
'host' => '<string>',
'owner' => '<string>',
'name' => '<string>'
],
'targetBranch' => '<string>',
'prs' => [
[
'number' => 2147483647
]
],
'includeTimeline' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.trunk.io/v1/getSubmittedPullRequests"
payload := strings.NewReader("{\n \"repo\": {\n \"host\": \"<string>\",\n \"owner\": \"<string>\",\n \"name\": \"<string>\"\n },\n \"targetBranch\": \"<string>\",\n \"prs\": [\n {\n \"number\": 2147483647\n }\n ],\n \"includeTimeline\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.trunk.io/v1/getSubmittedPullRequests")
.header("x-api-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"repo\": {\n \"host\": \"<string>\",\n \"owner\": \"<string>\",\n \"name\": \"<string>\"\n },\n \"targetBranch\": \"<string>\",\n \"prs\": [\n {\n \"number\": 2147483647\n }\n ],\n \"includeTimeline\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.trunk.io/v1/getSubmittedPullRequests")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"repo\": {\n \"host\": \"<string>\",\n \"owner\": \"<string>\",\n \"name\": \"<string>\"\n },\n \"targetBranch\": \"<string>\",\n \"prs\": [\n {\n \"number\": 2147483647\n }\n ],\n \"includeTimeline\": true\n}"
response = http.request(request)
puts response.read_body{
"pullRequests": [
{
"stateChangedAt": "<string>",
"priorityValue": 123,
"priorityName": "<string>",
"skipTheLine": true,
"forceEnqueued": true,
"isCurrentlySubmittedToQueue": true,
"prNumber": 123,
"prTitle": "<string>",
"prSha": "<string>",
"prBaseBranch": "<string>",
"prAuthor": "<string>",
"verifiedByTestRun": {
"testRunId": "<string>",
"testBranchSha": "<string>"
},
"id": "<string>",
"state": "not_ready",
"readiness": {
"requiresImpactedTargets": true,
"doesBaseBranchMatch": true,
"gitHubMergeability": "unspecified",
"hasImpactedTargets": true
},
"timeline": [
{
"state": "not_ready",
"timestamp": "2023-11-07T05:31:56Z",
"testRun": {
"testBranch": "<string>",
"testBranchSha": "<string>",
"requiredStatuses": [
"<string>"
],
"testedPullRequests": [
{
"prNumber": 123,
"prUrl": "<string>",
"title": "<string>",
"state": "not_ready"
}
],
"testRunId": "<string>",
"prNumber": 123,
"prUrl": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"status": "in_progress",
"requiredStatusesSource": "trunk_config"
},
"notReady": {
"reason": "user_requested",
"actor": {
"gitHubLogin": "<string>",
"trunkUserId": "<string>"
},
"priorityValue": 123,
"priorityName": "<string>",
"noBatch": true
},
"pending": {
"prerequisitePullRequests": [
{
"prNumber": 123,
"prUrl": "<string>",
"title": "<string>",
"state": "not_ready"
}
],
"reason": "manual_push_to_target_branch",
"actor": {
"gitHubLogin": "<string>",
"trunkUserId": "<string>"
},
"priorityValue": 123,
"priorityName": "<string>",
"usedDefaultPriorityName": "<string>"
},
"testsPassed": {
"testBranchSha": "<string>",
"testBranchUrl": "<string>",
"batchSize": 123,
"otherTestedPullRequests": [
{
"prNumber": 123,
"prUrl": "<string>",
"title": "<string>",
"state": "not_ready"
}
],
"waitingFor": [
{
"prNumber": 123,
"prUrl": "<string>",
"title": "<string>",
"state": "not_ready"
}
],
"reason": "test_run_passed",
"testRunId": "<string>",
"bisectionId": "<string>",
"successorMergeItemId": "<string>"
},
"pendingFailure": {
"waitingFor": [
{
"prNumber": 123,
"prUrl": "<string>",
"title": "<string>",
"state": "not_ready"
}
],
"failureCausingStatuses": [
{
"name": "<string>",
"url": "<string>",
"conclusion": "<string>"
}
],
"eventualFailureReason": "start_test_run_invalid_event"
},
"failure": {
"failureCausingStatuses": [
{
"name": "<string>",
"url": "<string>",
"conclusion": "<string>"
}
],
"blockReasons": [
{
"kind": "<string>",
"have": 123,
"need": 123,
"check": "<string>",
"status": "<string>",
"state": "<string>",
"ontoPrNumber": 123
}
],
"reason": "start_test_run_invalid_event",
"apiFailureMessage": "<string>",
"conflictCulprit": {
"type": "queue_pr",
"prNumber": 123,
"prUrl": "<string>",
"sha": "<string>"
}
},
"cancellation": {
"reason": "user_requested",
"actor": {
"gitHubLogin": "<string>",
"trunkUserId": "<string>"
}
},
"merged": {
"reason": "merge_graph_merge",
"actor": {
"gitHubLogin": "<string>",
"trunkUserId": "<string>"
}
}
}
],
"usedDefaultPriorityName": "<string>"
}
],
"notFound": [
{
"number": 2147483647
}
]
}"<string>""<string>""<string>""<string>"Authorizations
Body
Show child attributes
Show child attributes
The pull requests to look up, at most 50 per request. Each is identified the same way as in getSubmittedPullRequest.
1 - 50 elementsThe pull request to look up. Identify it by number or by head branch, but not both.
- By pull request number
- By head branch
Show child attributes
Show child attributes
When true, the response carries timeline: every state change the pull request went through, with timestamps and the details of each. Defaults to false.
Response
OK
One entry per requested pull request that has been submitted to this queue, in the order requested. Pull requests that were not found are omitted here and listed in notFound instead, so this array can be shorter than prs. To line entries up with what you asked for, drop the prs entries echoed in notFound; what remains corresponds to this array position for position. Entries requested by number can also be matched on prNumber.
Show child attributes
Show child attributes
The requested pull requests that have never been submitted to this queue, echoed back one per entry of prs that missed. A whole request fails only when the repository or queue itself is not found.
The pull request to look up. Identify it by number or by head branch, but not both.
- By pull request number
- By head branch
Show child attributes
Show child attributes
Was this page helpful?