Merge base branch into workspace
curl --request POST \
--url https://api.diversion.dev/v0/repos/{repo_id}/workspaces/{workspace_id}/forward \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.diversion.dev/v0/repos/{repo_id}/workspaces/{workspace_id}/forward"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.diversion.dev/v0/repos/{repo_id}/workspaces/{workspace_id}/forward', 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}/forward",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
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}/workspaces/{workspace_id}/forward"
req, _ := http.NewRequest("POST", 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.post("https://api.diversion.dev/v0/repos/{repo_id}/workspaces/{workspace_id}/forward")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.diversion.dev/v0/repos/{repo_id}/workspaces/{workspace_id}/forward")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"merge_id": "example_id"
}Repository Workspace Manipulation
Merge base branch
Fast-forwards a workspace to incorporate the latest changes from its base branch.
Conflict handling: When explicitly requested by users, conflicts are created and returned as a merge ID for manual resolution. This ensures the workspace is up-to-date with the branch before committing.
Returns:
412 Precondition Failedif the workspace is detached503 Service Unavailableif a dependent service is unavailable202 Acceptedwith merge_id if conflicts occurred200 OKif changes were applied204 No Contentif already up-to-date
POST
/
repos
/
{repo_id}
/
workspaces
/
{workspace_id}
/
forward
Merge base branch into workspace
curl --request POST \
--url https://api.diversion.dev/v0/repos/{repo_id}/workspaces/{workspace_id}/forward \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.diversion.dev/v0/repos/{repo_id}/workspaces/{workspace_id}/forward"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.diversion.dev/v0/repos/{repo_id}/workspaces/{workspace_id}/forward', 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}/forward",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
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}/workspaces/{workspace_id}/forward"
req, _ := http.NewRequest("POST", 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.post("https://api.diversion.dev/v0/repos/{repo_id}/workspaces/{workspace_id}/forward")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.diversion.dev/v0/repos/{repo_id}/workspaces/{workspace_id}/forward")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"merge_id": "example_id"
}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"
Response
The merge into a workspace was completed successfully

