DEV Community

adityacs50-lab
adityacs50-lab

Posted on

Repairo: Stop Breaking Builds When Vendor OpenAPI Specs Update

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!
Enter fullscreen mode Exit fullscreen mode

Top comments (1)

Collapse
 
adityacs50lab profile image
adityacs50-lab •

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?