Get a list of all shelves in the repo.
curl --request GET \
--url https://api.diversion.dev/v0/repos/{repo_id}/shelves \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.diversion.dev/v0/repos/{repo_id}/shelves"
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}/shelves', 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}/shelves",
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}/shelves"
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}/shelves")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.diversion.dev/v0/repos/{repo_id}/shelves")
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": "Shelf",
"items": [
{
"id": "<string>",
"name": "<string>",
"created_timestamp": 123,
"branch_id": "<string>"
}
]
}{
"status": 403,
"detail": "User not authorized to perform the requested action on the resource",
"title": "<string>",
"type": "<string>"
}Repository Shelves Manipulation
List shelves
Lists all shelves (saved workspace states) for the current user in a repository, optionally filtered by branch_id parameter.
Each shelf includes:
- ID
- Name
- Creation timestamp
- Associated branch and commit IDs
About shelves: Shelves allow users to temporarily save uncommitted changes for later reapplication.
Requirements: Requires READ access to the repository.
GET
/
repos
/
{repo_id}
/
shelves
Get a list of all shelves in the repo.
curl --request GET \
--url https://api.diversion.dev/v0/repos/{repo_id}/shelves \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.diversion.dev/v0/repos/{repo_id}/shelves"
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}/shelves', 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}/shelves",
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}/shelves"
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}/shelves")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.diversion.dev/v0/repos/{repo_id}/shelves")
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": "Shelf",
"items": [
{
"id": "<string>",
"name": "<string>",
"created_timestamp": 123,
"branch_id": "<string>"
}
]
}{
"status": 403,
"detail": "User not authorized to perform the requested action on the resource",
"title": "<string>",
"type": "<string>"
}Authorizations
OAuth2OAuth2
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
Optional branch id to filter by

