Ajoute le gate en deux minutes.
Un fichier de workflow. Aucun compte requis pour un repo public, aucun secret à stocker — GitHub prouve ton repo par OIDC. Ton code reste dans ton runner.
Trois étapes vers une pull request protégée.
Ajoute le workflow
Crée .github/workflows/slop-gate.yml. Garde le nom de job slop — c'est le check que tu exigeras.
# .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.2Ouvre une pull request
Le check slop tourne sur la PR. Les findings apparaissent sur leur ligne, dans le résumé du run et — avec security-events: write — dans l'onglet Security.
Exige le check
Fais de slop un status check requis sur main (protection de branche GitHub, ou « Protéger main » dans l'app). Un finding bloquant arrête maintenant le merge.
Chaque option est désactivée ou sûre par défaut.
| Input | Défaut | Ce qu'il fait |
|---|---|---|
firewall-mode | gate | gate bloque sur un finding bloquant quand le repo y a droit ; advisory signale seulement ; off désactive. |
strict | false | Échoue fermé quand aucun verdict n'est disponible (par défaut : fail-open). |
upload-sarif | true | Envoie les findings vers Code Scanning avec ton propre jeton (requiert security-events: write). |
sarif-file | — | Écrit aussi le rapport SARIF dans un fichier. |
deep-scan | false | Payant, opt-in : envoie aussi la source des fichiers porteurs d'un sink (≤ 40 fichiers) au moteur de taint hébergé. Le seul mode qui envoie du code. |
deep-scan-block | false | Avec deep-scan + gate : un nouveau finding du deep scan fait échouer le check. |
Gratuit là où ça compte le plus.
Repos publics
Le gate cross-tenant + les 22 classes open source bloquent, pour toujours.
Ton premier repo privé
Les mêmes classes qu'un repo public — un par compte.
Autres repos privés
Le nombre + un exemple localisé par classe ; jamais bloqué tant que le repo n'a pas de slot payant.
Branche-le sur le reste de ton pipeline.
verdict (advisory · gate-blocked · gate-unpaid · gate-pass), blocked, hard-leaks, blocking-findings, conformance, entitled, sarif-uploaded.
GitHub donne aux PR de forks un jeton en lecture seule : le gate tourne quand même, le feed de commentaires et l'envoi vers l'onglet Security sont ignorés.
Chaque run affiche une ligne de couverture (packs · fichiers scannés) : un run propre n'est jamais confondu avec un run vide.
node isolation-gate.mjs --print-payload affiche le payload et s'arrête sans contacter le serveur.