
एक doggo जो आपके रिपॉजिटरी में सुरक्षा समस्याओं की तलाश करने में मदद करता है।
Layne एक स्व-होस्टेड GitHub App है जो हमारे रिपॉज़िटरीज़ में सुरक्षा स्कैनिंग को केंद्रीकृत करता है। चूँकि हम व्यावसायिक SAST/सीक्रेट्स स्कैनिंग टूल्स का उपयोग नहीं करते, और हमारे पास GitHub Enterprise तक पहुँच भी नहीं है, इसलिए विभिन्न रिपॉज़िटरीज़ में अलग-अलग GitHub Actions वर्कफ़्लो फ़ाइलों को बनाए रखना कठिन हो सकता है - खासकर जब ऐसी रिपॉज़िटरीज़ की संख्या बढ़ती है। इसके बजाय, हम Layne को एक बार इंस्टॉल करते हैं और यह पुल रिक्वेस्ट इवेंट्स को सुनता है, सर्वर-साइड पर हमारे सुरक्षा टूल्स चलाता है, परिणामों को नेटिव GitHub Check Run एनोटेशन्स के रूप में वापस पोस्ट करता है, और हमारी सुरक्षा टीम के सुरक्षा नोटिफिकेशन्स चैनल को सूचित करता है।
यह टूल 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 │──┘ │
│ └────────────┘ │
└──────────────────────────────────────────────────────────────────────────────────────────┘
जब कोई PR खोला या अपडेट किया जाता है - या वर्कफ़्लो/जॉब चलने के बाद, आपके कॉन्फ़िगर किए गए ट्रिगर के आधार पर -, GitHub Layne को एक वेबहुक भेजता है। सर्वर तुरंत एक स्कैन जॉब को कतार में डालता है और GitHub को 200 OK लौटाता है। एक वर्कर जॉब उठाता है, ठीक उसी कमिट को क्लोन करता है जिसने इवेंट को ट्रिगर किया, बदली गई फ़ाइलों को प्रत्येक कॉन्फ़िगर किए गए स्कैनर (Semgrep, Trufflehog, Claude, Spectre, Dep Doctor) को सौंपता है, उनके निष्कर्षों को एकत्र करता है, और परिणामों को Check Run पर इनलाइन एनोटेशन्स के रूप में पोस्ट करता है।
PR में संशोधित फ़ाइलें ही प्रत्येक स्कैनर को दी जाती हैं। जिन फ़ाइलों को आपने छुआ नहीं है, उनमें मिले निष्कर्ष कभी रिपोर्ट नहीं किए जाते।
Layne पाँच अंतर्निहित स्कैनर के साथ आता है। आप config/layne.json में प्रत्येक रिपॉज़िटरी के लिए प्रत्येक को सक्षम, अक्षम या कॉन्फ़िगर कर सकते हैं।
| स्कैनर | यह क्या पता लगाता है | नोट्स |
|---|---|---|
| Semgrep | SAST - बग, कमज़ोरियाँ, असुरक्षित पैटर्न | डिफ़ॉल्ट रूप से semgrep scan --config auto चलाता है; extraArgs के माध्यम से पूरी तरह कॉन्फ़िगर करने योग्य |
| Trufflehog | सीक्रेट्स, API कुंजियाँ और क्रेडेंशियल्स | trufflehog filesystem चलाता है; शोर कम करने के लिए --only-verified का उपयोग करें |
| Claude | दुर्भावनापूर्ण इरादा, बैकडोर, ऑब्फस्केटेड पेलोड, सप्लाई-चेन हमले | डिफ़ॉल्ट रूप से अक्षम; प्रति रेपो ऑप्ट इन करें; ANTHROPIC_API_KEY आवश्यक |
| Spectre | सीमित टाइप्ड PR डिफ़्स से दुर्भावनापूर्ण इरादा | डिफ़ॉल्ट रूप से अक्षम; छोटे होने पर पूरे-PR विश्लेषण और अन्यथा हंक चंक्स; Anthropic, OpenAI, Google, Mistral, Bedrock का समर्थन करता है |
| Dep Doctor | CVE, परित्यक्त और अप्रचलित निर्भरताएँ | डिफ़ॉल्ट रूप से अक्षम; प्रति रेपो ऑप्ट इन करें; PATH में osv-scanner आवश्यक |
आप अपने स्वयं के स्कैनर भी जोड़ सकते हैं। Extending Layne देखें।
एक बार सब कुछ ठीक से कॉन्फ़िगर हो जाने के बाद, Layne पुल रिक्वेस्ट में एक रन जोड़ेगा और कॉन्फ़िगर किए गए स्कैनिंग टूल्स चलाएगा। जब कोई स्कैन विफल होता है, तो यह ऐसा दिखता है।

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

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

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

दस्तावेज़ीकरण साइट को स्थानीय रूप से चलाएँ:
npm run docs:dev
फिर http://localhost:3000 खोलें।
पूर्ण दस्तावेज़ीकरण में डिप्लॉयमेंट, कॉन्फ़िगरेशन, स्कैनर, नोटिफायर, PR टिप्पणियाँ, निष्कर्ष दमन, मेट्रिक्स, सुरक्षा आर्किटेक्चर, और बहुत कुछ शामिल है।
Layne Apache License 2.0 (Apache-2.0) के अंतर्गत लाइसेंस प्राप्त है। पूरा पाठ LICENSE में देखें।
Copyright 2026 Rocket.Chat Technologies Corp.