curl --request POST \
--url https://api.trunk.io/v1/getSubmittedPullRequest \
--header 'Content-Type: application/json' \
--header 'x-api-token: <api-key>' \
--data '
{
"repo": {
"host": "<string>",
"owner": "<string>",
"name": "<string>"
},
"targetBranch": "<string>",
"pr": {
"number": 2147483647
},
"includeTimeline": true
}
'import requests
url = "https://api.trunk.io/v1/getSubmittedPullRequest"
payload = {
"repo": {
"host": "<string>",
"owner": "<string>",
"name": "<string>"
},
"targetBranch": "<string>",
"pr": { "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>',
pr: {number: 2147483647},
includeTimeline: true
})
};
fetch('https://api.trunk.io/v1/getSubmittedPullRequest', 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/getSubmittedPullRequest",
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>',
'pr' => [
'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/getSubmittedPullRequest"
payload := strings.NewReader("{\n \"repo\": {\n \"host\": \"<string>\",\n \"owner\": \"<string>\",\n \"name\": \"<string>\"\n },\n \"targetBranch\": \"<string>\",\n \"pr\": {\n \"number\": 2147483647\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/getSubmittedPullRequest")
.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 \"pr\": {\n \"number\": 2147483647\n },\n \"includeTimeline\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.trunk.io/v1/getSubmittedPullRequest")
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 \"pr\": {\n \"number\": 2147483647\n },\n \"includeTimeline\": true\n}"
response = http.request(request)
puts response.read_body{
"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>"
}"<string>""<string>""<string>""<string>"Get a submitted pull request from a merge queue.
curl --request POST \
--url https://api.trunk.io/v1/getSubmittedPullRequest \
--header 'Content-Type: application/json' \
--header 'x-api-token: <api-key>' \
--data '
{
"repo": {
"host": "<string>",
"owner": "<string>",
"name": "<string>"
},
"targetBranch": "<string>",
"pr": {
"number": 2147483647
},
"includeTimeline": true
}
'import requests
url = "https://api.trunk.io/v1/getSubmittedPullRequest"
payload = {
"repo": {
"host": "<string>",
"owner": "<string>",
"name": "<string>"
},
"targetBranch": "<string>",
"pr": { "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>',
pr: {number: 2147483647},
includeTimeline: true
})
};
fetch('https://api.trunk.io/v1/getSubmittedPullRequest', 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/getSubmittedPullRequest",
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>',
'pr' => [
'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/getSubmittedPullRequest"
payload := strings.NewReader("{\n \"repo\": {\n \"host\": \"<string>\",\n \"owner\": \"<string>\",\n \"name\": \"<string>\"\n },\n \"targetBranch\": \"<string>\",\n \"pr\": {\n \"number\": 2147483647\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/getSubmittedPullRequest")
.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 \"pr\": {\n \"number\": 2147483647\n },\n \"includeTimeline\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.trunk.io/v1/getSubmittedPullRequest")
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 \"pr\": {\n \"number\": 2147483647\n },\n \"includeTimeline\": true\n}"
response = http.request(request)
puts response.read_body{
"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>"
}"<string>""<string>""<string>""<string>"Authorizations
Body
Show child attributes
Show child attributes
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
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
The merge queue test run that verified this pull request before it was merged. For an optimistically merged pull request, this is the test run of the pull request behind it whose passing caused the optimistic merge. Null if the pull request is not merged, or was merged without a verifying test run (e.g. force merged).
Show child attributes
Show child attributes
This queue entry's ID. It identifies the entry, not the pull request — a pull request resubmitted after a cancellation gets a new one.
The state of a pull request in the merge queue. See https://docs.trunk.io/merge-queue/using-the-queue/reference#pull-request-states for the full description of each state.
not_ready, pending, testing, tests_passed, merged, failed, cancelled, pending_failure Readiness signals for a pull request in the merge queue. A PR can start testing when doesBaseBranchMatch is true, gitHubMergeability is mergeable, and (when requiresImpactedTargets is true) hasImpactedTargets is true.
Show child attributes
Show child attributes
Present only when the request set includeTimeline.
Show child attributes
Show child attributes
Was this page helpful?