Get Merge Targets
curl --request GET \
--url https://api.example.com/api/tasks/{task_id}/prs/{pr_id}/merge-targetsimport requests
url = "https://api.example.com/api/tasks/{task_id}/prs/{pr_id}/merge-targets"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/api/tasks/{task_id}/prs/{pr_id}/merge-targets', 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.example.com/api/tasks/{task_id}/prs/{pr_id}/merge-targets",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/tasks/{task_id}/prs/{pr_id}/merge-targets"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/api/tasks/{task_id}/prs/{pr_id}/merge-targets")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/tasks/{task_id}/prs/{pr_id}/merge-targets")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"pr_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"in_progress_target": "<string>",
"last_error": "<string>",
"targets": []
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"ctx": {},
"input": "<unknown>"
}
]
}Pull Requests & Deploys
Get Merge Targets
Which merge targets this PR can land on right now, and why not.
Production is gated on git ancestry (staging must already contain every commit on the PR’s head branch), which costs a GitHub compare call — so this is a separate endpoint the widget hits when the user opens the Merge & Deploy menu, not part of every task poll.
GET
/
api
/
tasks
/
{task_id}
/
prs
/
{pr_id}
/
merge-targets
Get Merge Targets
curl --request GET \
--url https://api.example.com/api/tasks/{task_id}/prs/{pr_id}/merge-targetsimport requests
url = "https://api.example.com/api/tasks/{task_id}/prs/{pr_id}/merge-targets"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/api/tasks/{task_id}/prs/{pr_id}/merge-targets', 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.example.com/api/tasks/{task_id}/prs/{pr_id}/merge-targets",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/tasks/{task_id}/prs/{pr_id}/merge-targets"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/api/tasks/{task_id}/prs/{pr_id}/merge-targets")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/tasks/{task_id}/prs/{pr_id}/merge-targets")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"pr_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"in_progress_target": "<string>",
"last_error": "<string>",
"targets": []
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"ctx": {},
"input": "<unknown>"
}
]
}