Get object history in a ref by its latest path
curl --request GET \
--url https://api.diversion.dev/v0/repos/{repo_id}/files/history/{ref_id}/{path} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.diversion.dev/v0/repos/{repo_id}/files/history/{ref_id}/{path}"
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}/files/history/{ref_id}/{path}', 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}/files/history/{ref_id}/{path}",
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}/files/history/{ref_id}/{path}"
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}/files/history/{ref_id}/{path}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.diversion.dev/v0/repos/{repo_id}/files/history/{ref_id}/{path}")
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{
"entries": [
{
"entry": {
"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>"
}
},
"commit": {
"commit_id": "example_id",
"created_ts": 123,
"branch_id": "<string>",
"author": {
"id": "<string>",
"image": "<string>",
"email": "jsmith@example.com",
"full_name": "<string>",
"name": "<string>"
},
"parents": [
"<string>"
],
"commit_message": "<string>"
}
}
]
}{
"status": 403,
"detail": "User not authorized to perform the requested action on the resource",
"title": "<string>",
"type": "<string>"
}{
"status": 403,
"detail": "User not authorized to perform the requested action on the resource",
"title": "<string>",
"type": "<string>"
}Repository Manipulation
Get file history
Retrieves the complete change history for a specific file or directory path from a given reference (branch or commit).
Returns: A list of commits that modified the path, with each entry containing:
- Commit details
- File entry state at that commit
Features:
- Supports pagination via optional
limitandskipparameters
Requirements: Requires READ access to the repository.
GET
/
repos
/
{repo_id}
/
files
/
history
/
{ref_id}
/
{path}
Get object history in a ref by its latest path
curl --request GET \
--url https://api.diversion.dev/v0/repos/{repo_id}/files/history/{ref_id}/{path} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.diversion.dev/v0/repos/{repo_id}/files/history/{ref_id}/{path}"
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}/files/history/{ref_id}/{path}', 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}/files/history/{ref_id}/{path}",
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}/files/history/{ref_id}/{path}"
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}/files/history/{ref_id}/{path}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.diversion.dev/v0/repos/{repo_id}/files/history/{ref_id}/{path}")
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{
"entries": [
{
"entry": {
"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>"
}
},
"commit": {
"commit_id": "example_id",
"created_ts": 123,
"branch_id": "<string>",
"author": {
"id": "<string>",
"image": "<string>",
"email": "jsmith@example.com",
"full_name": "<string>",
"name": "<string>"
},
"parents": [
"<string>"
],
"commit_message": "<string>"
}
}
]
}{
"status": 403,
"detail": "User not authorized to perform the requested action on the resource",
"title": "<string>",
"type": "<string>"
}{
"status": 403,
"detail": "User not authorized to perform the requested action on the resource",
"title": "<string>",
"type": "<string>"
}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"
An ID of a workspace, branch or commit.
Required string length:
3 - 128Example:
"example_id"
A path to a file inside the repository.
Example:
"/path/to/file"
Query Parameters
Limit the number or items returned from a listing api
Required range:
x >= 1Example:
17
Skip a number of items returned from a listing api
Required range:
x >= 0Example:
17
Response
List of changes in the history of a versioned file
Show child attributes
Show child attributes

