Get the open changeset
Returns the project's open changeset without the bodies of its ops: its status, the ops staged in it (what each acts on, who staged it and how review has decided it), and the ops grouped into the uni…
GET /context/v1/changeset
Returns the project's open changeset without the bodies of its ops: its status, the ops staged in it (what each acts on, who staged it and how review has decided it), and the ops grouped into the units a reviewer decides. It stays fast however many ops are staged. Read revision and base_release from here immediately before you compute a batch to stage, because staging requires both back; they are returned when nothing is open too. An upsert's content and the value of a patch's edit are left out: read them with GET changeset/ops. A merge re-checks every op itself and refuses one that is stale or duplicates another, so nothing here needs to be worked out before you merge.
Requires the context:read scope.
Responses
| Status | Meaning |
|---|---|
200 | The request succeeded. |
401 | The token is missing, expired or invalid. |
403 | The token does not carry the scope this operation requires. |
404 | No such project, or the token belongs to a different project. |
The 200 response body:
| Field | Type | Required | Description |
|---|---|---|---|
base_release | integer | yes | The release to send as expected_release when staging. |
changeset | ChangesetDetail or null | no | The open changeset, or null when nothing is open. Each op names what it acts on and carries everything but its body: an upsert has no content and a patch's edit has no value. |
revision | integer | yes | The changeset revision to send as expected_revision when staging; 0 when nothing is open. |
Shapes
The named shapes used above.
ChangesetDetail
The open changeset as GET changeset reads it, with its ops grouped for review.
| Field | Type | Required | Description |
|---|---|---|---|
base_release | integer | yes | The release the changeset was opened against. Send it back when staging. |
base_repository_revision | string | yes | A fingerprint of the repository state the changeset was opened against. |
changeset_id | string | yes | The changeset's id. |
decision_summary | DecisionSummary | yes | How many ops have been decided. |
invalidated_by_release | integer or null | no | The release that made this changeset impossible to merge, if one did. |
items | array of object | yes | The ops grouped into the units a reviewer decides: everything staged on one asset, or on one relationship, together, with the names resolved. |
merge_claimed_at | string or null | no | When a publication claimed the changeset, while one is in progress. |
next_seq | integer | yes | The position the next staged op will take. |
opened_at | string | yes | When the changeset was opened. |
opened_by | object | yes | Who opened it and why. |
ops | array of ChangesetOp | yes | Every op staged so far, in order. |
project_id | string | yes | The project the changeset belongs to. |
published_release | integer or null | no | The release it produced, once published. |
revision | integer | yes | The changeset's revision. It changes every time the changeset does; send it back when staging. |
settled_at | string or null | no | When it was published or abandoned. |
settled_by | object or null | no | Who settled it. |
status | string | yes | Whether the changeset is open or how it was settled. |
superseded_op_ids | array of string | yes | Ops that a later op overwrote. |
DecisionSummary
How many ops review has decided.
| Field | Type | Required | Description |
|---|---|---|---|
approved | integer | yes | Ops approved. |
rejected | integer | yes | Ops rejected. |
undecided | integer | yes | Ops still waiting for a decision. |
ChangesetOp
One staged op and what has been decided about it.
| Field | Type | Required | Description |
|---|---|---|---|
carried_from | string or null | no | The changeset the op was carried over from, if it was. |
carried_to | string or null | no | The changeset the op was carried over to, if it was. |
cascaded_from | string or null | no | The op whose rejection caused this one to be rejected, if any. |
conflict | string or null | no | Why the op cannot merge as it stands, when something it depends on has moved; null otherwise. |
decided_at | string or null | no | When it was decided. |
decided_by | object or null | no | Who decided and why, once someone has; null while the op is undecided. |
decision | string | yes | Where review stands: undecided, approved or rejected. |
decision_history | array of object | yes | Every decision made about the op, oldest first. |
op | object | yes | The op as it was sent; its op field names the kind. GET changeset leaves out an upsert's content and the value of a patch's edit, which GET changeset/ops returns. |
op_id | string | yes | The id the service assigned when the op was staged. Use it to remove the op. |
reason | string or null | no | The reason given for a rejection. |
review_key | string | yes | Groups the ops a reviewer decides together. |
seq | integer | yes | The op's position in the changeset, in staging order. |
staged_at | string | yes | When the op was staged. |
staged_by | object | yes | Who staged it and why. |
status | string | yes | The op's state in the changeset. |
Example
curl -sS "$API_URL/context/v1/changeset" \
-H "Authorization: Bearer $TOKEN"