Create draft commit
curl --request POST \
--url https://api.diversion.dev/v0/repos/{repo_id}/workspaces/{workspace_id}/commit-draft \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"message": "<string>",
"title": "<string>",
"description": "<string>",
"reviewer_ids": [
"<string>"
],
"include_paths": [
"<string>"
]
}
'import requests
url = "https://api.diversion.dev/v0/repos/{repo_id}/workspaces/{workspace_id}/commit-draft"
payload = {
"message": "<string>",
"title": "<string>",
"description": "<string>",
"reviewer_ids": ["<string>"],
"include_paths": ["<string>"]
}
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({
message: '<string>',
title: '<string>',
description: '<string>',
reviewer_ids: ['<string>'],
include_paths: ['<string>']
})
};
fetch('https://api.diversion.dev/v0/repos/{repo_id}/workspaces/{workspace_id}/commit-draft', 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}/workspaces/{workspace_id}/commit-draft",
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([
'message' => '<string>',
'title' => '<string>',
'description' => '<string>',
'reviewer_ids' => [
'<string>'
],
'include_paths' => [
'<string>'
]
]),
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://api.diversion.dev/v0/repos/{repo_id}/workspaces/{workspace_id}/commit-draft"
payload := strings.NewReader("{\n \"message\": \"<string>\",\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"reviewer_ids\": [\n \"<string>\"\n ],\n \"include_paths\": [\n \"<string>\"\n ]\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://api.diversion.dev/v0/repos/{repo_id}/workspaces/{workspace_id}/commit-draft")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"message\": \"<string>\",\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"reviewer_ids\": [\n \"<string>\"\n ],\n \"include_paths\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.diversion.dev/v0/repos/{repo_id}/workspaces/{workspace_id}/commit-draft")
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 \"message\": \"<string>\",\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"reviewer_ids\": [\n \"<string>\"\n ],\n \"include_paths\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"review_id": "<string>"
}{
"status": 123,
"detail": "<string>",
"title": "<string>",
"type": "<string>"
}{
"status": 123,
"detail": "<string>",
"title": "<string>",
"type": "<string>"
}Repository Workspace Manipulation
Create draft commit
Create a draft commit from workspace changes, optionally with a review
POST
/
repos
/
{repo_id}
/
workspaces
/
{workspace_id}
/
commit-draft
Create draft commit
curl --request POST \
--url https://api.diversion.dev/v0/repos/{repo_id}/workspaces/{workspace_id}/commit-draft \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"message": "<string>",
"title": "<string>",
"description": "<string>",
"reviewer_ids": [
"<string>"
],
"include_paths": [
"<string>"
]
}
'import requests
url = "https://api.diversion.dev/v0/repos/{repo_id}/workspaces/{workspace_id}/commit-draft"
payload = {
"message": "<string>",
"title": "<string>",
"description": "<string>",
"reviewer_ids": ["<string>"],
"include_paths": ["<string>"]
}
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({
message: '<string>',
title: '<string>',
description: '<string>',
reviewer_ids: ['<string>'],
include_paths: ['<string>']
})
};
fetch('https://api.diversion.dev/v0/repos/{repo_id}/workspaces/{workspace_id}/commit-draft', 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}/workspaces/{workspace_id}/commit-draft",
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([
'message' => '<string>',
'title' => '<string>',
'description' => '<string>',
'reviewer_ids' => [
'<string>'
],
'include_paths' => [
'<string>'
]
]),
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://api.diversion.dev/v0/repos/{repo_id}/workspaces/{workspace_id}/commit-draft"
payload := strings.NewReader("{\n \"message\": \"<string>\",\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"reviewer_ids\": [\n \"<string>\"\n ],\n \"include_paths\": [\n \"<string>\"\n ]\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://api.diversion.dev/v0/repos/{repo_id}/workspaces/{workspace_id}/commit-draft")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"message\": \"<string>\",\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"reviewer_ids\": [\n \"<string>\"\n ],\n \"include_paths\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.diversion.dev/v0/repos/{repo_id}/workspaces/{workspace_id}/commit-draft")
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 \"message\": \"<string>\",\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"reviewer_ids\": [\n \"<string>\"\n ],\n \"include_paths\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"review_id": "<string>"
}{
"status": 123,
"detail": "<string>",
"title": "<string>",
"type": "<string>"
}{
"status": 123,
"detail": "<string>",
"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"
The repo ID of the workspace.
Required string length:
3 - 128Example:
"example_id"
Body
application/json
Commit message for the draft
Title for the review (defaults to message)
Description for the review
User IDs of reviewers to assign
Inclusion list of paths to include in the operation. If null, all paths will be included.
Minimum array length:
1A relative path to a file or directory inside the repository.
Minimum string length:
1Response
Draft commit created successfully
Associated review ID if created
⌘I

