Ce qui sort de ta CI. Ce qui n'en sort jamais.
slopGrade est une Action GitHub qui tourne dans ton runner. Par défaut ton code n'en sort jamais — seule une empreinte structurelle en sort. Voici exactement ce qui est envoyé, où ça va, et comment le vérifier toi-même.
Ça dépend seulement de ce que tu actives.
Empreinte seulement
- Envoyé
- Les chemins de fichiers et {file, line, kind} par finding.
- Jamais envoyé
- Ton code, le contenu des fichiers, les valeurs secrètes.
- Où
app.slopgrade.ai, prouvé par un jeton OIDC GitHub.
Deep scan
- Envoyé
- La source d'au plus 40 fichiers / 2M caractères — uniquement les fichiers qui portent un sink dangereux.
- Conservé
- Rien du code — transmis au moteur, puis jeté. Seuls file:line, le CWE et une preuve d'une ligne restent.
- Par défaut
- Désactivé. Informatif quand il est actif ; bloquant seulement si tu le choisis.
Auto-hébergé
- Envoyé
- Rien. Le moteur tourne dans ton infrastructure, en air-gap.
- Pour
- Du code qui ne doit jamais sortir (réseaux régulés, isolés).
Un emplacement et un type. Jamais la ligne elle-même.
// un finding, tel que posté par le run par défaut { "file": "src/export.ts", "hits": [{ "line": 14, "kind": "node-exec" }] }
Ne nous crois pas — vérifie le payload.
Affiche le payload
node isolation-gate.mjs --print-payload affiche exactement ce qui serait posté, puis s'arrête sans contacter le serveur.
Épingle le commit
Le client est open source (MIT), sans aucune dépendance npm. Épingle le SHA du commit — un tag peut bouger, un SHA non.
Ton jeton, ton repo
Les commentaires de PR et l'envoi vers l'onglet Security utilisent ton propre GITHUB_TOKEN, vers ton propre repo. Ces findings ne nous parviennent jamais.
Aucun secret stocké. Un endpoint fixe. Fail-open par défaut.
Un jeton OIDC de courte durée, signé par GitHub, lié à notre origine. Aucune clé API à stocker ni à fuiter.
Non. L'endpoint est fixe ; une origine personnalisée est refusée, sauf si tu l'autorises explicitement pour ton propre serveur auto-hébergé.
Les extracteurs closed-source du reste du catalogue, téléchargés au moment du run, bornés en taille et vérifiés par sha256. Leur sortie passe un second filtre de sortie qui retire tout champ porteur de source.
Le build ne casse jamais : chaque appel est borné et fail-open. Mets strict: "true" si tu préfères échouer fermé.
Tu as trouvé quelque chose ? Dis-le-nous d'abord.
Écris à hello@slopgrade.ai — notre /.well-known/security.txt donne le même contact.