OpenAPI diff → repair PR

Dependabot updated the package. The build is still broken.

Repairo diffs the vendor spec, finds the call sites that still use the old shape, and opens a PR with patches that typecheck. You merge when it looks right.

OpenAPI diff · impact map · PR you merge · GitHub App

Languages: TypeScript · JavaScript · Python · GoAvailable: Stripe · OpenAI · Anthropic · Supabase · Gemini · GitHubnpm i -g repairo-cli

>_ [ fig. 1 — scan + repair ]⌗

repairo-cli · scan + repair• FIXTURE
$ npx repairo-cli scan ./src --vendors stripe,openai
watching 2 vendors · OpenAPI diff · TS + Python impact

stripe   breaking  high   src/payments/customer.ts:42
  customer.source → removed in 2024-06-20
stripe   breaking  high   src/shipments_client.py:9
  status "queued" → "pending"

2 call sites · verified repair ready
$ npx repairo-cli repair --open-pr
opened PR #184  fix(stripe): migrate consumer call sites
cli · example outputts + python · pass

Run a scan in the browser

Same engine as /demo — bundled Stripe-style fixture, no install. Output is real repair JSON from the server.

>_ [ fig. 2 — live fixture scan ]⌗

fixtures/payments-ts · scan• LIVE
$ npx repairo-cli scan ./src --vendors stripe
# click Run scan
no repo access · read-only fixtureclick Run scan

How it works

Four steps, same order every time.

Diff the spec, map the repo, generate the patch, open the PR. Nothing auto-merges.

01

Diff

What changed in the vendor OpenAPI?

02

Impact

Which files still use the old API?

03

Repair

Patch + typecheck (or syntax check)

04

PR

You review and merge on GitHub

Patch preview

Before and after on a real call site

AST-sized edits from the payments fixture — not a whole-file LLM paste. Copy-friendly diff below.

>_ [ fig. 3 — patch view ]⌗

src/payments/customer.tsSAFE
  @@ call site @@ 
await stripe.customers.create({
  email,
  source: token.id,
});
+ await stripe.customers.create({
+   email,
+   payment_method: token.id,
+   invoice_settings: { default_payment_method: token.id },
+ });
Rename deprecated customer.source usagedeterministic AST

>_ [ fig. 4 — verify ]⌗

fixtures/payments-ts · tsc + syntaxPASSED
$ npx tsc --noEmit --project tsconfig.json
$ npx repairo-cli verify --consumers src/payments

src/payments/customer.ts — 0 errors
src/jobs/reconcile.ts — 0 errors

python -m py_compile src/shipments_client.py — ok

verify: passed · safe to open PR
compiler gatefail-closed on ambiguity

Why bother

CI should not be the first place you learn the API moved.

When Stripe or OpenAI ships a breaking field rename, someone on your team still greps the repo. Repairo is the grep — plus a proposed fix and a compile check.

See the repair UI

What you get in the PR

Detected, patched, checked — labeled separately.

Flip through impact, the diff, and verify. Optional AI only suggests enum mappings when the spec alone is ambiguous; it never writes files by itself.

Impact

Which files actually call this API?

From the OpenAPI diff we list call sites and types that reference the changed field or route — file and line, not a heatmap.

Needs review
stripe-nodesrc/payments/customer.ts12 references
stripe-pythonsrc/shipments_client.pybreaking
billing.syncsrc/jobs/reconcile.tsindirect
confidence / 0.86provenance / vendor diff + compilerreview / required

You own the merge

We open the PR. You decide.

Repairo is not an agent that force-pushes to main. It shows what changed in the spec, what it touched in your code, and whether tsc complained.

DetectedInferredGeneratedVerified

>_ [ fig. 5 — github review ]⌗

PR #184 · fix(stripe): migrate consumer call sitesREADY

DetectedGeneratedVerified

You review in GitHub — Repairo does not auto-merge.

  @@ src/payments/customer.ts @@ 
  source: token.id,
+   payment_method: token.id,
+   invoice_settings: { default_payment_method: token.id },
+12 −4 · 2 fileslabels: repair · api-drift

Vendors

Who we watch today.

Public OpenAPI or Discovery pins for the list on the left. Everything else is on the roadmap — we would rather say "not yet" than fake it.

Available

  • StripeOpenAPI watch + AST repair
  • OpenAIPlatform & Chat APIs
  • AnthropicMessages API / SDK drift
  • SupabaseManagement API contract
  • Google GeminiGenerative AI Discovery
  • GitHub RESTOfficial OpenAPI pin
Browse agents

