GitHub Actions runs the code. Decionis decides whether the run is authorized. Evaluate deploys, AI-generated changes, and infra mutations against policy, approvals, and risk β then allow, block, or escalate before execution. Shadow mode never fails your build.
No credit card, no call. Or browse the source at github.com/decionis/govern.
- uses: decionis/govern@v1
with:
api-key: ${{ secrets.DECIONIS_API_KEY }}
org-id: ${{ secrets.DECIONIS_ORG_ID }}
workflow-key: github_deploy_approval
action: production-deploy # what's being gated
mode: shadow # records the verdict; never fails the build
comment-pr: 'true' # posts the verdict + verify link on the PRDrop it in, push, watch the verdicts. Zero risk in shadow mode.
The question every pipeline now faces
Claude Code, Copilot, Cursor, Codex, OpenHands. The hard question is no longer who wrote this code β it's should this action be allowed to execute? That's the Action Gate.
One verdict before execution β allow, block, or escalate. Composable into any later step.
Records what would have been blocked without ever failing a build. Observe, then enforce.
A signed, verifiable record of why it happened, who approved it, and which policy applied.
With comment-pr, the action posts a single, self-updating comment β re-runs edit it in place, so the thread never fills with bot spam. The signed verify link unfurls as an OG card in Slack, Teams, and LinkedIn.
π Verify this decision β signed, tamper-evident proof.
Shadow mode records what would have been blocked without ever failing a build. When you're convinced, wrap the command in run: β Decionis executes it only if authorized. No skippable if: to delete: the command runs through the gate or not at all.
- uses: decionis/govern@v1
with:
api-key: ${{ secrets.DECIONIS_API_KEY }}
org-id: ${{ secrets.DECIONIS_ORG_ID }}
workflow-key: github_deploy_approval
action: production-deploy
mode: enforce
run: ./deploy.sh # runs ONLY if Decionis authorizes itGate Claude Code / Copilot / Cursor changes before merge.
gate-ai-agent-pr.ymlBlock a deploy on a high blast-radius change.
gate-deploy.ymlGate apply on the plan's create/destroy counts.
gate-terraform.ymlRequire a verdict before a release ships.
gate-release.ymlAuto-merge dep PRs only on an allow verdict.
auto-merge-dependabot.ymlComment the would-be verdict without failing.
gate-pr-comment.ymlShow your pipeline is governed β and let other devs discover the check. Paste this into your README: