Both versions must pass
A fix is kept only if it passes on the current and the proposed API. Anything less opens no pull request.
A GitHub App for API teams
A GitHub App that finds the customer code your change breaks, tests a fix on both versions, and sends it as a pull request.
Works with
The Contacts API renames display_name to full_name in 2.0.0. Most of its callers are unknown to the API team, and some of them still read display_name and fail with KeyError.
You can't see whose code calls the operation you're changing, so you deprecate, email and wait.
Customers find out from a changelog or an error, then hunt for the call and patch it under pressure. Some never do, and the old version stays.
We move the fix to before your release.
Your pull request gets a check that shows how many opted-in customers your change affects.
The change check on pull request 17 of the Contacts API: 1 of 2 opted-in integrations verified, 1 inconclusive. Needs attention.
An AI agent writes a small fix, and we test it on the current and the new version.
The evidence for contacts-client: the original code passes on the current API and fails on the candidate API, as expected. The fix passes on both.
They get the fix as a pull request, but only if it passes on both versions.
Example
The migrations for the change: contacts-client is verified and ready for review. health-only-client is inconclusive, so it gets no pull request.
The customer's Monitored APIs list for Contacts API: contacts-client and health-only-client are watched, and billing-client is opted out.
Example: The pull request in contacts-client is ready for review: it reads full_name instead of display_name, and merging it is the customer's call.
A fix is kept only if it passes on the current and the proposed API. Anything less opens no pull request.
A repository is analyzed only after its admin enrolls it for your API.
No repository names, file paths, patches or logs reach you.
No credentials and no network while tests run, and it is removed afterwards.
The affected source files and your contract change: at most 5 files and 200 lines.
Only the affected source files and your contract change go to the AI model that writes the fix, from our backend, never their tests or secrets. Their code runs in a fresh, isolated sandbox and the results stay in our own database, where you never see them. We haven't set a retention policy yet.
On your repository it reads metadata and the contract, and posts a check on your pull request. On an opted-in customer repository it pushes its own branch and opens a pull request. The App asks for the same permissions everywhere: read metadata, write contents, pull requests and checks, only on repositories each side selects.
No, it only pushes its own branch to a customer's repository and opens a pull request for a person to review, it never merges, and your repository only gets the check.
Then that integration is inconclusive, so they get no pull request and your check counts it as can't be proven, never as safe.
No, you keep opening pull requests against your OpenAPI contract, and the check appears on them like any other.
It works with REST APIs described with OpenAPI 3.0 and clients in Python or TypeScript/Node that use common HTTP patterns. Verification currently covers GET operations with a path id and JSON responses, and behavior outside the declared contract is out of scope.
Yes, you invite them by email, and each customer opts in the repositories that call your API. We cover only those integrations, within what their tests exercise.
Everything under "Working today" has run on our demo repositories and test fixtures, in our development setup. A check there says the migration was prepared, not that a customer's deployment works.
Working today
Next
The first visit can take about a minute while the free host wakes up.
Not yet, because it's a hackathon build on a development sign-in and a free hosting plan.