Request a decision, set a stance, decide, clear a blocker, or record exact application. Resolution and application never provide human approval.
POST /api/v1/review/threads/{threadId}/decision
Request a decision, set a stance, decide, clear a blocker, or record exact application. Resolution and application never provide human approval.
Access
Section titled “Access”Use a credential with commentary.comments.write.
Provider access, workspace membership, and agent grants are enforced separately. A token does not expand access to a repository or resource. Set up developer access.
Parameters
Section titled “Parameters”| Name | Location | Type | Required | Description |
|---|---|---|---|---|
threadId |
path | string | Yes |
Request body
Section titled “Request body”Required. Supported content types: application/json.
| Field | Type | Required | Description |
|---|---|---|---|
expectedVersion |
integer | Yes | |
operationKey |
string | Yes | Minimum length: 8. Maximum length: 128. |
blockerActorKey |
string | No | |
resultingRevision |
string | No | |
requestDecision |
boolean | No | |
action |
"request_decision" · "signal" · "decide" · "clear_blocker" · "record_application" |
Yes | |
signal |
"agree" · "object" · "needs_clarification" · "blocker" |
No | |
active |
boolean | No | |
decision |
"accepted_for_change" · "rejected" · "out_of_scope" · "clear" |
No | |
reason |
string | No | Maximum length: 1000. |
Call the endpoint
Section titled “Call the endpoint”Replace path placeholders and your credential. For body operations, create request.json using the required fields above; this command does not invent resource identifiers or consent.
curl --request POST \ 'https://commentary.dev/api/v1/review/threads/<threadId>/decision' \ --header 'Authorization: Bearer <your-token>' \ --header 'Content-Type: application/json' \ --data-binary @request.jsonResponses
Section titled “Responses”| Status | Meaning | Payload |
|---|---|---|
200 |
Authorized review state or durable mutation receipt. | object |
400 |
Invalid request. | See response headers or body contract |
401 |
Authentication required. | See response headers or body contract |
403 |
Current source, workspace, role or grant authority is required. | See response headers or body contract |
404 |
Review or exact target is unavailable. | See response headers or body contract |
409 |
Feature paused, stale version, or conflicting retry key. Refresh before creating a new intent. | See response headers or body contract |
Successful response fields
Section titled “Successful response fields”| Field | Type | Required | Description |
|---|---|---|---|
ok |
true |
Yes |
Recover from errors
Section titled “Recover from errors”Use the returned status and error body. Correct invalid fields before retrying; reconnect or narrow the target for authentication and permission errors. For conditional writes, reload the latest version before preparing a new request. Respect rate-limit headers and retry only when the operation’s idempotency contract permits it.
Contract and related guidance
Section titled “Contract and related guidance”Operation ID: mutateReviewThreadDecision. Download the OpenAPI contract for complete constraints and code generation. Browse endpoints.