Install the SlopGrade app on the repos you choose. Your check results show up here — for real.
Advisory free on every PR — every repo, public or private. Blocking in CI: Solo 49 $/mo for 10 private repos, Team 299 $/mo for 50. By default only a fingerprint leaves the runner.
Add it in ~5 lines — one check per pull request:
name: slop-gate
on: [pull_request]
jobs:
slop:
runs-on: ubuntu-latest
permissions:
contents: read
# ZERO SECRETS: GitHub proves this repo through OIDC → the Firewall resolves your entitlement server-side. Nothing to rotate.
id-token: write
# The Firewall posts the verdict as a sticky PR comment (summary + clickable leaks, updated in place) — needs PR write. Missing → it skips cleanly.
pull-requests: write
# Sends findings to the Security tab (Code Scanning: inline PR annotations, tracked + dismissible, free on public repos). Missing → it skips cleanly.
security-events: write
steps:
- uses: actions/checkout@v7
with: { fetch-depth: 0 }
# Pinned to the IMMUTABLE SHA of the release commit (a tag can be re-pointed, a SHA cannot); the comment gives the version — Dependabot / Renovate can update it.
- uses: maxor-tech/slopgrade-firewall@5294806b2284b24277db648c80c453fe2464f2bb # v0.13.10
with:
# gate = blocks on a cross-tenant leak OR a critical/high security finding when the repo is entitled —
# on a PR, ONLY what the PR introduces (existing debt is reported, never blocks your PR)
# (free: the cross-tenant gate + the open-source classes block; a paid repo adds the calibrated pro classes, every finding at file:line — see slopGrade /pricing). advisory = reports, never blocks.
firewall-mode: gate
# deep-scan: "false" # default "auto" (v0.13.10) = ON for public repos (sends the source of the files that hold a sink to the hosted engine, never hunks); a paid private repo opts in with deep-scan: true and also sends the PR's diff hunks. "false" keeps all source in the runner — see the Action README.
# deep-scan-block: "true" # with deep-scan + gate: a NEW deep-scan finding (no pack saw it) fails the check. ~1 false block in 3-4 measured on real CVEs — off by default.
# library-mode: "false" # default "auto" (on with the deep scan), published PACKAGE repos only: lists the library-tier candidates (public function parameter → sink) as "to triage" notices. Never blocking; ~2 in 3 remain after the fix.
# change-review: "false" # default "auto" (on with the deep scan, paid repos only; v0.13.4: a "review suggested" band on Go, Java, PHP and Ruby), pull requests only: the PR's diff hunks go to the diff-reading model, which lists the changes likely to WEAKEN security (a check removed) as "to triage" notices. Never blocking; catches ~36% of security fixes undone at ~0.2% false alarms per hunk and ~19% of real CVE-introducing commits (vs ~2.1% of ordinary commits; on the buggy hunk in 3.9%).
Public repo? The gate is free with no account at all — just add the workflow above.