/v1/builds/{buildId}Update a build⚠️ Experimental endpoint: this API is in active development and may change at any time without notice. ⚠️
Records progress on a build. Any holder of the workspace token may patch any field — the webhook, the CI run and Composer each report the part of a deploy they can see, and the token is the boundary. Reaching running stamps startedAt and reaching a terminal state stamps finishedAt, both only if unset, so re-reporting the same state does not move the clock. Once a build has finished, its state no longer changes: a later report updates the other fields and leaves the state as the finishing report set it.
projectId, branchId, deployedUrl and applicationTopologyContentHash can each be set once and never changed: a reporter that resolves them partway through a deploy sets them here, but a value already recorded cannot be changed and the attempt is a conflict. Sending the value already recorded is accepted and changes nothing. projectId and branchId must belong to the caller's workspace, and a branch must belong to the build's project, so a branch from another project is refused.
Parameters
buildIdstringpathrequiredRequest body
application/json
applicationTopologyContentHashstringContent hash of the application topology this run deploys, as submitted to the application-topology endpoint. A value match, never a reference: equal hashes identify the same graph. Can be set once and never changed, like `projectId`.
branchIdstringBranch the build targets. Can be set once and never changed, like `projectId`.
deployedUrlstring · uriWhere the deployed app can be reached. Can be set once and never changed, like `projectId`.
errorMessagestringexternalLogUrlstring · urifailingStepstringName of the step that failed, free text — step names come from build tooling the platform cannot validate.
phasestringHow far the run has got.
projectIdstringProject the build targets. Can be set once and never changed: a reporter that learns the project partway through a deploy may set it, but a value already recorded cannot be changed.
statestring{
"applicationTopologyContentHash": "string",
"branchId": "string",
"deployedUrl": "https://example.com",
"errorMessage": "string",
"externalLogUrl": "https://example.com",
"failingStep": "string",
"phase": "build",
"projectId": "string",
"state": "cancelled"
}Responses
dataobjectrequiredShow child attributes
applicationTopologyContentHashnull | stringrequiredbranchIdnull | stringrequiredbranchNamestringrequiredcommitShastringrequiredcreatedAtstringrequireddeployedUrlnull | stringrequirederrorMessagenull | stringrequiredexternalLogUrlnull | stringrequiredfailingStepnull | stringrequiredfinishedAtnull | stringrequiredgitRepoIdnull | stringrequiredRepository the build ran against. Set only when the workspace has a live link to it; a reported repository the platform does not know stays null.
idstringrequiredphasenull | stringrequiredNull when nothing reported a phase; the platform never invents an observation it did not receive.
projectIdnull | stringrequiredsourcestringrequiredstartedAtnull | stringrequiredstatestringrequired{
"data": {
"applicationTopologyContentHash": "string",
"branchId": "string",
"branchName": "string",
"commitSha": "string",
"createdAt": "string",
"deployedUrl": "string",
"errorMessage": "string",
"externalLogUrl": "string",
"failingStep": "string",
"finishedAt": "string",
"gitRepoId": "string",
"id": "string",
"phase": "build",
"projectId": "string",
"source": "ci",
"startedAt": "string",
"state": "cancelled"
}
}errorobjectrequiredShow child attributes
codestringrequiredhintstringmessagestringrequired{
"error": {
"code": "string",
"hint": "string",
"message": "string"
}
}errorobjectrequiredShow child attributes
codestringrequiredhintstringmessagestringrequired{
"error": {
"code": "string",
"hint": "string",
"message": "string"
}
}errorobjectrequiredShow child attributes
codestringrequiredhintstringmessagestringrequired{
"error": {
"code": "string",
"hint": "string",
"message": "string"
}
}errorobjectrequiredShow child attributes
codestringrequiredhintstringmessagestringrequired{
"error": {
"code": "string",
"hint": "string",
"message": "string"
}
}errorobjectrequiredShow child attributes
codestringrequiredhintstringmessagestringrequired{
"error": {
"code": "string",
"hint": "string",
"message": "string"
}
}