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 ]⌗
$ 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 sitesRun 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 ]⌗
$ npx repairo-cli scan ./src --vendors stripe
# click Run scanHow it works
Four steps, same order every time.
Diff the spec, map the repo, generate the patch, open the PR. Nothing auto-merges.
Diff
What changed in the vendor OpenAPI?
Impact
Which files still use the old API?
Repair
Patch + typecheck (or syntax check)
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 ]⌗
@@ 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 },
+ });
>_ [ fig. 4 — verify ]⌗
$ 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 PRWhy 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 UIWhat 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.
src/payments/customer.ts12 referencessrc/shipments_client.pybreakingsrc/jobs/reconcile.tsindirectYou 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.
>_ [ fig. 5 — github review ]⌗
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 },
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
Upcoming
- ClerkAuth SDK migrations
- Private OpenAPIEnterprise / VPC
- Custom vendorsTeam-pinned specs
Live spec pins (catalog)
| Vendor | Pin | Consumers | Watch |
|---|---|---|---|
| Stripe | OpenAPI pin · 2024-06-20 | TS · Py · Go | • active |
| OpenAI | Platform OpenAPI | TS · Py | • active |
| Anthropic | Messages API spec | TS · Py | • active |
| Supabase | Management API | TS | catalog |
| Gemini | Discovery API | TS · Py | catalog |
| GitHub REST | Official OpenAPI | TS | • active |
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.
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.
01 / Detect
OpenAPI pin shows
customer.sourceremoved on the Stripe API version your SDK targets.02 / Impact
AST scan marks
src/payments/customer.tsand related jobs — references, not guesses.03 / Repair
AST rewrite on the impacted lines — not a whole-file LLM paste.
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.
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.
Changelog
All releasesGo 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