The Problem
Dependabot and Renovate are great at bumping version numbers in your package.json, but they won't fix your code when a vendor introduces a breaking change.
When OpenAI or Stripe renames a parameter, drops a field, or updates a base path, your CI pipeline breaks or—worse—silent runtime errors slip into production. You end up manually searching the codebase, editing call sites by hand, or pasting broad context into AI tools hoping for an accurate fix.
What is Repairo?
Repairo is an open-source tool that continuously monitors OpenAPI specs for breaking changes, maps the exact impact across your codebase using compiler-grade AST parsing, and automatically generates compile-checked pull requests to fix the call sites.
-
Deterministic AST Transforms: Where the spec change is unambiguous (like
max_tokens→max_output_tokens), fixes are applied deterministically via Abstract Syntax Tree (AST) manipulation rather than probabilistic guessing. - Typecheck & Syntax Validated: Before proposing any changes, fixes are validated using TypeScript/JavaScript type-checking or Python/Go syntax checks.
- Human-in-the-Loop: Repairo opens a clean, reviewable PR with full change evidence—it never auto-merges.
Quick Start (CLI)
No signup or config file required. Run a quick scan against your codebase:
bash
npx repairo-cli scan ./src --vendors stripe,openai,supabase
Or test deterministic repairs locally:
# Install CLI globally
npm install -g repairo-cli
# Scan and run a dry-run repair
repairo check --vendors stripe,openai --target ./src
repairo repair --dry-run --target ./src
Links & Feedback
GitHub Repo: adityacs50-lab/Repairo
Live Web Demo: heyrepairo.in/
Give it a spin on your project, and let us know what vendors or language AST mappings you'd like to see supported next!
Top comments (1)
Excited to share Repairo with the community! We built this to bridge the gap between dependency updates and breaking API call sites using AST transforms and compile checks.
We'd love your feedback: How does your team currently handle breaking spec updates from external vendors, and what languages or AST mappings would you like us to support next?