Stripe
PayPal
Square
Razorpay
Adyen
Paddle
Chargebee
Plaid
OpenAI
Anthropic
Google Gemini
Groq
Mistral
Cohere
Hugging Face
Replicate
Together AI
Pinecone
Clerk
Auth0
Okta
WorkOS
Stytch
Firebase
Twilio
SendGrid
Resend
Mailgun
Postmark
Mailchimp
Vonage
OneSignal
Pusher
Ably
Slack
Discord
Telegram
Intercom
Zendesk
GitHub
GitLab
Vercel
Cloudflare
Netlify
Supabase
MongoDB
Redis
Algolia
Elasticsearch
Neon
PlanetScale
Appwrite
Convex
Sentry
Datadog
PostHog
Mixpanel
Amplitude
Twilio Segment
New Relic
Shopify
Contentful
Sanity
Prismic
Storyblok
Cloudinary
Mux
Notion
Airtable
Linear
Asana
Zoom
Dropbox
Mapbox
HubSpot
Salesforce
LaunchDarkly
Statsig
Flagsmith
Built for two jobs
The person who owns checkout, and the person who still reviews the PR.
Versionly watches third-party APIs in the GitHub repos you connect, maps breaking changes to files, and opens a pull request your team still reviews.
Product owners see blast radius in plain language. Engineers keep GitHub review rules. Same four steps. Read it without jargon.
What actually happens
Three moves. One human still ships.
- 01
Connect selected repos
Install the Versionly GitHub App. Tick the projects that call Stripe, OpenAI, Twilio, or anything else you track. Other repos never enter the workspace.
- 02
Scan against live vendor docs
A scan reads the repo and the vendor changelog / OpenAPI. You get findings with a file path and a line — not a generic “something changed” banner.
- 03
Review the pull request
If a patch is safe to propose, Versionly opens a PR on a deterministic branch. CODEOWNERS, CI, and the merge button stay yours. Nothing merges itself.
Walk the same loop as a day in the product. How it works
versionly/openai-model-retire · #184
OpenRetire gpt-3.5-turbo in chat completions
OpenAI deprecations table maps this id to gpt-5.6-terra. One call site in the payments worker. Review before merge.
openai.ts · suggested patchconst completion = await openai.chat.completions.create({- model: "gpt-3.5-turbo",+ model: "gpt-5.6-terra",messages,});
The vendor shipped. Checkout did not have to break.
Same payments repo, same afternoon. Read it as a day — not as four product features.
Playing · 09:10
GitHub App
Choose repositories
Acme Inc.
3 repos available
2
repos selected
Without it
Someone asks in chat which repos even talk to payments. The answer is a guess.
With Versionly
You tick payments-api. Other GitHub repos never enter Versionly.
- Product owner
- The person who owns the product names the surface.
- Engineer
- The person who writes the code installs the App only where it is needed.
When a vendor moves
A finding is a file, not a feeling.
We fetch the vendor’s own deprecations page and changelog — not a frozen lookup table. If OpenAI lists a replacement, that id goes in the patch. If the model would invent a name, the scan stops and tells you.
- Breaking vs advisory — auto-fix only when the change is mechanical
- Email, Slack, or an outbound webhook when a PR opens
- Scheduled, push, or dashboard scans — same review step
Latest scans
payments-apigpt-3.5-turbo retired on the deprecations table
openai.ts · 1 call site
PaymentIntent confirmation fields renamed
billing.ts, webhooks.ts
Messaging auth header moved
sms/client.ts
How teams use it
Keep the pager for real incidents. Not for a renamed header.
“The useful part is not the alert. It is the file list and a PR we can reject.”
“CODEOWNERS still apply. Versionly opens the branch. We still own the merge.”
“I can say “two files in checkout” instead of waiting for someone to grep the monorepo.”
FAQ
Questions, answered clearly.
Everything teams usually ask before connecting their first repository.
Next step
Connect one repo. Review the first pull request.
Start with the project that talks to payments or an LLM vendor. If the PR looks wrong, close it. Versionly does not merge.