
Un doggo che aiuta a cercare problemi di sicurezza nei tuoi repository.
Layne è un'app GitHub self‑hosted che centralizza la scansione di sicurezza nei nostri repository. Non utilizzando strumenti SAST/secrets commerciali e non avendo accesso a GitHub Enterprise, può diventare difficile mantenere diversi file di workflow GitHub Actions su repository differenti, specialmente quando il numero di repository cresce. Invece, installiamo Layne una sola volta: ascolta gli eventi delle pull request, esegue i nostri strumenti di sicurezza lato server, pubblica i risultati come annotazioni native di GitHub Check Run e invia notifiche al canale di notifica di sicurezza del nostro team.
Questo strumento è basato sull'implementazione di Reddit.
┌─────────────────────────────────┐
│ GITHUB PULL REQUEST │◀────────────────────────┐
│ (OPEN, SYNC, REOPEN) │ │
└─────────────────────────────────┘ │
│ Check run │
HTTP Post /webhook │
│ │
┌──────────────────────────────────────────────────────────────────────────────────────────┐
│ EC2 Instance (Docker) │ │ │
│ ┌───────▼────────┐ │ │
│ │ NGINX + TLS │ │ │
│ └───────┬────────┘ │ │
│ │ │ │
│ ┌─────────────────────┘ │ │
│ │ │ │
│┌─────────────┐ │ Schedules job ┌────────────────┐ ┌────────────┐ │ │
││ LAYNE │◀─┘ ─────────────────▶│ REDIS │───▶│ TRUFFLEHOG │──┐ │ │
││ SERVER │ │ (BULLMQ) │ │ └────────────┘ │ │ │
│└─────────────┘ └────────────────┘ │ ┌────────────┐ │ │ │
│ │─▶│ SEMGREP │──┤ │ │
│ │ └────────────┘ │ │ │
│ │ ┌────────────┐ │ ┌──────────┐│
│ ├─▶│ CLAUDE │──┼─▶│ REPORTER ││
│ │ └────────────┘ │ └──────────┘│
│ │ ┌────────────┐ │ │
│ ├─▶│ SPECTRE │──┤ │
│ │ └────────────┘ │ │
│ │ ┌────────────┐ │ │
│ └─▶│ DEP DOCTOR │──┘ │
│ └────────────┘ │
└──────────────────────────────────────────────────────────────────────────────────────────┘
Quando una PR viene aperta o aggiornata — o dopo l'esecuzione di un workflow/job, a seconda del trigger configurato — GitHub invia un webhook a Layne. Il server accoda immediatamente un job di scansione e restituisce 200 OK a GitHub. Un worker preleva il job, clona esattamente il commit che ha scatenato l'evento, passa i file modificati a ciascuno scanner configurato (Semgrep, Trufflehog, Claude, Spectre, Dep Doctor), raccoglie i risultati e li pubblica come annotazioni inline sul Check Run.
Vengono passati a ciascuno scanner solo i file modificati nella PR. I reperti in file non toccati non vengono mai segnalati.
Layne include cinque scanner integrati. Puoi abilitare, disabilitare o configurare ciascuno di essi per repository in config/layne.json.
Puoi anche aggiungere i tuoi scanner. Vedi Estendere Layne.
Una volta che tutto è configurato correttamente, Layne aggiunge un'esecuzione alla pull request ed esegue gli strumenti di scansione configurati. Quando una scansione fallisce, si presenta così:

I risultati di Layne vengono scritti nella PR come annotazioni inline, indicando le righe esatte in cui sono stati trovati i problemi di sicurezza.

Puoi anche vedere i risultati di Layne e un loro riepilogo cliccando sul check stesso.

E puoi configurare Layne per inviare una notifica tramite webhook a un canale Rocket.Chat — puoi anche configurare Slack ed è facile aggiungere nuovi notificatori se usi una piattaforma di chat diversa.

Esegui il sito di documentazione in locale:
npm run docs:dev
Poi apri http://localhost:3000.
La documentazione completa copre deployment, configurazione, scanner, notificatori, commenti sulle PR, soppressione dei risultati, metriche, architettura di sicurezza e altro.
Layne è concesso in licenza secondo i termini della Apache License 2.0 (Apache-2.0). Vedi LICENSE per il testo completo.
Copyright 2026 Rocket.Chat Technologies Corp.
| Scanner | Cosa rileva | Note |
|---|
| Semgrep | SAST — bug, vulnerabilità, pattern non sicuri | Esegue semgrep scan --config auto di default; completamente configurabile tramite extraArgs |
| Trufflehog | Segreti, chiavi API e credenziali | Esegue trufflehog filesystem; usa --only-verified per ridurre il rumore |
| Claude | Intento malevolo, backdoor, payload offuscati, attacchi alla supply chain | Disabilitato di default; opt‑in per repo; richiede ANTHROPIC_API_KEY |
| Spectre | Intento malevolo tramite una singola chiamata LLM per file | Disabilitato di default; opt‑in per repo; supporta Anthropic, OpenAI, Google, Mistral, Bedrock |
| Dep Doctor | CVE, dipendenze obsolete e deprecate | Disabilitato di default; opt‑in per repo; richiede osv-scanner nel PATH |