curl --request POST \
--url https://api.eda.prisme.ai/v2/workspaces/platform/versions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"groups": [
"<string>"
],
"repository": {
"id": "<string>"
},
"name": "<string>",
"createdAt": "<string>",
"description": {
"fr": "Bonjour",
"en": "Hello"
},
"dryRun": false,
"force": false
}
'import requests
url = "https://api.eda.prisme.ai/v2/workspaces/platform/versions"
payload = {
"groups": ["<string>"],
"repository": { "id": "<string>" },
"name": "<string>",
"createdAt": "<string>",
"description": {
"fr": "Bonjour",
"en": "Hello"
},
"dryRun": False,
"force": False
}
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({
groups: ['<string>'],
repository: {id: '<string>'},
name: '<string>',
createdAt: '<string>',
description: {fr: 'Bonjour', en: 'Hello'},
dryRun: false,
force: false
})
};
fetch('https://api.eda.prisme.ai/v2/workspaces/platform/versions', 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.eda.prisme.ai/v2/workspaces/platform/versions",
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([
'groups' => [
'<string>'
],
'repository' => [
'id' => '<string>'
],
'name' => '<string>',
'createdAt' => '<string>',
'description' => [
'fr' => 'Bonjour',
'en' => 'Hello'
],
'dryRun' => false,
'force' => false
]),
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.eda.prisme.ai/v2/workspaces/platform/versions"
payload := strings.NewReader("{\n \"groups\": [\n \"<string>\"\n ],\n \"repository\": {\n \"id\": \"<string>\"\n },\n \"name\": \"<string>\",\n \"createdAt\": \"<string>\",\n \"description\": {\n \"fr\": \"Bonjour\",\n \"en\": \"Hello\"\n },\n \"dryRun\": false,\n \"force\": false\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.eda.prisme.ai/v2/workspaces/platform/versions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"groups\": [\n \"<string>\"\n ],\n \"repository\": {\n \"id\": \"<string>\"\n },\n \"name\": \"<string>\",\n \"createdAt\": \"<string>\",\n \"description\": {\n \"fr\": \"Bonjour\",\n \"en\": \"Hello\"\n },\n \"dryRun\": false,\n \"force\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.eda.prisme.ai/v2/workspaces/platform/versions")
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 \"groups\": [\n \"<string>\"\n ],\n \"repository\": {\n \"id\": \"<string>\"\n },\n \"name\": \"<string>\",\n \"createdAt\": \"<string>\",\n \"description\": {\n \"fr\": \"Bonjour\",\n \"en\": \"Hello\"\n },\n \"dryRun\": false,\n \"force\": false\n}"
response = http.request(request)
puts response.read_body{
"processing": true,
"message": "<string>"
}{
"error": "BadParameters",
"message": "<string>",
"details": "<unknown>"
}{
"error": "AuthenticationError",
"message": "Unauthenticated"
}{
"error": "ForbiddenError",
"message": "Forbidden"
}{
"error": "ObjectNotFound",
"message": "<string>"
}Post v2workspacesplatformversions
Trigger a bulk push of dirty workspaces to a platform repository. Finds all dirty workspaces belonging to the given groups, categorizes them by lock status (merge conflicts, in progress, candidates), then pushes each candidate workspace sequentially. Groups are resolved via WORKSPACE_GROUPS configuration.
curl --request POST \
--url https://api.eda.prisme.ai/v2/workspaces/platform/versions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"groups": [
"<string>"
],
"repository": {
"id": "<string>"
},
"name": "<string>",
"createdAt": "<string>",
"description": {
"fr": "Bonjour",
"en": "Hello"
},
"dryRun": false,
"force": false
}
'import requests
url = "https://api.eda.prisme.ai/v2/workspaces/platform/versions"
payload = {
"groups": ["<string>"],
"repository": { "id": "<string>" },
"name": "<string>",
"createdAt": "<string>",
"description": {
"fr": "Bonjour",
"en": "Hello"
},
"dryRun": False,
"force": False
}
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({
groups: ['<string>'],
repository: {id: '<string>'},
name: '<string>',
createdAt: '<string>',
description: {fr: 'Bonjour', en: 'Hello'},
dryRun: false,
force: false
})
};
fetch('https://api.eda.prisme.ai/v2/workspaces/platform/versions', 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.eda.prisme.ai/v2/workspaces/platform/versions",
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([
'groups' => [
'<string>'
],
'repository' => [
'id' => '<string>'
],
'name' => '<string>',
'createdAt' => '<string>',
'description' => [
'fr' => 'Bonjour',
'en' => 'Hello'
],
'dryRun' => false,
'force' => false
]),
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.eda.prisme.ai/v2/workspaces/platform/versions"
payload := strings.NewReader("{\n \"groups\": [\n \"<string>\"\n ],\n \"repository\": {\n \"id\": \"<string>\"\n },\n \"name\": \"<string>\",\n \"createdAt\": \"<string>\",\n \"description\": {\n \"fr\": \"Bonjour\",\n \"en\": \"Hello\"\n },\n \"dryRun\": false,\n \"force\": false\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.eda.prisme.ai/v2/workspaces/platform/versions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"groups\": [\n \"<string>\"\n ],\n \"repository\": {\n \"id\": \"<string>\"\n },\n \"name\": \"<string>\",\n \"createdAt\": \"<string>\",\n \"description\": {\n \"fr\": \"Bonjour\",\n \"en\": \"Hello\"\n },\n \"dryRun\": false,\n \"force\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.eda.prisme.ai/v2/workspaces/platform/versions")
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 \"groups\": [\n \"<string>\"\n ],\n \"repository\": {\n \"id\": \"<string>\"\n },\n \"name\": \"<string>\",\n \"createdAt\": \"<string>\",\n \"description\": {\n \"fr\": \"Bonjour\",\n \"en\": \"Hello\"\n },\n \"dryRun\": false,\n \"force\": false\n}"
response = http.request(request)
puts response.read_body{
"processing": true,
"message": "<string>"
}{
"error": "BadParameters",
"message": "<string>",
"details": "<unknown>"
}{
"error": "AuthenticationError",
"message": "Unauthenticated"
}{
"error": "ForbiddenError",
"message": "Forbidden"
}{
"error": "ObjectNotFound",
"message": "<string>"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
If true, streams progress as Server-Sent Events (text/event-stream) instead of returning a single JSON response.
HTTP timeout in seconds. If the push exceeds this, the response returns {processing: true} and the result is emitted as a workspaces.bulkExport.completed event.
Body
Group names to push (must exist in WORKSPACE_GROUPS config)
1Show child attributes
Show child attributes
Version name. If left empty, will be auto generated
Show child attributes
Show child attributes
{ "fr": "Bonjour", "en": "Hello" }
When true, only returns workspace categorization without actually pushing any versions.
When true, also pushes workspaces that are already up to date (not dirty), forcing a re-push of all matching workspaces.
Was this page helpful?