Coelevate Documentation
API ReferenceContext Repository

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

StatusMeaning
200The request succeeded.
401The token is missing, expired or invalid.
403The token does not carry the scope this operation requires.
404No such project, or the token belongs to a different project.

The 200 response body:

FieldTypeRequiredDescription
base_releaseintegeryesThe release to send as expected_release when staging.
changesetChangesetDetail or nullnoThe 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.
revisionintegeryesThe 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.

FieldTypeRequiredDescription
base_releaseintegeryesThe release the changeset was opened against. Send it back when staging.
base_repository_revisionstringyesA fingerprint of the repository state the changeset was opened against.
changeset_idstringyesThe changeset's id.
decision_summaryDecisionSummaryyesHow many ops have been decided.
invalidated_by_releaseinteger or nullnoThe release that made this changeset impossible to merge, if one did.
itemsarray of objectyesThe ops grouped into the units a reviewer decides: everything staged on one asset, or on one relationship, together, with the names resolved.
merge_claimed_atstring or nullnoWhen a publication claimed the changeset, while one is in progress.
next_seqintegeryesThe position the next staged op will take.
opened_atstringyesWhen the changeset was opened.
opened_byobjectyesWho opened it and why.
opsarray of ChangesetOpyesEvery op staged so far, in order.
project_idstringyesThe project the changeset belongs to.
published_releaseinteger or nullnoThe release it produced, once published.
revisionintegeryesThe changeset's revision. It changes every time the changeset does; send it back when staging.
settled_atstring or nullnoWhen it was published or abandoned.
settled_byobject or nullnoWho settled it.
statusstringyesWhether the changeset is open or how it was settled.
superseded_op_idsarray of stringyesOps that a later op overwrote.

DecisionSummary

How many ops review has decided.

FieldTypeRequiredDescription
approvedintegeryesOps approved.
rejectedintegeryesOps rejected.
undecidedintegeryesOps still waiting for a decision.

ChangesetOp

One staged op and what has been decided about it.

FieldTypeRequiredDescription
carried_fromstring or nullnoThe changeset the op was carried over from, if it was.
carried_tostring or nullnoThe changeset the op was carried over to, if it was.
cascaded_fromstring or nullnoThe op whose rejection caused this one to be rejected, if any.
conflictstring or nullnoWhy the op cannot merge as it stands, when something it depends on has moved; null otherwise.
decided_atstring or nullnoWhen it was decided.
decided_byobject or nullnoWho decided and why, once someone has; null while the op is undecided.
decisionstringyesWhere review stands: undecided, approved or rejected.
decision_historyarray of objectyesEvery decision made about the op, oldest first.
opobjectyesThe 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_idstringyesThe id the service assigned when the op was staged. Use it to remove the op.
reasonstring or nullnoThe reason given for a rejection.
review_keystringyesGroups the ops a reviewer decides together.
seqintegeryesThe op's position in the changeset, in staging order.
staged_atstringyesWhen the op was staged.
staged_byobjectyesWho staged it and why.
statusstringyesThe op's state in the changeset.

Example

curl -sS "$API_URL/context/v1/changeset" \
  -H "Authorization: Bearer $TOKEN"