Get a pull request's merge box and checks
curl --request GET \
--url https://api.runaether.dev/pull-requests/{pullRequestID}/github/pr \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.runaether.dev/pull-requests/{pullRequestID}/github/pr"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.runaether.dev/pull-requests/{pullRequestID}/github/pr', 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.runaether.dev/pull-requests/{pullRequestID}/github/pr",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.runaether.dev/pull-requests/{pullRequestID}/github/pr"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.runaether.dev/pull-requests/{pullRequestID}/github/pr")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.runaether.dev/pull-requests/{pullRequestID}/github/pr")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"checks": [
{
"check_run_id": 4503599627370495,
"name": "<string>",
"status": "<string>",
"summary_truncated": true,
"completed_at": "2023-11-07T05:31:56Z",
"conclusion": "<string>",
"details_url": "<string>",
"started_at": "2023-11-07T05:31:56Z",
"summary": "<string>"
}
],
"merge_box": {
"additions": 1,
"checks_failed": 1,
"checks_passed": 1,
"checks_total": 1,
"deletions": 1,
"head_sha": "<string>",
"html_url": "<string>",
"pr_number": 2,
"title": "<string>",
"base_branch": "<string>",
"ci_status": "pending",
"head_branch": "<string>",
"mergeable_state": "clean",
"merged_at": "2023-11-07T05:31:56Z",
"stack_children": [
{
"html_url": "<string>",
"pr_number": 2,
"pull_request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"state": "open",
"title": "<string>"
}
],
"stack_parent": {
"html_url": "<string>",
"pr_number": 2,
"pull_request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"state": "open",
"title": "<string>"
},
"state": "open"
},
"reviews": [
{
"author_is_bot": true,
"author_login": "<string>",
"body": "<string>",
"github_review_id": 4503599627370496,
"html_url": "<string>",
"state": "<string>",
"submitted_at": "2023-11-07T05:31:56Z"
}
]
}{
"error": "<string>",
"code": "<string>",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
]
}{
"error": "<string>",
"code": "<string>",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
]
}{
"error": "<string>",
"code": "<string>",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
]
}{
"error": "<string>",
"code": "<string>",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
]
}{
"error": "<string>",
"code": "<string>",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
]
}{
"error": "<string>",
"code": "<string>",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
]
}{
"error": "<string>",
"code": "<string>",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
]
}Pull Requests
Get a pull request's merge box and checks
The merge box comes from the pull request mirror; ci_status, the check counts and the checks list come from the check-run mirror at the mirrored head, which the check_run webhooks keep current, so both halves of one response agree. Requires membership in the owning organization of a task linked to this pull request — the task that published it or a task that reviewed it — and current GitHub access to the repository. 404 covers an unknown pull request, one linked to no organization the caller belongs to, and one whose GitHub access the caller has lost; the three are deliberately indistinguishable.
GET
/
pull-requests
/
{pullRequestID}
/
github
/
pr
Get a pull request's merge box and checks
curl --request GET \
--url https://api.runaether.dev/pull-requests/{pullRequestID}/github/pr \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.runaether.dev/pull-requests/{pullRequestID}/github/pr"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.runaether.dev/pull-requests/{pullRequestID}/github/pr', 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.runaether.dev/pull-requests/{pullRequestID}/github/pr",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.runaether.dev/pull-requests/{pullRequestID}/github/pr"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.runaether.dev/pull-requests/{pullRequestID}/github/pr")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.runaether.dev/pull-requests/{pullRequestID}/github/pr")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"checks": [
{
"check_run_id": 4503599627370495,
"name": "<string>",
"status": "<string>",
"summary_truncated": true,
"completed_at": "2023-11-07T05:31:56Z",
"conclusion": "<string>",
"details_url": "<string>",
"started_at": "2023-11-07T05:31:56Z",
"summary": "<string>"
}
],
"merge_box": {
"additions": 1,
"checks_failed": 1,
"checks_passed": 1,
"checks_total": 1,
"deletions": 1,
"head_sha": "<string>",
"html_url": "<string>",
"pr_number": 2,
"title": "<string>",
"base_branch": "<string>",
"ci_status": "pending",
"head_branch": "<string>",
"mergeable_state": "clean",
"merged_at": "2023-11-07T05:31:56Z",
"stack_children": [
{
"html_url": "<string>",
"pr_number": 2,
"pull_request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"state": "open",
"title": "<string>"
}
],
"stack_parent": {
"html_url": "<string>",
"pr_number": 2,
"pull_request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"state": "open",
"title": "<string>"
},
"state": "open"
},
"reviews": [
{
"author_is_bot": true,
"author_login": "<string>",
"body": "<string>",
"github_review_id": 4503599627370496,
"html_url": "<string>",
"state": "<string>",
"submitted_at": "2023-11-07T05:31:56Z"
}
]
}{
"error": "<string>",
"code": "<string>",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
]
}{
"error": "<string>",
"code": "<string>",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
]
}{
"error": "<string>",
"code": "<string>",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
]
}{
"error": "<string>",
"code": "<string>",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
]
}{
"error": "<string>",
"code": "<string>",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
]
}{
"error": "<string>",
"code": "<string>",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
]
}{
"error": "<string>",
"code": "<string>",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.