merge & deploy freezes for GitHub · v1.0
Stop the merge.
Not the team.
Fwozen is a code freeze for a whole GitHub organisation. Turn it on for a release window, a holiday or an incident, from the web app, Slack, the REST API or a schedule. Every open pull request in scope gets a failing fwozen check until somebody lifts it, and one hotfix can still go through with a reason attached.
free · 5 private repos · no per-user pricing
scheduling, slack and the api are in the free tier
never reads your code
the problem
You already have a code freeze. It isn’t a control.
#releases topic
FREEZE — DO NOT MERGE. Works until somebody merges anyway.
30 × settings pages
Hand-edited branch protection, at 5pm on a Friday, by an admin.
cron.freeze.sh
Somebody wrote it. It broke in December, quietly.
None of them can tell you whether the freeze was in force, who lifted it, or why.
rulesets
You could do this with GitHub rulesets. Here’s where it stops.
Turn it on at 17:00 Friday, off 09:00 Monday
github rulesets
No time dimension exists. A human with a reminder, or a script you own.
fwozen
A recurring schedule, timezone- and DST-correct. In the free tier.
Let a non-admin freeze during an incident
github rulesets
No, changing a ruleset is an admin action.
fwozen
Freezing is a Fwozen permission. The Release Manager role needs no repo admin.
Let one hotfix through, with a record
github rulesets
Add the person to bypass_actors and hope somebody remembers to remove them.
fwozen
A per-PR exception with a required reason and a TTL that expires itself.
Show an auditor who froze main on 23 December, and why
github rulesets
The org audit log names who changed the ruleset. It carries no reason and no TTL.
fwozen
Append-only log with an actor, a source, a required reason, a timestamp and every exception.
Three repos and one admin? Use rulesets, with our blessing. The other five rows, free commands included →
a freeze
Three ways a freeze starts. One board it lands on.
A freeze means no pull request in its scope can merge. A thaw lifts it. Both carry an actor, a reason and a timestamp.
- on a schedule
- A recurring window or a one-off date, timezone- and DST-correct. Free tier.
- right now
- Pick the repositories, type a reason, freeze. It lands on every blocked pull request and in the log.
- one exception
- Let one pull request through, with a reason and a time limit that expires itself. Team plan.
1 freeze active
acme
Frozen branches
24
Watched branches
31
Blocked PRs
12
Worst enforcement
Verified
24 branches
Release freeze for 4.2. Cutting Thursday morning.
- Frozen by
- Priya Raman @praman from the dashboard
- Thaws in
- 2d 04:11:38
- Started
- 3 hours ago
- Blocked
- 12 open pull requests
deploys
The freeze doesn’t stop at the merge button.
A merge freeze that lets a deploy through is half a control. The gate is fwozen/gate-action, plus GET /v1/freeze-state for pipelines that aren’t GitHub Actions. It refuses the deploy while a freeze is on.
Both work on every plan, Free included. Team, $29/mo, adds fwozen/deploy-gate, a second required check you turn on per branch. A job that never calls the gate is never gated. How deploy gating works →
- name: Check the freeze
uses: fwozen/gate-action@v1
with:
token: ${{ secrets.FWOZEN_TOKEN }}
environment: production
# Fails while a freeze is in force.scope
Eight repository and org permissions. Not one call for your file contents.
Installing grants every permission Fwozen asks for, repository administration included. Fwozen never asks for contents: write and never reads your code. Every API call we make, itemised →
agents
Prefer a terminal, or an agent?
The CLI, the REST API and an MCP server are all in the free tier. An agent can take an organisation from nothing to an enforced freeze, with a person there only for consent. What agents may do here →
The CLI installs with curl -fsSL https://fwozen.com/install | sh. One file, Node 24 or newer, checked against a published sha256. It is not on npm, so npx fwozen does not work yet.
price
Priced so you don’t have to ask anyone.
free$0
5 private repos · scheduling, Slack and the API includedteam$29/mo
Unlimited private repos · fwozen/deploy-gate · per-PR exceptionsbusiness$99/mo
Unlimited orgs · Release Manager role · two-person exceptions · audit exportstart
Freeze something this afternoon.
Install the app. Make the fwozen check required. Fwozen writes that rule where your installation has granted it, and shows you the exact values where it has not. Then watch a two-minute freeze land on a real branch and thaw itself. If it isn’t obviously useful in ten minutes, we would rather you didn’t pay us.