IonWarp logoIonWarp
Get started
IonWarp Docs
API

Repositories & PRs

Connect a repository through the GitHub App, watch its pull requests, and read the PR projection every review is keyed to.

A repository reaches IonWarp through a GitHub App installation, and from then on every pull request on it becomes an object here. That object is 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_task_id / active_task_id / active_swarm_id (what is running now), preview_url (the page a UX or performance reviewer opens in a browser), 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, repo pick, project — is Connect GitHub, driven by the repo-connect skill; writing back to it is open-pr.

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 — repo slug, installation, default branch — lives in the project's agentConfig.github, 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 for what a review produces · 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