Skip to content
Select themeSelect language

`GET /api/workspace/repo_sync/log?limit=N` — recent audit-log rows.

GET
/api/workspace/repo_sync/log
curl --request GET \
--url https://example.com/api/workspace/repo_sync/log
limit
integer
Media typeapplication/json
Array<object>

One row per per-entity action on a push or pull (ADR 0023 R1+R2). The UI renders a per-workspace feed; the conflict path (R2 last-write-wins) uses action='skipped' with a reason to surface “your in-flight edit kept the row” without overwriting.

object
action
required

created / updated / skipped / failed / deleted.

string
created_at
required
string format: date-time
id
required
string format: uuid
reason

One-line human-readable reason for skipped / failed; NULL for the happy-path actions.

string | null
sync_kind
required

push (UI -> repo) or pull (repo -> UI).

string
sync_sha

The git commit sha the sync attempt operated against.

string | null
target_id

The DB row id this log entry concerns; NULL when a row was meant to exist but the action never created one (e.g. parse error on a pulled YAML file).

string | null format: uuid
target_kind
required

workflow / script / app.

string
target_slug
required

The repo-side identifier (the YAML file’s slug). Always present so the UI can name the file even when no DB row was created.

string
workspace_id
required
string format: uuid
Examplegenerated
[
{
"action": "example",
"created_at": "2026-04-15T12:00:00Z",
"id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"reason": "example",
"sync_kind": "example",
"sync_sha": "example",
"target_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"target_kind": "example",
"target_slug": "example",
"workspace_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"
}
]