Add a manual Web link or verified GitHub pull request to an issue
curl --request POST \
--url https://atollhq.com/api/orgs/{id}/issues/{issueId}/external-references \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"url": "<string>",
"provider": "github",
"object_type": "pull_request"
}
'import requests
url = "https://atollhq.com/api/orgs/{id}/issues/{issueId}/external-references"
payload = {
"url": "<string>",
"provider": "github",
"object_type": "pull_request"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({url: '<string>', provider: 'github', object_type: 'pull_request'})
};
fetch('https://atollhq.com/api/orgs/{id}/issues/{issueId}/external-references', 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://atollhq.com/api/orgs/{id}/issues/{issueId}/external-references",
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([
'url' => '<string>',
'provider' => 'github',
'object_type' => 'pull_request'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://atollhq.com/api/orgs/{id}/issues/{issueId}/external-references"
payload := strings.NewReader("{\n \"url\": \"<string>\",\n \"provider\": \"github\",\n \"object_type\": \"pull_request\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://atollhq.com/api/orgs/{id}/issues/{issueId}/external-references")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"url\": \"<string>\",\n \"provider\": \"github\",\n \"object_type\": \"pull_request\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://atollhq.com/api/orgs/{id}/issues/{issueId}/external-references")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"url\": \"<string>\",\n \"provider\": \"github\",\n \"object_type\": \"pull_request\"\n}"
response = http.request(request)
puts response.read_body{
"externalReference": {
"link_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"org_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"target_type": "issue",
"target_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"provider": "github",
"object_type": "pull_request",
"provider_object_id": "<string>",
"provider_container_id": "<string>",
"canonical_url": "<string>",
"display_metadata": {},
"provenance": "github_api",
"resolvable": true,
"resolution_error": "github_identity_unavailable",
"last_observed_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"linked_at": "2023-11-07T05:31:56Z"
}
}{
"error": "Unauthorized",
"code": "unauthorized"
}{
"error": "Unauthorized",
"code": "unauthorized"
}{
"error": "Unauthorized",
"code": "unauthorized"
}{
"error": "Unauthorized",
"code": "unauthorized"
}{
"error": "<string>",
"code": "github_identity_unavailable"
}{
"error": "Unauthorized",
"code": "unauthorized"
}Issues
Add a manual Web link or verified GitHub pull request to an issue
Requires edit or admin access to the current issue project, or eligible non-guest access for a projectless issue. Manual Web links require the explicit external_document/document selector pair and a safe HTTPS URL. Their content is not fetched or verified. GitHub links require an authorized live response with immutable numeric repository and pull-request IDs.
POST
/
api
/
orgs
/
{id}
/
issues
/
{issueId}
/
external-references
Add a manual Web link or verified GitHub pull request to an issue
curl --request POST \
--url https://atollhq.com/api/orgs/{id}/issues/{issueId}/external-references \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"url": "<string>",
"provider": "github",
"object_type": "pull_request"
}
'import requests
url = "https://atollhq.com/api/orgs/{id}/issues/{issueId}/external-references"
payload = {
"url": "<string>",
"provider": "github",
"object_type": "pull_request"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({url: '<string>', provider: 'github', object_type: 'pull_request'})
};
fetch('https://atollhq.com/api/orgs/{id}/issues/{issueId}/external-references', 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://atollhq.com/api/orgs/{id}/issues/{issueId}/external-references",
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([
'url' => '<string>',
'provider' => 'github',
'object_type' => 'pull_request'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://atollhq.com/api/orgs/{id}/issues/{issueId}/external-references"
payload := strings.NewReader("{\n \"url\": \"<string>\",\n \"provider\": \"github\",\n \"object_type\": \"pull_request\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://atollhq.com/api/orgs/{id}/issues/{issueId}/external-references")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"url\": \"<string>\",\n \"provider\": \"github\",\n \"object_type\": \"pull_request\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://atollhq.com/api/orgs/{id}/issues/{issueId}/external-references")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"url\": \"<string>\",\n \"provider\": \"github\",\n \"object_type\": \"pull_request\"\n}"
response = http.request(request)
puts response.read_body{
"externalReference": {
"link_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"org_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"target_type": "issue",
"target_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"provider": "github",
"object_type": "pull_request",
"provider_object_id": "<string>",
"provider_container_id": "<string>",
"canonical_url": "<string>",
"display_metadata": {},
"provenance": "github_api",
"resolvable": true,
"resolution_error": "github_identity_unavailable",
"last_observed_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"linked_at": "2023-11-07T05:31:56Z"
}
}{
"error": "Unauthorized",
"code": "unauthorized"
}{
"error": "Unauthorized",
"code": "unauthorized"
}{
"error": "Unauthorized",
"code": "unauthorized"
}{
"error": "Unauthorized",
"code": "unauthorized"
}{
"error": "<string>",
"code": "github_identity_unavailable"
}{
"error": "Unauthorized",
"code": "unauthorized"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Response
External reference linked
Canonical provider reference or manually supplied HTTPS URL. Manual links do not claim content, access, identity, or freshness verification.
Show child attributes
Show child attributes

