v0.4 beta Self-host or cloud

Put something under the wheel.

Chock sits between merge and production and holds the release until the checks you actually care about have answered. When one is still thinking, it says which one, and who can clear it.

Free for one service while the beta runs. No card, no sales call.

Nothing ships until every gate has answered

Three things a gate has to do.

Every team already has checks. What they usually do not have is one place that knows which check is holding the release, and says so without anyone opening four tabs.

In the repo

chock.yml

Gates are declared in the repo they guard and reviewed like anything else in it. The gate that stopped Friday's deploy is in the diff, with a name on it and a reason underneath.

Name the holdup

Held

A held release reports the gate holding it, how long it has been held, and the person who can clear it. Nobody has to guess, and nobody has to ask in the channel.

Undo is cheap

Reversible

Rollbacks run the same pipeline backwards and answer to the same gates. Getting back should cost what getting there cost, which is most of why anyone hesitates.

Ten lines, checked in.

One file at the root of the service. Chock reads it on every merge and holds the release until each gate answers or times out.

  • No agent. It talks to the CI you already run.
  • No new DSL. Gates are shell exit codes and webhooks.
  • No silent pass. A gate that times out holds, it does not wave through.
service: api-gateway
environment: production

gates:
  - name: unit + integration
    run: make test
    timeout: 10m

  - name: staging soak
    webhook: https://soak.internal/api-gateway
    timeout: 20m

  - name: error budget
    run: ./bin/budget-check --window 7d
    on_timeout: hold