Same install everywhere we ship: GitHub Action, LangChain (Python & JS), Azure API Management, Slack, Shopify. The gate observes, records a signed Decision Dossier, and never changes caller behaviour β until you decide to enforce. One-line change to flip, reversible without uninstalling.
You don't have to wire every surface β start with the one whose audit you'd be asked about first. Tabs below swap the install snippet to that surface verbatim.
Drops into any workflow YAML in one line. Verdicts surface on the PR + the run summary.
# .github/workflows/deploy.yml
- uses: decionis/govern@v1
with:
api-key: ${{ secrets.DECIONIS_API_KEY }}
org-id: ${{ secrets.DECIONIS_ORG_ID }}
workflow-key: github_deploy_approval
mode: shadow # β every verdict recorded; step never fails
comment-pr: 'true' # β post verdict + verify URL on the PR
Every gated call produces a signed Decision Dossier. Nothing changes for callers.
Each PR carries a Decionis comment with the verdict, dossier id, and verify URL. The same dossier is in your Decionis audit log (filter by workflow_key=github_deploy_approval).
/verify/decision-dossiers/<id>.One-line change. Reversible without uninstalling.
# .github/workflows/deploy.yml
- uses: decionis/govern@v1
with:
api-key: ${{ secrets.DECIONIS_API_KEY }}
org-id: ${{ secrets.DECIONIS_ORG_ID }}
workflow-key: github_deploy_approval
- mode: shadow
+ mode: enforce # β step fails on a block verdict
comment-pr: 'true'
Same dossier id, same verify URL, same audit log β the only difference is that blocked verdicts now actually hold the action. If a real workflow regresses, swap back to shadow: the rollback is the same one-line edit, in reverse.
Every dossier ID you record in shadow opens to a public verification page and unfurls with the OG verdict card in Slack / Teams / LinkedIn. Use them in the rollout review packet β the same signed artifact is the proof your CFO, your security reviewer, and your customer's auditor all want.