Skip to content

Reinstate a release gate version

View as Markdown
POST
/v1/release-gates/{releaseGateId}/versions/{version}/reinstate
curl --request POST \
--url https://example.com/v1/release-gates/example/versions/example/reinstate \
--header 'Authorization: Bearer <token>'

Needs admin on the workspace.

releaseGateId
required
string

The release gate id.

version
required
string

A semver version of the release gate.

The reinstated version.

Media typeapplication/json
object
id
required
string
version
required
string
agentId
required
string
scope
required
One of: discriminator: kind

The whole workspace.

object
kind
required
string
Allowed values: tenant
spec
required

What a pin must show. Every part is optional; an empty spec checks nothing. A pin must name a comparison (testRunId) exactly when the spec has comparison, evidence, metrics, replay, cases or onlyExpertGroups. Unknown keys are refused.

object
comparison
object
maxAgeHours
number
> 0
testSet
object
id
required
string
version
string
evidence

The evidence from corrections behind each gated metric; for a metric with maxDrop, the baseline’s too.

object
minCases
integer
minWeight
number
metrics
Array<object>
object
name
required
string
Allowed values: passRate caseCoverage weightedPrecisionAtK
k

weightedPrecisionAtK only: the summary’s k must be this.

integer
>= 1 <= 100
minCandidate
number
<= 1
maxDrop

How far the candidate may fall below the baseline (the pinned version).

number
<= 1
replay

Each knob left out of the block is 0. No block: no replay checks.

object
maxDiverged
integer
maxErrors
integer
maxRefusedWrites

At most this many tool calls the replay refused (the comparison summary’s refusedWrites). Reads count too, despite the name.

integer
maxStopped
integer
cases

The cases the comparison graded: each correction it checked is a case, and it passes when every repetition did.

object
minPassing

At least this many cases pass.

integer
noNewFailures

No case that passed before fails: none of the comparison’s corrections that are fixed now fails it. One the comparison didn’t grade isn’t counted; the check’s message says how many of the cases fixed now it graded.

boolean
approvals

A passing pin waits for a reviewer.

object
role

Default senior.

string
Allowed values: standard senior admin
separateApprover

Default true.

boolean
onlyExpertGroups

Only expert groups count: the comparison must be weighted experts-only, so a group anyone may assert can’t move the gate.

boolean
description
string
createdAt
required
string format: date-time
unregisteredAt

Present only on an unregistered version: a retired gate (every version unregistered) as GET /v1/release-gates?includeRetired=true lists it.

string format: date-time
Example
{
"scope": {
"kind": "tenant"
},
"spec": {
"metrics": [
{
"name": "passRate"
}
],
"approvals": {
"role": "standard"
}
}
}

Malformed request body.

Media typeapplication/json
object
error
required
object
code
required

Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).

string
message
required
string
details

Optional, kind-specific.

object
key
additional properties
any
requestId
required

Server-assigned request id; also echoed via X-Request-Id header.

string
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": {},
"requestId": "example"
}
}

Missing / malformed / expired / revoked bearer token.

Media typeapplication/json
object
error
required
object
code
required

Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).

string
message
required
string
details

Optional, kind-specific.

object
key
additional properties
any
requestId
required

Server-assigned request id; also echoed via X-Request-Id header.

string
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": {},
"requestId": "example"
}
}

No such version.

Media typeapplication/json
object
error
required
object
code
required

Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).

string
message
required
string
details

Optional, kind-specific.

object
key
additional properties
any
requestId
required

Server-assigned request id; also echoed via X-Request-Id header.

string
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": {},
"requestId": "example"
}
}

release-gate-scope-taken: another release gate gates the agent for the scope now (details.heldBy). release-gate-scope-unpinned: the scope has no pinned version of its own; pin one first.

Media typeapplication/json
object
error
required
object
code
required

Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).

string
message
required
string
details

Optional, kind-specific.

object
key
additional properties
any
requestId
required

Server-assigned request id; also echoed via X-Request-Id header.

string
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": {},
"requestId": "example"
}
}

Server error (unmapped domain code or framework crash).

Media typeapplication/json
object
error
required
object
code
required

Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).

string
message
required
string
details

Optional, kind-specific.

object
key
additional properties
any
requestId
required

Server-assigned request id; also echoed via X-Request-Id header.

string
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": {},
"requestId": "example"
}
}

See also