Reviews
Reviews endpoints of the Ellipsis REST API.
| Method | Path |
|---|---|
| POST | /v1/reviews |
Reviews an open pull request. Which pipeline runs is not a parameter: it resolves from the repository's files exactly as it does for a push, so an on-demand review never disagrees with the automatic one. A review is one pipeline run over one commit range, with one agent session per stage: `review.id` is the run id, and `stages[].session_id` is where a client streams (/sessions/{id}/stream on a stage session), since the review itself is a pipeline rather than one process.
curl -X POST "https://api.ellipsis.dev/v1/reviews" \
-H "Authorization: Bearer $ELLIPSIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"owner": "...",
"pull_request_number": 0,
"repo": "..."
}'import os
from ellipsis import Ellipsis
client = Ellipsis(api_key=os.environ["ELLIPSIS_API_TOKEN"])
result = client.reviews.create("...", 0, "...")
print(result)import { Ellipsis } from '@ellipsis-dev/sdk';
const client = new Ellipsis({
apiKey: process.env.ELLIPSIS_API_TOKEN!,
});
const result = await client.reviews.create(
{ owner: '...', pull_request_number: 0, repo: '...' },
);
console.log(result);Request
Body parameters
The repository owner's login.
truebooleanWhether the review is posted to GitHub. Setting this false keeps the review API-only; it cannot force posting where posting is otherwise disabled.
The pull request to review.
The repository name, without the owner.
What range to review. Defaults to an incremental review of everything since the last review.
Response
| Method | Path |
|---|---|
| GET | /v1/reviews |
`findings` and `configuration` are omitted (counters only). Each filter is a set: repeat `repository`, `pull_request_number`, or `status` to match any of several values. Webhook-created reviews appear here too, so this answers "show me every review on this PR".
Query parameters
[]array<string>Only reviews on these repositories, each as owner/name. Repeat the parameter for several.
[]array<integer>Only reviews on these pull request numbers. Repeat the parameter for several.
[]array<CodeReviewRunStatus>Only reviews in these statuses. Repeat the parameter for several.
50integercurl "https://api.ellipsis.dev/v1/reviews" \
-H "Authorization: Bearer $ELLIPSIS_API_KEY"import os
from ellipsis import Ellipsis
client = Ellipsis(api_key=os.environ["ELLIPSIS_API_TOKEN"])
for item in client.reviews.list():
print(item)import { Ellipsis } from '@ellipsis-dev/sdk';
const client = new Ellipsis({
apiKey: process.env.ELLIPSIS_API_TOKEN!,
});
for await (const item of client.reviews.list()) {
console.log(item);
}Request
Response
| Method | Path |
|---|---|
| GET | /v1/reviews/{review_id} |
Includes its scope, the per-stage sessions, the parsed findings, the finding counters, and the posting outcome. Findings only exist after a stage session finalizes — a running review honestly reports [] / null, which is why a client streams a stage session and then re-fetches the review.
Path parameters
curl "https://api.ellipsis.dev/v1/reviews/{review_id}" \
-H "Authorization: Bearer $ELLIPSIS_API_KEY"import os
from ellipsis import Ellipsis
client = Ellipsis(api_key=os.environ["ELLIPSIS_API_TOKEN"])
result = client.reviews.get("...")
print(result)import { Ellipsis } from '@ellipsis-dev/sdk';
const client = new Ellipsis({
apiKey: process.env.ELLIPSIS_API_TOKEN!,
});
const result = await client.reviews.get('...');
console.log(result);