GitLab CI और GitHub Actions के लिए ओपन सोर्स सुरक्षा और अनुपालन गेट: SBOM, निर्भरता भेद्यताएँ, SAST, सीक्रेट्स, IaC और लाइसेंस, एक संस्करणित नीति और एक निर्णय के अंतर्गत। कोई SaaS नहीं, किसी तृतीय पक्ष को कोई कोड नहीं भेजा जाता।
GitLab CI और GitHub Actions के लिए 100% ओपन सोर्स कोड विश्लेषण सूट (सुरक्षा और अनुपालन) — SCA, SAST, सीक्रेट्स, और लाइसेंस, जो एक ही संस्करणित नीति द्वारा संचालित होता है। बहुभाषी रिपॉज़िटरी (Go, Rust, Java/JVM, Python, JS/TS, C/C++)। कोई SaaS नहीं, किसी तृतीय पक्ष को कोई कोड नहीं भेजा जाता।
oss-analyzer CI में किसी रिपॉज़िटरी को उसकी सुरक्षा और अनुपालन पर गेट करता है: यह स्कैनर चलाता है, एक संस्करणित नीति लागू करता है और एक निर्णय देता है, साथ में एक HTML डैशबोर्ड और मर्ज रिक्वेस्ट रिपोर्ट के साथ।
flowchart LR
repo["Your repository"]
subgraph checks["Scanners: they collect, never block"]
deps["Dependencies<br/>Syft SBOM<br/>Grype, OSV-Scanner"]
licenses["Licenses<br/>license gate on the SBOM<br/>policy-licenses.yml"]
code["Code<br/>Semgrep<br/>policy-semgrep.yml"]
secrets["Secrets<br/>Gitleaks, whole git history<br/>policy-gitleaks.toml"]
iac["Dockerfiles, IaC<br/>Trivy"]
headers["SPDX headers<br/>REUSE"]
end
policy{{"Policy<br/>thresholds, modes, exceptions<br/>policy-global.yml"}}
verdict(["One verdict: pass or block<br/>dashboard, merge request reports"])
repo --> deps & licenses & code & secrets & iac & headers --> policy --> verdict
policy-* फ़ाइलें आपकी सेटिंग्स हैं, जो आपके security/ फ़ोल्डर में हैं: इनमें से प्रत्येक
वैकल्पिक है और oss-analyzer के डिफ़ॉल्ट को पूरा करती है (देखें
Customizing oss-analyzer)।
प्रत्येक निष्कर्ष एक ही डैशबोर्ड में आता है, यहाँ एक जानबूझकर कमज़ोर डेमो प्रोजेक्ट पर (590 निष्कर्ष, जिनमें से 333 अवरोधक हैं):

