Skip to content
IonWarpRouterTry for free
IonWarp Docs
API

Repositories & PRs

A project is one repository behind a GitHub App installation; every pull request on it is an object reviews, scorecards and plans point at.

A repository reaches IonWarp through a GitHub App installation. Creating a project names both — repository: {full_name, installation_id} — and from then on every pull request on it becomes an object here, the anchor for everything downstream: reviews, scorecards and plans all point at a pull request.

Retrieve a pull-requestGET /api/v1/pull-requests/learning-tests-run-under-bun

curl "https://ionwarp.com/api/v1/pull-requests/learning-tests-run-under-bun" \
  -H "Authorization: Bearer $DASH_API_KEY" \
  -H "Project-ID: pr_acme"
Show me the review findings on PR {id}
data_get {
  "collection": "pull_requests",
  "object_id": "learning-tests-run-under-bun"
}

{
  "object": "pull-request",
  "id": "obj_123",
  "number": 630,
  "title": "Collapse the review dispatch fast path",
  "state": "open",
  "created_at": "2026-07-25T12:00:00.000Z",
  "updated_at": "2026-07-25T12:00:00.000Z"
}

Every field, filter and sort is in the pull-requests reference. The ones worth knowing by name: review_status and last_reviewed_at (where review got to), last_review_run_id (the receipt to read), preview_url (the page a UX or performance reviewer opens), and the auto_review_* block, which records whether automatic review is on for this PR and, when it is off, who turned it off and why.

What to know before you call it

Pull requests are read-only over the API: rows are written by the GitHub App webhook and the repo sync, so create / update / delete answer 405 operation_not_supported. Connecting a repository end to end — installation, repository, project — is Connect GitHub.

Two event kinds decide whether a review dispatches: pulls.created (opened, reopened, or marked ready for review) and pulls.updated (a new head pushed). Repository identity — full name, installation, default branch — lives on the project, never in a prompt.

A PR that IonWarp deliberately does not review says why rather than going quiet: the reason is recorded on the row (auto_review_disabled_reason) or named on the run (Debugging a Run). Drafts, closed PRs, a head that was already reviewed, and titles matching ionwarp.review.skip_pr_pattern are all skipped this way. A skip_pr_pattern that will not compile matches nothing and reports itself — config we cannot read never suppresses a review.

Next: Reviews to start one on a PR by hand · Reviewers & Models to pick the lineup · Plans for the work a repo proposes to itself.

On this page

IonWarp logoIonWarp

Ready to build? Connect an agent and go — no credit card needed to start.

Get startedSee our plans