Eridian

Pull Requests

Summaries, release notes, and review comments on pull requests.

Eridian Dev can draft a pull-request body, a changelog fragment, and review comments from the same diff the review job already saw. Humans still open, approve, and merge.

Summarize

POST /v1/dev/pull-requests/summarize
Authorization: Bearer eridian_sk_...
Content-Type: application/json
Idempotency-Key: pr-4821-summary-v1
{
  "project_id": "prj_dev_001",
  "repository_id": "repo_payments_core",
  "model": "auto",
  "pull_request": {
    "host": "github",
    "number": 4821,
    "base_sha": "1a2b3c4d",
    "head_sha": "8f3a2b1c"
  },
  "audience": ["engineering", "release"],
  "include": ["summary", "changelog", "risks", "test_plan"]
}

Required scope: dev:write.

{
  "id": "prs_4821",
  "object": "eridian.dev.pull_request.summary",
  "model": "gpt",
  "title": "Require Idempotency-Key on ledger append retries",
  "summary": "Retries from postEntry now carry the same key as the first append.",
  "changelog": "ledger: fail closed when a 503 retry is missing an Idempotency-Key.",
  "risks": ["Callers that retried without a key will now error."],
  "test_plan": ["Unit: 503 retry with and without a key.", "Integration: ledger append duplicate."],
  "citations": [
    { "path": "src/ledger/posting.ts", "start_line": 198, "end_line": 240 }
  ],
  "eridian": {
    "route": "gpt",
    "region": "eu-west-1",
    "cost_usd": 0.021
  }
}

Apply to the host

POST /v1/dev/pull-requests/summarize/prs_4821/apply
Authorization: Bearer eridian_sk_...
{
  "target": "github",
  "fields": ["title", "body"]
}

Apply overwrites the PR title and body on the host. It does not merge. If the host rejects the bot, the API returns 403 git_host_forbidden.

Release notes

For a tag range:

POST /v1/dev/releases/notes
Authorization: Bearer eridian_sk_...
{
  "project_id": "prj_dev_001",
  "repository_id": "repo_payments_core",
  "from_ref": "v2.4.0",
  "to_ref": "v2.5.0",
  "model": "gpt"
}

Release notes group merged PRs by conventional labels (feat, fix, security) when present. They cite PR numbers, not generated prose without a source.

Comments without a full review

You can attach comments from an existing review:

POST /v1/dev/reviews/rev_4821_01/publish

See Code Review. Do not duplicate that job by asking the summarizer to "also find bugs." Summaries are for humans who will not read the diff. Findings belong on the review object.

Templates

Pin a published prompt template for house style:

{
  "template_id": "tpl_pr_summary_v3",
  "template_variables": {
    "desk": "payments",
    "audience": "release"
  }
}

Template publish still follows Prompt Templates and Dual Control when evals_required is true.

Webhooks

Subscribe to dev.pull_request.summarized and dev.review.completed on Webhooks. The payload includes pull_request.number, repository_id, route, and cost_usd. It does not include source.

See CI Pipelines to require a summary before merge, and Dev Limits for diff size.

Production API credentials are issued with an institution workspace. Contact sales if you need access.