
एक doggo जो आपके रिपॉजिटरी में सुरक्षा समस्याओं की तलाश करने में मदद करता है।
Layne एक self-hosted GitHub App है जो हमारे रिपॉज़िटरीज़ में सुरक्षा स्कैनिंग को केंद्रीकृत करता है। चूँकि हम वाणिज्यिक SAST/secrets स्कैनिंग टूल्स का उपयोग नहीं करते, और न ही हमारे पास GitHub Enterprise की सुविधा है, इसलिए विभिन्न रिपॉज़िटरीज़ में GitHub Actions workflow फ़ाइलों को बनाए रखना कठिन हो सकता है - खासकर जब ऐसे रिपॉज़िटरीज़ की संख्या बढ़ती जाती है। इसके बजाय, हम Layne को एक बार इंस्टॉल करते हैं और यह pull request इवेंट्स पर नज़र रखता है, हमारे सुरक्षा टूल्स को server-side चलाता है, परिणामों को native GitHub Check Run annotations के रूप में वापस पोस्ट करता है, और हमारी सुरक्षा टीम के security notifications channel को सूचित करता है।
यह टूल Reddit की Implementation पर आधारित है।
┌─────────────────────────────────┐
│ 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 │──┘ │
│ └────────────┘ │
└──────────────────────────────────────────────────────────────────────────────────────────┘
जब कोई PR खोला या अपडेट किया जाता है - या आपके कॉन्फ़िगर किए गए trigger के आधार पर, किसी workflow/job के चलने के बाद -, GitHub Layne को एक webhook भेजता है। सर्वर तुरंत एक scan job को enqueue करता है और GitHub को 200 OK लौटाता है। एक worker job को उठाता है, ठीक उसी commit को clone करता है जिसने इवेंट को ट्रिगर किया, बदली गई फ़ाइलों को प्रत्येक कॉन्फ़िगर किए गए scanner (Semgrep, Trufflehog, Claude, Spectre, Dep Doctor) को सौंपता है, उनके findings एकत्र करता है, और परिणामों को Check Run पर inline annotations के रूप में पोस्ट करता है।
प्रत्येक scanner को केवल PR में संशोधित की गई फ़ाइलें ही दी जाती हैं। जिन फ़ाइलों को आपने नहीं छुआ है, उनमें पाए गए findings कभी रिपोर्ट नहीं किए जाते।
Layne पाँच built-in स्कैनर्स के साथ आता है। आप config/layne.json में प्रत्येक को प्रति रिपॉज़िटरी enable, disable या configure कर सकते हैं।
आप अपने स्वयं के स्कैनर्स भी जोड़ सकते हैं। देखें Extending Layne।
एक बार सब कुछ सही ढंग से कॉन्फ़िगर हो जाने पर, Layne pull request में एक run जोड़ देगा और कॉन्फ़िगर किए गए स्कैनिंग टूल्स को चलाएगा। जब कोई स्कैन विफल होता है, तो यह ऐसा दिखता है।

Layne के findings PR पर inline annotations के रूप में लिखे जाएँगे, जो उन सटीक पंक्तियों को दर्शाते हैं जहाँ सुरक्षा समस्याएँ पाई गईं।

आप check पर ही क्लिक करके Layne के findings और उनका सारांश भी देख सकते हैं।

और आप Layne को कॉन्फ़िगर कर सकते हैं कि यह webhook के माध्यम से किसी Rocket.Chat चैनल पर सूचना भेजे - आप Slack को भी कॉन्फ़िगर कर सकते हैं, और यदि आप कोई अलग चैट प्लेटफ़ॉर्म उपयोग करते हैं तो नए notifiers जोड़ना आसान है।

दस्तावेज़ीकरण साइट को स्थानीय रूप से चलाएँ:
npm run docs:dev
फिर http://localhost:3000 खोलें।
पूर्ण दस्तावेज़ीकरण में deployment, configuration, स्कैनर्स, notifiers, PR टिप्पणियाँ, finding suppression, metrics, सुरक्षा आर्किटेक्चर और बहुत कुछ शामिल है।
Layne Apache License 2.0 (Apache-2.0) के अंतर्गत लाइसेंस प्राप्त है। पूरा पाठ देखने के लिए LICENSE देखें।
कॉपीराइट 2026 Rocket.Chat Technologies Corp.
| Scanner | यह क्या पता लगाता है | नोट्स |
|---|
| Semgrep | SAST - बग्स, कमज़ोरियाँ, असुरक्षित पैटर्न | डिफ़ॉल्ट रूप से semgrep scan --config auto चलाता है; extraArgs के माध्यम से पूरी तरह कॉन्फ़िगर करने योग्य |
| Trufflehog | Secrets, API कुंजियाँ और credentials | trufflehog filesystem चलाता है; noise कम करने के लिए --only-verified का उपयोग करें |
| Claude | दुर्भावनापूर्ण इरादा, backdoors, obfuscated payloads, supply-chain हमले | डिफ़ॉल्ट रूप से अक्षम; प्रति repo ऑप्ट-इन करें; ANTHROPIC_API_KEY की आवश्यकता है |
| Spectre | प्रति फ़ाइल एक ही LLM कॉल के माध्यम से दुर्भावनापूर्ण इरादा | डिफ़ॉल्ट रूप से अक्षम; प्रति repo ऑप्ट-इन करें; Anthropic, OpenAI, Google, Mistral, Bedrock का समर्थन करता है |
| Dep Doctor | CVEs, परित्यक्त और deprecated डिपेंडेंसीज़ | डिफ़ॉल्ट रूप से अक्षम; प्रति repo ऑप्ट-इन करें; PATH में osv-scanner की आवश्यकता है |