Sign off a release
POST
/v1/releases/{release_id}/signoff
const url = 'https://api.pensievelabs.co/v1/releases/rel_grade_audit_v8/signoff';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"by":"maya@example.com","note":"Matches our reviewers on the Rust tasks."}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.pensievelabs.co/v1/releases/rel_grade_audit_v8/signoff \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "by": "maya@example.com", "note": "Matches our reviewers on the Rust tasks." }'Only the people named in the workspace’s release rules can sign off. Refused with conflict before the shadow run ends.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”release_id
required
string
Example
rel_grade_audit_v8Header Parameters
Section titled “Header Parameters”Idempotency-Key
string
Any unique string. Sending it again within 24 hours returns the first response.
Request Body
Section titled “Request Body”Media typeapplication/json
object
by
The expert signing off, as an email. The key’s owner if left out.
string
note
string
Example
{ "by": "maya@example.com", "note": "Matches our reviewers on the Rust tasks."}Responses
Section titled “Responses”The signed-off release.
Media typeapplication/json
object
id
required
string
object
required
model
required
string
version
required
string
status
required
superseded: it went live and a later release replaced it.
string
gates
required
Array<object>
object
kind
required
string
label
required
string
passed
required
boolean
passed_at
required
string | null format: date-time
shadow
required
split_percent
required
integer | null
signed_off_by
required
string | null
created_at
required
string format: date-time
Example
{ "id": "rel_grade_audit_v8", "object": "release", "status": "pending", "gates": [ { "kind": "beats_live" } ]}default
Section titled “default”Something went wrong; error.type says what.
Media typeapplication/json
object
error
required
object
type
required
string
message
required
string
param
The request field the error is about.
string | null
request_id
required
string
Example
{ "error": { "type": "invalid_request" }}