Skip to content
APIProductBuild and shipChange

Change routes: merge, revert, review

The Change Verbs merge, revert, review as api.sb routes, with inputs, result, refusals and an example.

Reference for Change, one group of Change routes.

Change.merge

Merge applies a Change to live data with a three-way, field-level merge against its base Version. Verb page.

Text
POST /{namespace}/changes/{change}/merge

Path: change. Emits Change.merged.

Inputs

InputTypeRequiredDescription
changeChangerequiredThe reviewed Change.

Returns

OutputTypeRequiredDescription
versionVersionrequiredThe new Version.
changeChangerequiredThe Change, now merged into live data.

Refuses when

CheckErrorFixThen call
The key is valid, but its scopes do not allow this operation.forbiddenUse a key whose scopes cover the operation, or ask an owner of the namespace to grant them.None.
The record changed since it was read, so the write would overwrite a newer version.conflictRead the record again, then retry the write against its current state.None.
The record is not in a state that allows this Verb, so the call is refused.refusedRead the record, run the Verb that moves it to an allowed state, then retry.None.

Example

Terminal
curl -X POST https://api.sb/leaseline.app/changes/change_3Ex8uVSOyQ/merge \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY"
JSON
{
  "api": "https://api.sb/leaseline.app",
  "version": {
    "$id": "https://api.sb/leaseline.app/versions/version_4HTEMs14G4",
    "$type": "Version",
    "fingerprint": "sha256:9f2c4e1a7b3d"
  },
  "change": {
    "$id": "https://api.sb/leaseline.app/changes/change_3Ex8uVSOyQ",
    "$type": "Change",
    "status": "Merged",
    "base": "version_4HTEMs14G4"
  },
  "action": {
    "$id": "https://api.sb/leaseline.app/actions/act_br07HsG8MG",
    "operation": "Change.merge",
    "status": "done"
  },
  "links": {
    "self": "https://api.sb/leaseline.app/actions/act_br07HsG8MG"
  }
}

Change.revert

Revert undoes a merged Change with a new Change and a superseding Decision, deleting nothing. Verb page.

Text
POST /{namespace}/changes/{change}/revert

Path: change. Body, as JSON: the other inputs. Emits Change.reverted.

Inputs

InputTypeRequiredDescription
changeChangerequiredThe merged Change to undo.
reasontextrequiredWhy it is undone.

Returns

OutputTypeRequiredDescription
revertChangerequiredThe Change that undoes it.

Refuses when

CheckErrorFixThen call
The key is valid, but its scopes do not allow this operation.forbiddenUse a key whose scopes cover the operation, or ask an owner of the namespace to grant them.None.
The record is not in a state that allows this Verb, so the call is refused.refusedRead the record, run the Verb that moves it to an allowed state, then retry.None.

Example

Terminal
curl -X POST https://api.sb/leaseline.app/changes/change_3Ex8uVSOyQ/revert \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"reason":"Example reason"}'
JSON
{
  "api": "https://api.sb/leaseline.app",
  "revert": {
    "$id": "https://api.sb/leaseline.app/changes/change_3Ex8uVSOyQ",
    "$type": "Change",
    "status": "Open",
    "base": "version_4HTEMs14G4"
  },
  "action": {
    "$id": "https://api.sb/leaseline.app/actions/act_br07HsG8MG",
    "operation": "Change.revert",
    "status": "done"
  },
  "links": {
    "self": "https://api.sb/leaseline.app/actions/act_br07HsG8MG"
  }
}

Change.review

Review runs every Evaluator on a Change’s preview and records each verdict on the Change. Verb page.

Text
POST /{namespace}/changes/{change}/review

Path: change. Emits Change.reviewed.

Inputs

InputTypeRequiredDescription
changeChangerequiredThe open Change.

Returns

OutputTypeRequiredDescription
changeChangerequiredThe Change with its verdicts.

Refuses when

CheckErrorFixThen call
The key is valid, but its scopes do not allow this operation.forbiddenUse a key whose scopes cover the operation, or ask an owner of the namespace to grant them.None.
The record is not in a state that allows this Verb, so the call is refused.refusedRead the record, run the Verb that moves it to an allowed state, then retry.None.

Example

Terminal
curl -X POST https://api.sb/leaseline.app/changes/change_3Ex8uVSOyQ/review \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY"
JSON
{
  "api": "https://api.sb/leaseline.app",
  "change": {
    "$id": "https://api.sb/leaseline.app/changes/change_3Ex8uVSOyQ",
    "$type": "Change",
    "status": "Open",
    "base": "version_4HTEMs14G4"
  },
  "action": {
    "$id": "https://api.sb/leaseline.app/actions/act_br07HsG8MG",
    "operation": "Change.review",
    "status": "done"
  },
  "links": {
    "self": "https://api.sb/leaseline.app/actions/act_br07HsG8MG"
  }
}