Skip to main content

Reviews

Generated from apiome-rest/openapi.yaml (API version 1.204.1) — do not edit by hand. How to authenticate is on the REST API reference.

Tag: reviews · 7 operations

GET /v1/tenants/{tenant_slug}/projects/{project_ref}/reviews​

List a project's reviews

A page of the project's reviews, most recently active first, each with the tally of its current round.

Filters combine: version (revision id or version label), state (in_review, approved, changes_requested), and open (true for open reviews, false for withdrawn ones).

Requires projects:view.

Operation id: list_reviews_v1_tenants__tenant_slug__projects__project_ref__reviews_get

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
project_refpathstringyesPath parameter identifying the project ref segment.
versionquerystring or nullnoRevision id or version label.
statequeryenum "in_review", "approved", "changes_requested" or nullnoReview state.
openqueryboolean or nullnoOpen (true) or withdrawn (false) reviews only.
limitqueryintegernoPage size.
offsetqueryintegernoReviews to skip.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for list a project's reviews.application/json ReviewListResponse
422Validation Errorapplication/json HTTPValidationError

POST /v1/tenants/{tenant_slug}/projects/{project_ref}/reviews​

Request a review of a draft version

Ask named reviewers whether a draft (unpublished) version is ready: draft → in_review, round 1, every reviewer pending.

Reviewers are tenant member user ids (at most 20, duplicates collapsed) and cannot include the requester (400 review-self-review). A published version cannot be reviewed (409 review-version-published), and a version has at most one open review (409 review-already-open). The round records the fingerprint of the version's current content.

Requires versions:edit.

Operation id: request_review_v1_tenants__tenant_slug__projects__project_ref__reviews_post

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
project_refpathstringyesPath parameter identifying the project ref segment.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Request body (required)

Request body for request a review of a draft version.

Responses

StatusDescriptionBody
201Successful response for request a review of a draft version.application/json ReviewDetail
422Validation Errorapplication/json HTTPValidationError

GET /v1/tenants/{tenant_slug}/projects/{project_ref}/reviews/{review_id}​

Read a review

A review with its current round's reviewers, every earlier round's decisions (unchanged since they were recorded), and spec_changed — true when the version's content no longer matches the round being decided.

Requires projects:view.

Operation id: read_review_v1_tenants__tenant_slug__projects__project_ref__reviews__review_id__get

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
project_refpathstringyesPath parameter identifying the project ref segment.
review_idpathstringyesPath parameter identifying the review id segment.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for read a review.application/json ReviewDetail
422Validation Errorapplication/json HTTPValidationError

POST /v1/tenants/{tenant_slug}/projects/{project_ref}/reviews/{review_id}/decision​

Record a review decision

Record the caller's approve or request_changes, with an optional note, on the current round. Any request_changes moves the review to changes_requested; once every reviewer approved it is approved.

A decision is recorded once and never changes (409 review-already-decided); a round that is already decided takes no more (409 review-not-in-review); and a round whose content changed must be re-requested first (409 review-spec-changed).

Requires projects:view, and the caller must be a reviewer of the current round (403 review-not-reviewer).

Operation id: record_review_decision_v1_tenants__tenant_slug__projects__project_ref__reviews__review_id__decision_post

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
project_refpathstringyesPath parameter identifying the project ref segment.
review_idpathstringyesPath parameter identifying the review id segment.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Request body (required)

Request body for record a review decision.

Responses

StatusDescriptionBody
200Successful response for record a review decision.application/json ReviewDetail
422Validation Errorapplication/json HTTPValidationError

POST /v1/tenants/{tenant_slug}/projects/{project_ref}/reviews/{review_id}/re-request​

Re-request a review after the spec changed

Start the next round once the version's content has changed: every reviewer is asked again with a fresh pending decision, and the earlier rounds' decisions stay as history. Stale approvals never carry over to changed content.

reviewers replaces the reviewer list for the new round; omit it to ask the current round's reviewers again. An unchanged spec is a 409 review-spec-unchanged.

Requires versions:edit.