इसे चलाने के तीन तरीके हैं, समान policy और समान रिपोर्ट के साथ:
include:
- component: gitlab.com/thalesgroup/oss-analyzer/[email protected]
यही सब है, gitlab.com पर: कंपोनेंट अपने CI/CD
Catalog में gitlab.com/thalesgroup/oss-analyzer से प्रकाशित है,
जो इस रिपॉज़िटरी की एक read-only प्रति है। एक self-managed इंस्टेंस पर, जो
केवल अपने स्वयं के प्रोजेक्ट शामिल कर सकता है, उस प्रोजेक्ट को वहाँ मिरर करें और
अपने इंस्टेंस पर उसके पाथ से इसे शामिल करें; इसकी इमेज
registry.gitlab.com/thalesgroup/oss-analyzer (OSA_IMAGE_REPOSITORY) पर रहती है,
जो कंपोनेंट के commit SHA के साथ टैग की गई है। विश्लेषण test स्टेज में merge requests,
डिफ़ॉल्ट ब्रांच, शेड्यूल और टैग पर चलता है; osa_report_aggregate एकमात्र जॉब है
जो ब्लॉक कर सकता है। डैशबोर्ड MR पाइपलाइन विजेट में OSS security dashboard के रूप में लिंक किया गया है,
और MR का Reports टैब निष्कर्ष दिखाता है
(Security scan, Code Quality)।
OSA_<TOOL>_IMAGE इनपुट्स को ओवरराइड करें — देखें
Container images।security/policy-global.yml,
policy-licenses.yml, policy-semgrep.yml, policy-gitleaks.toml में से कोई भी जोड़ें,
जिसमें केवल आपके अंतर हों — देखें
Customizing oss-analyzer। inputs:
OSA_DISTRIBUTION_MODEL: distributed # saas | distributed | oss_library
OSA_MODE: audit # onboarding: report everything, never block
OSA_JOB_NEEDS: ["build"] # wait for your build first
प्रत्येक इनपुट को कंपोनेंट के CI/CD Catalog पेज पर और
templates/analyze.yml में प्रलेखित किया गया है।OSA_MODE: audit सब कुछ रिपोर्ट करता है और
कुछ भी ब्लॉक नहीं करता। OSA_GATE_SCOPE: new जो नया है उसे ब्लॉक करना जारी रखता है: किसी
मर्ज रिक्वेस्ट पर, केवल वही चीज़ें ब्लॉक करती हैं जो लक्ष्य ब्रांच की नवीनतम
सफल रिपोर्ट में पहले से मौजूद नहीं हैं; अन्यत्र, निष्कर्ष बिना
ब्लॉकिंग के रिपोर्ट किए जाते हैं (इसलिए इसे मर्ज रिक्वेस्ट पाइपलाइनों की आवश्यकता होती है)। देखें
केवल नए निष्कर्ष।OSA_ENABLE_MR_COMMENT: true निर्णय,
ब्लॉक करने वाले निष्कर्षों और डैशबोर्ड लिंक को एक टिप्पणी के रूप में पोस्ट करता है, जिसे
प्रत्येक पाइपलाइन द्वारा अपडेट किया जाता है। इसके लिए एक मास्क्ड OSA_GITLAB_TOKEN CI/CD वेरिएबल में
एक प्रोजेक्ट एक्सेस टोकन (स्कोप api, भूमिका Reporter) की आवश्यकता होती है।OSA_MAVEN_MIRROR_URL (जैसे आपके आर्टिफैक्ट रिपॉज़िटरी का
Maven Central रिमोट), एक मास्क्ड OSA_MAVEN_MIRROR_AUTH
वेरिएबल के साथ यदि इसके लिए क्रेडेंशियल्स की आवश्यकता हो, तो इसके बजाय एक मिरर के माध्यम से हल करता है —
देखें ज्ञात समस्याएँ।@0.4 अपने पैच का अनुसरण करता है)। 0.x
इंटरफ़ेस 1.0.0 तक बदल सकता है: एक ब्रेकिंग परिवर्तन माइनर संस्करण को बढ़ाता है,
देखें CHANGELOG.md।jobs:
security:
uses: ThalesGroup/oss-analyzer/.github/workflows/security.yml@<ref>
with:
oss-analyzer-repository: ThalesGroup/oss-analyzer
oss-analyzer-ref: <ref> # the same ref as in `uses:`
इनपुट, अनुमतियाँ और सीक्रेट्स: देखें GitHub Actions।
CI सेटअप किए बिना प्राप्त प्रोजेक्ट आर्काइव (.zip, .tar.gz) या फ़ोल्डर का विश्लेषण करें:
security/scripts/analyze-archive.sh my-project.zip
रिपोर्ट और एक HTML डैशबोर्ड
security-reports/<project-name>/ के अंतर्गत आते हैं — देखें
Usage।
पूर्ण दस्तावेज़ीकरण security/README.md है: सेटअप, प्रत्येक इनपुट और सेटिंग, रिपोर्ट, ज्ञात कमियाँ। CHANGELOG.md संस्करणों को सूचीबद्ध करता है, सबसे पहले ब्रेकिंग परिवर्तन।
प्रत्येक चिंता के लिए अच्छे Open Source स्कैनर मौजूद हैं: Semgrep, Gitleaks, Syft, Grype, OSV-Scanner, Trivy, cdxgen, REUSE। किसी टीम के पास जिस चीज़ की कमी होती है वह शायद ही कोई और स्कैनर होती है। वह उनके बीच का हिस्सा होता है: रिपोर्टों के ढेर के बजाय एक निर्णय, याद रखे जाने के बजाय लिखे गए नियम, और CVE की तरह ही गंभीरता से ली गई लाइसेंस। oss-analyzer वही हिस्सा है।
प्रत्येक रन आपके द्वारा शिप किए जाने वाले तीन पहलुओं को एक साथ देखता है: