Erik is the founder of Cloud Posse and creator of Atmos. With over a decade of experience helping teams adopt Terraform at scale, he is passionate about open-source infrastructure tooling and developer experience.
Atmos makes it easy to manage infrastructure at scale. Some teams run hundreds of stacks across every environment from a single repo, and a one-line change can fan out to all of it. That's a feature — until the moment when it isn't. A pull request with a huge blast radius doesn't always mean you meant to validate every environment in CI right now.
When someone opens a pull request that touches 247 stacks, you probably don't want every one of those workflows to fire on the first push. Atmos Pro now holds the batch automatically when a PR would dispatch more than your repository's configured threshold — and surfaces a one-click approval right in the existing PR status comment.
atmos-probotcommented 30 seconds ago
Warning
Dispatch held — this PR would trigger 247 instance dispatches (threshold: 50). A user with write/admin access on the repo can approve.
View batch in Atmos Pro
Dispatch all 247 stacks anyway
atmos-probotupdated just now
Warning
Dispatch paused — it looks like this pull request is under active development. To avoid dispatching workflows for every new commit, Atmos Pro has paused dispatches for this PR. A user with write/admin access on the repo can resume dispatches.
View batch in Atmos Pro
Resume dispatches
A user with write or admin on the repo can release the hold by ticking the checkbox in the PR comment or by clicking Dispatch anyway in the batch dashboard. The link in the callout takes reviewers straight to the Atmos Pro batch view so they can see exactly what would dispatch before they approve.
The second half is the rapid-push cooldown. When a contributor pushes a flurry of commits to the same PR in quick succession, every push is a separate fan-out — and every fan-out spends GitHub Actions minutes. Atmos Pro now detects rapid pushes and pauses dispatches at the PR level. New pushes accumulate but don't fire until a user with write or admin resumes them — from the PR comment or from the batch dashboard.
Resuming dispatches also resets the cooldown clock. Pushes from before the resume no longer count toward the next rapid-push window, so the breaker can trip again only after a fresh burst arrives after the unfreeze.
Draft pull requests are now held automatically. Atmos Pro records their status and updates the PR comment with a dispatch anyway checkbox, but it does not automatically dispatch workflows or submit formal GitHub PR reviews while the PR remains in draft. When the PR is ready for review, future processing resumes the normal dispatch and review flow.
The third circuit breaker protects the GitHub API budget itself. Before a large fan-out, Atmos Pro checks the latest GitHub REST quota for the installation and reserves 25% of the observed remaining budget for follow-up work like check updates, PR comments, reconciliation, and approvals.
If the requested dispatch batch cannot fit inside the safe budget, Atmos Pro holds the entire batch instead of partially trickling it. The PR comment and check explain that dispatch is paused for GitHub rate-limit protection and include the attempted dispatch count, safe dispatch budget, reserved headroom, and reset time when GitHub reports one.
Rate-limit holds now recover automatically without stampeding GitHub at reset time. A serialized recovery scheduler wakes after the reported retry/reset window, allocates the safe budget across held PRs for the same installation, and releases only the batches that fit. If GitHub still rate-limits an individual worker during recovery, that row is returned to pending, the hold is refreshed with the latest retry/reset details, and the batch re-enters the same recovery loop.
The PR comment controls are one-shot commands, not durable checkbox state. After a user checks dispatch anyway or resume dispatches, Atmos Pro rewrites the comment from the database state so stale checked boxes do not keep replaying old commands.
A held or paused PR doesn't sit forever on a yellow "pending" check. The GitHub Check Suite reports action_required (the orange ! state) with the batch URL as the check details link — so reviewers see a real blocker that explains itself, not a spinner that looks like work in flight.
The per-repo dispatch threshold defaults to 50 dispatchable stacks. Adjust it on the repository settings page. The rapid-push cooldown window and push count are also configurable per-repository. The count-based and rapid-push circuit breakers are opt-in per repository; GitHub rate-limit protection is automatic.