Add the gate in two minutes.
One workflow file. A public repo works before you even sign up, with no secret to store — GitHub proves your repo with OIDC. Your code stays in your runner.
Three steps to a gated pull request.
Add the workflow
Create .github/workflows/slop-gate.yml. Keep the job name slop — it is the check you will require.
# .github/workflows/slop-gate.yml
name: slop-gate
on: { pull_request: {} }
jobs:
slop: # keep the job name: it is the check you require
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write # required — OIDC proves the repo, no secret
pull-requests: write # optional — inline findings on the PR
security-events: write # optional — Security tab (Code Scanning)
steps:
- uses: actions/checkout@v4
with: { fetch-depth: 0 }
- uses: maxor-tech/slopgrade-firewall@ad16c325dfe136c2f66107da87655b3b330e8575 # v0.9.2Open a pull request
The slop check runs on the PR. Findings appear inline on their line, in the run summary and — with security-events: write — in the Security tab.
Require the check
Make slop a required status check on main (GitHub branch protection, or « Protect main » in the app). A blocking finding now stops the merge.
Every option is off or safe by default.
| Input | Default | What it does |
|---|---|---|
firewall-mode | gate | gate blocks on a blocking finding when the repo is entitled ; advisory reports only ; off disables. |
strict | false | Fail closed when no verdict is available (default fails open). |
upload-sarif | true | Send findings to Code Scanning with your own token (needs security-events: write). |
sarif-file | — | Also write the SARIF report to a file. |
deep-scan | false | Paid, opt-in : also send the source of sink-bearing files (≤ 40 files) to the hosted taint engine. The only mode that sends code. |
deep-scan-block | false | With deep-scan + gate : a new deep-scan finding fails the check. |
Free where it matters most.
Public repos
Cross-tenant gate + the 22 open-source classes block, forever.
Your first private repo
Same classes as a public repo — one per account.
Other private repos
Count + one located sample per class ; never blocked until the repo has a paid slot.
Wire it into the rest of your pipeline.
verdict (advisory · gate-blocked · gate-unpaid · gate-pass), blocked, hard-leaks, blocking-findings, conformance, entitled, sarif-uploaded.
GitHub gives fork PRs a read-only token : the gate still runs, the inline feed and the Security-tab upload are skipped.
Every run prints a coverage line (packs · files scanned), so a clean run is never mistaken for an empty one.
node isolation-gate.mjs --print-payload prints the payload and exits without contacting the server.