Upcoming

  • ClerkAuth SDK migrations
  • Private OpenAPIEnterprise / VPC
  • Custom vendorsTeam-pinned specs
Get notified

Live spec pins (catalog)

VendorPinConsumersWatch
StripeOpenAPI pin · 2024-06-20TS · Py · Go• active
OpenAIPlatform OpenAPITS · Py• active
AnthropicMessages API specTS · Py• active
SupabaseManagement APITScatalog
GeminiDiscovery APITS · Pycatalog
GitHub RESTOfficial OpenAPITS• active
Install a vendor agent

Security

Your code is not our training set.

Files are read for a repair job, processed in memory, then dropped. PRs do not auto-merge. Details on /security.

01 / CODE

Spec and consumer files are fetched for a repair, processed in memory for that job, then discarded. We do not train on customer code.

02 / ACCESS

GitHub OAuth with repo and read:user only. Tokens encrypted at rest. You revoke anytime in GitHub.

03 / REVIEW

Repairo opens a PR with evidence and stops. A human on your side merges — or closes it.

Full security model

Fixture you can replay

Stripe removes customer.source — we ship a PR that still typechecks.

Same story as the demo: spec diff, file list, patch, then tsc --noEmit. Clone the repo and run npm test if you want proof.

2Shipping fixture files repaired cross-domain
tscClean compile on repaired consumers
113/113Engine suite green (local CI)
fail-closedAmbiguous AI mappings never auto-merge
  1. 01 / Detect

    OpenAPI pin shows customer.source removed on the Stripe API version your SDK targets.

  2. 02 / Impact

    AST scan marks src/payments/customer.ts and related jobs — references, not guesses.

  3. 03 / Repair

    AST rewrite on the impacted lines — not a whole-file LLM paste.

  4. 04 / Verify

    Typecheck (and tests when configured) must pass before Repairo opens the pull request.

FAQ

FAQ

Short answers. No sales script.

What happens to our code?

For a repair job we fetch the OpenAPI spec and consumer files you point us at, process them in memory, and use that output to build a diff. We do not sell your code or use it to train third-party models. Workspace metadata (integration config, run status, PR links) is stored in our database; file contents are not kept as a long-term archive after the job finishes. See /security for OAuth scopes and retention details.

What does Repairo fix?

Breaking and risky changes in third-party OpenAPI specs — renames, removed fields, URL moves, enum changes, and similar contract drift. Repairo diffs the spec, finds affected TypeScript, JavaScript, Python, and Go call sites where we have transforms, runs compiler or syntax checks when configured, and opens a GitHub pull request for your team to review. It is not a general-purpose code generator.

Why would my team use this?

Because API updates still land in your repo as surprise compile errors, flaky tests, or production incidents. Repairo shortens the loop from “the vendor changed something” to “here is the diff that updates our clients,” with evidence attached instead of a manual file-by-file hunt.

What happens when an API changes?

On hosted plans, Repairo can poll vendor OpenAPI pins or react to spec changes in your repo (GitHub App or webhooks, depending on setup). When a breaking change is detected, it maps impact, prepares patches, and opens a PR. Nothing merges automatically — you review and merge on your schedule.

Does Repairo find security vulnerabilities too?

No. Repairo focuses on API contract drift and client repairs, not CVE scanning or dependency advisories. Use your existing security tooling for vulns; use Repairo when the API shape changed and your integration code needs to catch up.

How do I get started?

Fastest path: try the in-browser demo at /demo, or install the CLI (npm i -g repairo-cli) against a local repo. For your own GitHub repo, install the GitHub App or sign in to the workspace, pick a repository, and tell Repairo where the OpenAPI spec and client files live. Vendor agents add remote spec watching once an integration is configured.

Talk to us

Walk through your API on a call.

Tell us which vendor bit you and we will run the tool on a similar change live. No deck.

No pitch deck required. Just the integration you need to understand.

Hosted workspace

Early access list

Try /demo first. Leave an email if you want the GitHub-connected workspace when we open the next batch.

OR

Community

Questions, vendors, setup help

Ask in GitHub Discussions, open a GitHub issue for bugs, or read the security model before connecting a repo.

  • Go joins TypeScript/JavaScript/Python as a fully-repaired language

    Deterministic Go repairs for URL literals, enum renames, and required map fields

  • First-class Python consumer repair

    GitHub App and CLI scan .py consumers

  • Vendor poll cron + multi-language patches + agent marketplace

    Secured /api/cron/poll-vendors

PRICING

Free CLI on npm · Hosted Free for early teams · Pro from $29/mo

See plans & FAQ