Operation id: re_request_review_v1_tenants__tenant_slug__projects__project_ref__reviews__review_id__re_request_post

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
project_refpathstringyesPath parameter identifying the project ref segment.
review_idpathstringyesPath parameter identifying the review id segment.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Request body (optional)

Request body for re-request a review after the spec changed.

Responses

StatusDescriptionBody
200Successful response for re-request a review after the spec changed.application/json ReviewDetail
422Validation Errorapplication/json HTTPValidationError

POST /v1/tenants/{tenant_slug}/projects/{project_ref}/reviews/{review_id}/withdraw​

Withdraw a review

Close an open review. Its state and decisions stay as recorded, and the version can be sent for review again.

Requires versions:edit, and the caller must be the member who requested the review or a tenant administrator (403 review-forbidden).

Operation id: withdraw_review_v1_tenants__tenant_slug__projects__project_ref__reviews__review_id__withdraw_post

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
project_refpathstringyesPath parameter identifying the project ref segment.
review_idpathstringyesPath parameter identifying the review id segment.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for withdraw a review.application/json ReviewDetail
422Validation Errorapplication/json HTTPValidationError

GET /v1/tenants/{tenant_slug}/projects/{project_ref}/versions/{version_ref}/review​

Read a version's review status

Where a version stands in review: draft when it has no open review, otherwise the open review's state together with the review.

Requires projects:view.

Operation id: read_version_review_status_v1_tenants__tenant_slug__projects__project_ref__versions__version_ref__review_get

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
project_refpathstringyesPath parameter identifying the project ref segment.
version_refpathstringyesPath parameter identifying the version ref segment.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for read a version's review status.application/json VersionReviewStatus
422Validation Errorapplication/json HTTPValidationError

Schemas used​

HTTPValidationError​

Validation error response emitted when request data fails schema checks.

PropertyTypeRequiredDescription
detailarray of ValidationErrornoDetail.

ReviewDecisionCreate​

Record a reviewer's decision.

Attributes: decision: approve or request_changes. note: An optional explanation.

PropertyTypeRequiredDescription
decisionenum "approve", "request_changes"yesDecision.
notestring or nullnoNote.

ReviewDetail​

A review with its reviewers, its decision history, and whether its content is stale.

PropertyTypeRequiredDescription
reviewReviewRecordyesReview.
reviewersarray of ReviewerDecisionRecordnoThe current round's reviewers and their decisions.
historyarray of ReviewerDecisionRecordnoEvery earlier round's rows, unchanged since they were recorded; oldest round first.
spec_changedboolean or nullnoTrue when the version's content no longer matches the current round's spec_fingerprint — its decisions are stale and the review should be re-requested. Null for a withdrawn review.

ReviewListResponse​

A page of a project's reviews.

PropertyTypeRequiredDescription
reviewsarray of ReviewRecordnoReviews, most recently active first.
countintegeryesHow many reviews this page holds.
totalintegeryesHow many reviews match the filters in all.
limitintegeryesThe page size used.
offsetintegeryesThe offset used.

ReviewReRequest​

Re-request a review after the spec changed.

Attributes: reviewers: The reviewers to ask in the new round; omit to ask the current round's reviewers again.

PropertyTypeRequiredDescription
reviewersarray of string or nullnoReviewers.

ReviewRequestCreate​

Request a review of a draft version.

Attributes: version: The version — its revision id or its version label. reviewers: User ids of the tenant members to ask; the requester cannot be one of them.

PropertyTypeRequiredDescription
versionstringyesVersion.
reviewersarray of stringyesReviewers.

VersionReviewStatus​

Where one version stands in review.

PropertyTypeRequiredDescription
version_idstringyesProject version identifier or semantic version label, depending on context.
version_labelstring or nullnoVersion Label.
publishedbooleanyesWhether the version is published; published versions cannot be reviewed.
stateenum "draft", "in_review", "approved", "changes_requested"yesThe open review's state, or draft when the version has no open review.
reviewReviewDetail or nullnoThe open review, when there is one.