Compare two refs (commit/branch/workspace/tag/tree) in this repo
curl --request GET \
--url https://api.diversion.dev/v0/repos/{repo_id}/compare \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.diversion.dev/v0/repos/{repo_id}/compare"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.diversion.dev/v0/repos/{repo_id}/compare', 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.diversion.dev/v0/repos/{repo_id}/compare",
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.diversion.dev/v0/repos/{repo_id}/compare"
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.diversion.dev/v0/repos/{repo_id}/compare")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.diversion.dev/v0/repos/{repo_id}/compare")
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{
"object": "ComparisonItem",
"items": [
{
"status": 1,
"base_item": {
"path": "hello.cc",
"status": 1,
"mode": 16877,
"prev_path": "<string>",
"mtime": "2023-11-07T05:31:56Z",
"blob": {
"storage_uri": "repo_id/2aae6c35c94fcfb415dbe95f408b9ce91ee846ed",
"storage_backend": 1,
"size": 123,
"sha": "<string>"
}
},
"other_item": {
"path": "hello.cc",
"status": 1,
"mode": 16877,
"prev_path": "<string>",
"mtime": "2023-11-07T05:31:56Z",
"blob": {
"storage_uri": "repo_id/2aae6c35c94fcfb415dbe95f408b9ce91ee846ed",
"storage_backend": 1,
"size": 123,
"sha": "<string>"
}
}
}
],
"cascaded_changes_count": 123
}Repository Content Comparison
Compare refs
Compare two refs (commit/branch/workspace/tag/tree) in this repo
GET
/
repos
/
{repo_id}
/
compare
Compare two refs (commit/branch/workspace/tag/tree) in this repo
curl --request GET \
--url https://api.diversion.dev/v0/repos/{repo_id}/compare \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.diversion.dev/v0/repos/{repo_id}/compare"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.diversion.dev/v0/repos/{repo_id}/compare', 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.diversion.dev/v0/repos/{repo_id}/compare",
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.diversion.dev/v0/repos/{repo_id}/compare"
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.diversion.dev/v0/repos/{repo_id}/compare")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.diversion.dev/v0/repos/{repo_id}/compare")
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{
"object": "ComparisonItem",
"items": [
{
"status": 1,
"base_item": {
"path": "hello.cc",
"status": 1,
"mode": 16877,
"prev_path": "<string>",
"mtime": "2023-11-07T05:31:56Z",
"blob": {
"storage_uri": "repo_id/2aae6c35c94fcfb415dbe95f408b9ce91ee846ed",
"storage_backend": 1,
"size": 123,
"sha": "<string>"
}
},
"other_item": {
"path": "hello.cc",
"status": 1,
"mode": 16877,
"prev_path": "<string>",
"mtime": "2023-11-07T05:31:56Z",
"blob": {
"storage_uri": "repo_id/2aae6c35c94fcfb415dbe95f408b9ce91ee846ed",
"storage_backend": 1,
"size": 123,
"sha": "<string>"
}
}
}
],
"cascaded_changes_count": 123
}Authorizations
This API uses OAuth 2 with the implicit grant flow
Path Parameters
The repo ID of the repository. Repo name can be used instead of the ID, but usage of ID for permanent linking and API requests is preferred.
Required string length:
3 - 128Example:
"example_id"
Query Parameters
A workspace_id, branch_id, commit_id or tag_id. If omitted, assuming the empty tree, unless other_id is a workspace, in which case base_id is assumed to be the workspace base ref.
Maximum string length:
128A reference to a source version from which changes will be taken
Required string length:
3 - 128Example:
"example_id"

