`POST /api/workspace/repo_sync/push` — serialize DB rows + commit/push. Returns `{ commit_sha, files_written, outcomes, event }` — every returned event carries `event_id` + `timestamp` per the wire contract.
POST
/api/workspace/repo_sync/push
const url = 'https://example.com/api/workspace/repo_sync/push';const options = {method: 'POST'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/api/workspace/repo_sync/pushResponses
Section titled “Responses”Media typeapplication/json
What a push returns to the HTTP caller.
object
commit_sha
required
The commit sha the push left the remote at.
string
event
required
Sync-event shape with event_id + timestamp.
object
commit_sha
The git commit sha the sync attempt operated against — None when no commit was made (push with no diff).
string | null
event_id
required
string format: uuid
kind
required
repo_sync_push_completed / repo_sync_pull_completed.
string
timestamp
required
RFC3339 timestamp (UTC). The string form keeps the wire format language-agnostic; the web client parses it back to a Date.
string
files_written
required
Absolute file paths inside the workspace’s checkout that the push wrote. Each path corresponds to one entry (workflow / script / app).
Array<string>
outcomes
required
One row per entity the push affected.
Array<object>
One row per entity affected by a push.
object
action
required
updated for the happy path; failed if a per-row write blew up.
string
target_id
string | null format: uuid
target_kind
required
Closed catalogue of sync targets a log row can reference.
string
target_slug
required
string
Example
{ "outcomes": [ { "target_kind": "workflow" } ]}