Deploy Gate
ActionsTags
(2)Block AI deploys until a human signs.
AI agents can open PRs. They should not deploy to production.
This GitHub Action enforces that boundary.
▶ Try the interactive demo — no login, no setup, 15 seconds.
PR opened → ❌ Deploy blocked → Human authorizes → ✅ Signed → Merge unlocked
Add to your workflow:
# .github/workflows/deploy-gate.yml
name: Deploy Gate
on:
pull_request:
branches: [main]
jobs:
gate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: permission-protocol/deploy-gate@v2
with:
pp-api-key: ${{ secrets.PP_API_KEY }}- Get API key → https://app.permissionprotocol.com
- Add secret:
gh secret set PP_API_KEY -b "pp_live_..."- Open a PR → watch it get blocked → approve → merge
Takes ~3 minutes. One secret.
- Blocks risky PRs with a required status check
- Posts a PR comment with a direct approval link
- Sends the reviewer to Permission Protocol to approve and sign
- Unblocks the PR instantly after approval
- Produces a tamper-evident approval record
AI agents can write code, open PRs, and trigger workflows — but they should not have authority to deploy on their own.
Today:
- approvals are mutable
- logs are not proof
- systems trust state, not intent
Deploy Gate enforces:
- Explicit human signer (Ed25519)
- Signature bound to exact action (commit, repo, environment)
- Single-use receipt (replay fails)
- Tamper-evident — mutation invalidates approval
It does not trust database state. Only signed receipts.
PR opened
│
▼
Deploy Gate checks for valid receipt
│
├── Receipt exists ───────────────► Merge allowed
│
└── No receipt ───────────────────► Blocked
│
▼
PR comment with approval link
│
▼
Human approves + signs
│
▼
Re-run CI → Merge allowed
No install required:
- Open demo PR
permission-protocol/pp-demo#35 - Click Authorize Deploy
- Approve → see your signed receipt
MIT — see LICENSE
Deploy Gate is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.