Álvaro Brey 87417b48b2 ci: merge gate that tightens once the full suite is approved (#8235)
* ci: post a merge gate status that tightens once the full suite is approved

Adds a ci/all-tests-gate commit status driven from CircleCI. A no-requires
job posts success at pipeline start, approving the full-suite hold flips
it to pending, and all-tasks-passed posts success again once every full
job is green. Release pipelines post it from all-tests-succeeded so
release PRs are not blocked once the context is required.

The reduced suite needs no gate of its own: its jobs are already required
individually.

* test: find the merge gate by its instance name

all-tasks-passed is now an instance of the parameterized post-gate-status
job, so the workflow entry is keyed by the job name and carries name:.

* ci: never post the default gate success once the full suite is requested

full-suite-not-requested waits for the reduced suite and checks the
hold first: approved means halt without posting, so the gate goes from
unreported straight to pending; anything but on_hold fails the job
rather than posting success. all-tasks-passed reaches the reduced suite
through full-suite-started, so it keeps a single list, and the test
guards the list that gates normal PRs.

* ci: retry the gate status post

A failed POST leaves the gate at its previous value: green if the pending
post fails, stuck if the final success post fails. Retrying transient
errors narrows both. --retry-all-errors is not used: the cimg/base curl
predates it.

* ci: mark the merge gate pending when the bot approves the full suite

The bare @RCGitBot please test comment is the usual way to request the
full suite. Posting pending from the action right after a successful
approval closes the window on that path; a re-comment on an already
approved hold posts nothing. Manual approvals in the CircleCI UI keep
the window of one container start.

* ci: pin the gate's ordering in a test and trim the fan-in list

Asserts the state of each gate instance and the requires edges that
keep pending after the default success and the final success last.
Drops the two reduced-suite jobs all-tasks-passed still listed directly,
and lets the hold check log a curl failure instead of a bare exit code.
2026-11-06 15:32:43 +00:00
2026-11-05 11:30:29 -06:00
2026-11-06 10:45:51 +00:00
2026-11-05 11:30:29 -06:00
2026-10-08 11:28:28 -05:00
2026-10-08 11:28:28 -05:00

😻 In-App Subscriptions Made Easy 😻

License Version Carthage compatible SwiftPM compatible

RevenueCat is a powerful, reliable, and free to use in-app purchase server with cross-platform support. Our open-source framework provides a backend and a wrapper around StoreKit and Google Play Billing to make implementing in-app purchases and subscriptions easy.

Whether you are building a new app or already have millions of customers, you can use RevenueCat to:

  • Fetch products, make purchases, and check subscription status with our native SDKs.
  • Host and configure products remotely from our dashboard.
  • Analyze the most important metrics for your app business in one place.
  • See customer transaction histories, chart lifetime value, and grant promotional subscriptions.
  • Get notified of real-time events through webhooks.
  • Send enriched purchase events to analytics and attribution tools with our easy integrations.

Sign up to get started for free.

RevenueCat.framework

RevenueCat is the client for the RevenueCat subscription and purchase tracking system. It's 100% Swift and compatible with Objective-C.

Migrating from Purchases v4 to v5

Migrating from Purchases v3 to v4

RevenueCat SDK Features

RevenueCat
✅ Server-side receipt validation
➡️ Webhooks - enhanced server-to-server communication with events for purchases, renewals, cancellations, and more
🖥 iOS, tvOS, macOS, watchOS, Mac Catalyst, and visionOS support
🎯 Subscription status tracking - know whether a user is subscribed whether they're on iOS, Android or web
📊 Analytics - automatic calculation of metrics like conversion, mrr, and churn
📝 Online documentation and SDK Reference up to date
🔀 Integrations - over a dozen integrations to easily send purchase data where you need it
💯 Well maintained - frequent releases
📮 Great support - Contact us

Getting Started

For more detailed information, you can view our complete documentation at docs.revenuecat.com.

Please follow the Quickstart Guide for more information on how to install the SDK.

Tip

When integrating with SPM, it is recommended to add the SPM mirror repository for faster download/integration times: https://github.com/RevenueCat/purchases-ios-spm

Or view our iOS sample apps:

Requirements

  • Xcode 15.0+
Platform Minimum target
iOS 13.0+
tvOS 13.0+
macOS 10.15+
watchOS 6.2+
visionOS 1.0+

SDK Reference

Our full SDK reference can be found here.

Contributing

Contributions are always welcome! To learn how you can contribute, please see the Contributing Guide.

S
Description
No description provided
Readme MIT
1.2 GiB
0 Stars 1 Watchers 0 Forks
Languages
Swift 96%
Objective-C 2.2%
Ruby 1.6%