How it works

Four steps. You stay in charge.

Versionly watches the APIs your selected projects use. When those APIs change, you get a pull request to review — not an automatic merge.

01 · Connect

Link the GitHub repos you want watched.

You choose the projects. Nothing else is scanned.

See this step

app.versionly.dev/connect

Choose repositories

Acme Inc. · 3 available

acme/payments-apiTypeScriptReady
acme/customer-portalNext.js
acme/internal-toolsPython

02 · Detect

We watch the third-party APIs those projects call.

When a vendor changes their API, you hear about it here first.

See this step

app.versionly.dev/monitor/stripe

Live
S

Stripe API

OpenAPI + changelog monitoring

v2025.08
Breaking

Authorization header

POST /v1/intents · Renamed

Breaking

api_key parameter

confirm() · Removed

03 · Impact

We find where your code would break.

Not a vague alert — the exact files that need attention.

See this step

split view — broken vs Versionly

src/billing.ts

Your code now
12export async function charge(id: string) {
13 return stripe.paymentIntents.confirm(id, {
14 api_key: process.env.STRIPE_KEY,
15 })
16}

src/billing.ts

Versionly suggests
12export async function charge(id: string) {
13 return stripe.paymentIntents.confirm(id, {
14 stripeAccount: process.env.STRIPE_KEY,
15 })
16}

04 · Review

A pull request is opened. Your team merges it.

Suggested code arrives as a PR. You remain the editor-in-chief.

See this step

github.com/acme/payments-api

2 files · +2 −2
@@ src/billing.ts @@ confirm() −1 +1
return stripe.paymentIntents.confirm(id, {
- api_key: process.env.STRIPE_KEY,
+ stripeAccount: process.env.STRIPE_KEY,
})
@@ src/webhooks.ts @@ constructEvent() −1 +1
- stripe.webhooks.constructEvent(body, sig, secret)
+ stripe.webhooks.constructEventAsync(body, sig, secret)

Opening pull request…

Prefer plain language? Open Customer understanding.