
npm, yarn, pnpm, npx, pnpx, pip, uv और poetry के माध्यम से इंस्टॉल किए गए दुर्भावनापूर्ण कोड से Aikido Safe Chain के साथ सुरक्षा करें। उपयोग के लिए निःशुल्क, किसी टोकन की आवश्यकता नहीं है।
Aikido Device Protection Safe Chain पर आधारित है, जो पैकेज और एक्सटेंशन सुरक्षा को और अधिक इकोसिस्टम तक विस्तारित करता है: npm, PyPI, VS Code, Open VSX - (Cursor, Windsurf, Kiro, Vs Codium, ...), Maven, NuGet, Chrome एक्सटेंशन, Go, Skills.sh AI skills, Ruby, Rust, और भी बहुत कुछ।
केंद्रीकृत पॉलिसी प्रबंधन, अनुरोध-और-अनुमोदन वर्कफ़्लो, और आपके संगठन के हर डेवलपर वर्कस्टेशन पर दृश्यता पाएं। यह उसी Aikido Intel फ़ीड द्वारा संचालित है। इसे मैन्युअल रूप से तैनात करें या अपने MDM टूल (Jamf, Fleet, या Iru) के माध्यम से प्रबंधित करें।
Aikido Safe Chain निम्नलिखित पैकेज मैनेजर सपोर्ट करता है:

इंस्टॉलेशन स्क्रिप्ट की मदद से Aikido Safe Chain इंस्टॉल करना आसान है।
curl -fsSL https://github.com/AikidoSec/safe-chain/releases/download/1.5.15/install-safe-chain.sh -o /tmp/install-safe-chain.sh
&& echo "de0565e3d6346407a604e84e639e95fea8758748063da2216bbfdca5feda5dd2 /tmp/install-safe-chain.sh" | sha256sum -c -
&& sh /tmp/install-safe-chain.sh
&& rm /tmp/install-safe-chain.sh
### Windows (PowerShell)```powershell
$installer = Join-Path $env:TEMP "install-safe-chain.ps1"
Invoke-WebRequest "https://github.com/AikidoSec/safe-chain/releases/download/1.5.15/install-safe-chain.ps1" -OutFile $installer -UseBasicParsing
$expectedHash = "5FC22EEF74814BEF6828AA07C0EAEC79598F343F98B94A4ACAB823769AD56DA1"
if ((Get-FileHash $installer -Algorithm SHA256).Hash -ne $expectedHash) {
Remove-Item $installer -ErrorAction SilentlyContinue
throw "Checksum verification failed for install-safe-chain.ps1"
}
& $installer
Remove-Item $installer
उपरोक्त इंस्टॉल कमांड हमेशा एक विशिष्ट रिलीज़ को संदर्भित करते हैं। कोई भिन्न संस्करण इंस्टॉल करने के लिए, संस्करण को अपने इच्छित संस्करण संख्या से बदलें। सभी उपलब्ध संस्करण रिलीज़ पेज पर हैं।
इंस्टॉल स्क्रिप्ट एक संस्करणयुक्त रिलीज़ URL (releases/download/1.5.15/...) से प्रदान की जाती हैं। GitHub रिलीज़ अपरिवर्तनीय हैं — एक बार कोई आर्टिफैक्ट किसी संस्करणयुक्त URL पर प्रकाशित हो जाने पर उसे संशोधित या प्रतिस्थापित नहीं किया जा सकता, इसलिए आपके द्वारा डाउनलोड की गई फ़ाइल की गारंटी है कि वह बिल्कुल वैसी ही है जैसी रिलीज़ की गई थी।
❗अपने टर्मिनल को पुनः आरंभ करें Aikido Safe Chain का उपयोग शुरू करने के लिए।
इंस्टॉलेशन सत्यापित करें सत्यापन कमांड चलाकर: ```shell npm safe-chain-verify pnpm safe-chain-verify pip safe-chain-verify uv safe-chain-verify
(वैकल्पिक) मैलवेयर ब्लॉकिंग का परीक्षण करें एक परीक्षण पैकेज स्थापित करने का प्रयास करके:
JavaScript/Node.js के लिए: ```shell npm install safe-chain-test
Python के लिए: ```shell pip3 install safe-chain-pi-test
- आउटपुट से यह दिखना चाहिए कि Aikido Safe Chain इन परीक्षण पैकेजों की स्थापना को रोक रहा है, क्योंकि इन्हें मैलवेयर के रूप में चिह्नित किया गया है।
जब आप `npm`, `npx`, `yarn`, `pnpm`, `pnpx`, `rush`, `rushx`, `bun`, `bunx`, `pip`, `pip3`, `uv`, `uvx`, `poetry`, `pipx` और `pdm` कमांड चलाते हैं, तो Aikido Safe Chain आपके द्वारा स्थापित किए जाने वाले पैकेजों में मैलवेयर की स्वचालित रूप से जाँच करेगा। यह उपलब्ध होने पर pip के लिए Python मॉड्यूल कॉल्स को भी इंटरसेप्ट करता है (जैसे, `python -m pip install ...`, `python3 -m pip download ...`)। यदि कोई मैलवेयर पाया जाता है, तो यह आपको कमांड से बाहर निकलने के लिए संकेत देगा।
आप स्थापित संस्करण की जाँच निम्न कमांड चलाकर कर सकते हैं:
``````shell
safe-chain --version
Aikido Safe Chain एक हल्का प्रॉक्सी सर्वर चलाकर काम करता है जो npm रजिस्ट्री और PyPI से पैकेज डाउनलोड को इंटरसेप्ट करता है। जब आप npm, npx, yarn, pnpm, pnpx, rush, rushx, bun, bunx, pip, pip3, uv, uvx, poetry, pipx या pdm कमांड चलाते हैं, तो सभी पैकेज डाउनलोड इस लोकल प्रॉक्सी के माध्यम से रूट होते हैं, जो Aikido Intel - Open Sources Threat Intelligence के विरुद्ध वास्तविक समय में पैकेजों को सत्यापित करता है। यदि किसी पैकेज (गहरी निर्भरताओं सहित) में मैलवेयर पाया जाता है, तो प्रॉक्सी दुर्भावनापूर्ण कोड आपकी मशीन तक पहुँचने से पहले डाउनलोड को ब्लॉक कर देता है।
Safe Chain समर्थित इकोसिस्टम पर न्यूनतम पैकेज आयु जाँच लागू करता है।
वर्तमान प्रवर्तन इकोसिस्टम के अनुसार अलग है:
डिफ़ॉल्ट रूप से, न्यूनतम पैकेज आयु 48 घंटे है। यह उस महत्वपूर्ण अवधि के दौरान एक अतिरिक्त सुरक्षा परत प्रदान करता है जब नए प्रकाशित पैकेजों में अनियंत्रित खतरे होने की सबसे अधिक संभावना होती है। आप इस सीमा को कॉन्फ़िगर कर सकते हैं या इस सुरक्षा को पूरी तरह से बायपास कर सकते हैं - नीचे न्यूनतम पैकेज आयु कॉन्फ़िगरेशन अनुभाग देखें।
Aikido Safe Chain आपके शेल के साथ एकीकृत होता है ताकि npm, npx, yarn, pnpm, pnpx, rush, rushx, bun, bunx, और Python पैकेज प्रबंधकों (pip, uv, uvx, poetry, pipx, pdm) का उपयोग करते समय एक सहज अनुभव प्रदान किया जा सके। यह इन कमांडों के लिए aliases सेट करता है ताकि वे Aikido Safe Chain कमांड द्वारा लपेटे जाएँ, जो मूल कमांड को निष्पादित करने से पहले प्रॉक्सी सर्वर का प्रबंधन करते हैं। हम वर्तमान में समर्थन करते हैं:
शेल एकीकरण के बारे में अधिक जानकारी शेल एकीकरण दस्तावेज़ में पाई जा सकती है।
Aikido Safe Chain को अनइंस्टॉल करने के लिए, हमारे एक-लाइन अनइंस्टॉलर का उपयोग करें:
curl -fsSL https://github.com/AikidoSec/safe-chain/releases/download/1.5.15/uninstall-safe-chain.sh | sh
### Windows (PowerShell)```powershell
iex (iwr "https://github.com/AikidoSec/safe-chain/releases/download/1.5.15/uninstall-safe-chain.ps1" -UseBasicParsing)
❗अपना टर्मिनल पुनः प्रारंभ करें अनइंस्टॉल करने के बाद यह सुनिश्चित करने के लिए कि सभी aliases हटा दिए गए हैं।
आप --safe-chain-logging फ़्लैग या SAFE_CHAIN_LOGGING पर्यावरण चर का उपयोग करके Aikido Safe Chain से आउटपुट को नियंत्रित कर सकते हैं।
आप लॉगिंग स्तर को कई स्रोतों के माध्यम से सेट कर सकते हैं (प्राथमिकता के क्रम में):
CLI आर्गुमेंट (उच्चतम प्राथमिकता):
--safe-chain-logging=silent - malware ब्लॉक होने के अलावा सभी Aikido Safe Chain आउटपुट को दबा देता है। पैकेज मैनेजर आउटपुट सामान्य रूप से stdout पर लिखा जाता है, और Safe Chain केवल एक छोटा संदेश लिखता है यदि उसने malware ब्लॉक किया है और प्रक्रिया को exit करने का कारण बनता है।
npm install express --safe-chain-logging=silent
--safe-chain-logging=verbose - Aikido Safe Chain से विस्तृत diagnostic output सक्षम करता है। समस्याओं का निवारण करने या यह समझने के लिए उपयोगी है कि Safe Chain पर्दे के पीछे क्या कर रहा है।
npm install express --safe-chain-logging=verbose
पर्यावरण चर: ```shell export SAFE_CHAIN_LOGGING=verbose npm install express
मान्य मान: silent, normal, verbose
यह आपके टर्मिनल सत्र या CI/CD वातावरण में सभी पैकेज मैनेजर कमांड के लिए डिफ़ॉल्ट लॉगिंग स्तर सेट करने के लिए उपयोगी है।
आप --safe-chain-log-file फ़्लैग या SAFE_CHAIN_LOG_FILE पर्यावरण चर का उपयोग करके Aikido Safe Chain आउटपुट को लॉग फ़ाइल में मिरर कर सकते हैं। फ़ाइल लॉगिंग डिफ़ॉल्ट रूप से अक्षम होती है और पथ सेट करने पर सक्षम हो जाती है। फ़ाइल प्रारूप (--safe-chain-log-file-format) और वर्बोसिटी (--safe-chain-log-file-verbosity) टर्मिनल आउटपुट से स्वतंत्र रूप से नियंत्रित होते हैं।
इनमें से किसी के माध्यम से सेट करें (प्राथमिकता के क्रम में):
~/.safe-chain/config.json): ```json
{
"logFile": "~/safe-chain.log",
"logFileFormat": "plain",
"logFileVerbosity": "normal"
}
logFileFormat — json (डिफ़ॉल्ट) या plain।
logFileVerbosity — silent, normal, या verbose (डिफ़ॉल्ट)। --safe-chain-logging से स्वतंत्र।
आप कॉन्फ़िगर कर सकते हैं कि Safe Chain को उनकी स्थापना की अनुमति देने से पहले पैकेज कितने समय तक मौजूद रहने चाहिए। डिफ़ॉल्ट रूप से, पैकेज स्थापित होने से पहले कम से कम 48 घंटे पुराने होने चाहिए।
npm-आधारित पैकेज प्रबंधकों के लिए, इस जाँच में वर्तमान में दो प्रवर्तन मोड हैं:
Python पैकेज प्रबंधकों के लिए, इस जाँच में वर्तमान में दो प्रवर्तन मोड हैं:
आप न्यूनतम पैकेज आयु को कई स्रोतों के माध्यम से सेट कर सकते हैं (प्राथमिकता के क्रम में):
~/.safe-chain/config.json): ```json
{
"minimumPackageAgeHours": 48
}
पर्यावरण चर या कॉन्फ़िग फ़ाइल के माध्यम से न्यूनतम आयु फ़िल्टरिंग से विश्वसनीय पैकेजों को बाहर करें (दोनों विलय कर दिए जाते हैं)। किसी संगठन के सभी पैकेजों पर भरोसा करने के लिए @scope/* का उपयोग करें:```shell
export SAFE_CHAIN_MINIMUM_PACKAGE_AGE_EXCLUSIONS="@aikidosec/*"
कोई इनपुट सामग्री प्राप्त नहीं हुई। कृपया अनुवाद के लिए चंक 33 की सामग्री प्रदान करें।```json
{
"npm": {
"minimumPackageAgeExclusions": ["@aikidosec/*"]
},
"pip": {
"minimumPackageAgeExclusions": ["requests"]
}
}
कस्टम या निजी रजिस्ट्रियों से पैकेज स्कैन करने के लिए Safe Chain को कॉन्फ़िगर करें।
समर्थित इकोसिस्टम:
आप पर्यावरण चर या कॉन्फ़िग फ़ाइल के माध्यम से कस्टम रजिस्ट्रियाँ सेट कर सकते हैं। दोनों स्रोतों को एक साथ मर्ज किया जाता है।
~/.safe-chain/config.json): ```json
{
"npm": {
"customRegistries": ["npm.company.com", "registry.internal.net"]
},
"pip": {
"customRegistries": ["pip.company.com", "registry.internal.net"]
}
}
यदि आप pip कॉन्फ़िगरेशन के लिए pip.conf फ़ाइल पर निर्भर हैं, तो आपको PIP_CONFIG_FILE पर्यावरण चर के माध्यम से pip को स्पष्ट रूप से उसकी ओर इंगित करना होगा ताकि Safe Chain इसे मर्ज कर सके।
Safe Chain अपने MITM प्रॉक्सी के पीछे pip चलाता है और अपने प्रमाणपत्र और प्रॉक्सी सेटिंग्स इंजेक्ट करने के लिए एक अस्थायी pip कॉन्फ़िगरेशन फ़ाइल लिखता है। जब PIP_CONFIG_FILE सेट होता है, Safe Chain आपकी फ़ाइल की एक प्रति में अपनी सेटिंग्स मर्ज करता है (आपकी मूल फ़ाइल कभी संशोधित नहीं होती) ताकि आपके index-url, क्रेडेंशियल्स और अन्य विकल्प संरक्षित रहें। जब PIP_CONFIG_FILE सेट नहीं होता, तो pip का उपयोगकर्ता-स्तरीय कॉन्फ़िग (जैसे ~/.config/pip/pip.conf) Safe Chain की अस्थायी फ़ाइल द्वारा अधिलेखित हो सकता है और आपकी सेटिंग्स लागू नहीं होंगी।
Safe Chain को कस्टम मिरर URL से मैलवेयर डेटाबेस और नए पैकेज सूचियाँ प्राप्त करने के लिए कॉन्फ़िगर करें। यह आपको Aikido मैलवेयर डेटाबेस की अपनी प्रति होस्ट करने की अनुमति देता है।
आप मैलवेयर सूची बेस URL को कई स्रोतों के माध्यम से सेट कर सकते हैं (प्राथमिकता के क्रम में):
~/.safe-chain/config.json): ```json
{
"malwareListBaseUrl": "https://your-mirror.com"
}
बेस URL को ऐसे सर्वर पर इंगित करना चाहिए जो https://malware-list.aikido.dev/ की संरचना को मिरर करता हो, जिसमें निम्नलिखित पथ शामिल हों:
/malware_predictions.json (JavaScript इकोसिस्टम मालवेयर डेटाबेस)/malware_pypi.json (Python इकोसिस्टम मालवेयर डेटाबेस)/releases/npm.json (JavaScript नए पैकेजों की सूची)/releases/pypi.json (Python नए पैकेजों की सूची)होम-डायरेक्टरी कॉन्फ़िग फ़ाइल (~/.safe-chain/config.json) के अतिरिक्त, Safe Chain एक प्रोजेक्ट कॉन्फ़िग फ़ाइल का भी समर्थन करता है, ताकि सेटिंग्स को रिपॉज़िटरी में चेक इन किया जा सके और टीम में साझा किया जा सके, बजाय प्रति-मशीन कॉन्फ़िगर करने के।
अपनी रिपॉज़िटरी के रूट में .aikido फ़ाइल में एक safe-chain: सेक्शन जोड़ें (वही फ़ाइल जो अन्य Aikido टूल्स द्वारा उपयोग की जाती है; Safe Chain केवल अपना safe-chain: सेक्शन पढ़ता है और बाकी को अनदेखा करता है)। मिलने पर, इसकी सेटिंग्स आपकी होम-डायरेक्टरी कॉन्फ़िग फ़ाइल के ऊपर मर्ज की जाती हैं: प्रोजेक्ट कॉन्फ़िग में निर्धारित मानों को प्राथमिकता मिलती है, और ऐरे (जैसे customRegistries) दोनों फ़ाइलों से संयुक्त होते हैं, न कि एक दूसरे की जगह लेता है।
किसी प्रोजेक्ट कॉन्फ़िग फ़ाइल से केवल निम्नलिखित सेटिंग्स सेट की जा सकती हैं:```yaml safe-chain: minimumPackageAgeHours: 48 npm: customRegistries: - npm.company.com minimumPackageAgeExclusions: - "@aikidosec/*" pip: customRegistries: - pip.company.com minimumPackageAgeExclusions: - requests
Settings like `scanTimeout`, `malwareListBaseUrl`, और `logFile*` विकल्पों को प्रोजेक्ट कॉन्फ़िग फ़ाइल से सेट नहीं किया जा सकता - वे केवल आपकी होम-डायरेक्टरी कॉन्फ़िग, CLI तर्क, या पर्यावरण चरों से आ सकते हैं।
## कस्टम इंस्टॉल निर्देशिका
डिफ़ॉल्ट रूप से, Safe Chain स्वयं को `~/.safe-chain` में इंस्टॉल करता है। आप इंस्टॉलर को एक स्पष्ट इंस्टॉल निर्देशिका पास करके इसे बदल सकते हैं। यह सिस्टम-व्यापी इंस्टॉलेशन (जैसे Docker इमेज के अंदर) या जब आपको अन्य टूल्स के साथ टकराव से बचने की आवश्यकता हो, के लिए उपयोगी है।
सेट होने पर, सभी Safe Chain डेटा (बाइनरी, शिम्स, स्क्रिप्ट्स, कॉन्फ़िग) कस्टम निर्देशिका के अंतर्गत रखा जाता है बजाय `~/.safe-chain` के।
### Unix/Linux/macOS```shell
curl -fsSL https://github.com/AikidoSec/safe-chain/releases/download/1.5.15/install-safe-chain.sh -o /tmp/install-safe-chain.sh \
&& echo "de0565e3d6346407a604e84e639e95fea8758748063da2216bbfdca5feda5dd2 /tmp/install-safe-chain.sh" | sha256sum -c - \
&& sh /tmp/install-safe-chain.sh --install-dir /usr/local/.safe-chain \
&& rm /tmp/install-safe-chain.sh
$installer = Join-Path $env:TEMP "install-safe-chain.ps1" Invoke-WebRequest "https://github.com/AikidoSec/safe-chain/releases/download/1.5.15/install-safe-chain.ps1" -OutFile $installer -UseBasicParsing $expectedHash = "5FC22EEF74814BEF6828AA07C0EAEC79598F343F98B94A4ACAB823769AD56DA1" if ((Get-FileHash $installer -Algorithm SHA256).Hash -ne $expectedHash) { Remove-Item $installer -ErrorAction SilentlyContinue throw "Checksum verification failed for install-safe-chain.ps1" } & $installer -InstallDir 'C:\ProgramData\safe-chain' Remove-Item $installer
# CI/CD में उपयोग
आप Aikido Safe Chain को अपनी बिल्ड प्रक्रिया में एकीकृत करके अपनी CI/CD पाइपलाइनों को दुर्भावनापूर्ण पैकेजों से सुरक्षित कर सकते हैं। यह सुनिश्चित करता है कि आपके स्वचालित बिल्ड के दौरान स्थापित किए जाने वाले किसी भी पैकेज की स्थापना से पहले मैलवेयर के लिए जाँच की जाती है।
## CI/CD के लिए स्थापना
CI/CD वातावरण के लिए Aikido Safe Chain को स्वचालित रूप से कॉन्फ़िगर करने हेतु `--ci` फ़्लैग का उपयोग करें। यह शेल एलियास के बजाय PATH में एक्ज़ीक्यूटेबल शिम्स सेट करता है।
### Unix/Linux/macOS (GitHub Actions, Azure Pipelines, आदि)```shell
curl -fsSL https://github.com/AikidoSec/safe-chain/releases/download/1.5.15/install-safe-chain.sh -o /tmp/install-safe-chain.sh \
&& echo "de0565e3d6346407a604e84e639e95fea8758748063da2216bbfdca5feda5dd2 /tmp/install-safe-chain.sh" | sha256sum -c - \
&& sh /tmp/install-safe-chain.sh --ci \
&& rm /tmp/install-safe-chain.sh
$installer = Join-Path $env:TEMP "install-safe-chain.ps1" Invoke-WebRequest "https://github.com/AikidoSec/safe-chain/releases/download/1.5.15/install-safe-chain.ps1" -OutFile $installer -UseBasicParsing $expectedHash = "5FC22EEF74814BEF6828AA07C0EAEC79598F343F98B94A4ACAB823769AD56DA1" if ((Get-FileHash $installer -Algorithm SHA256).Hash -ne $expectedHash) { Remove-Item $installer -ErrorAction SilentlyContinue throw "Checksum verification failed for install-safe-chain.ps1" } & $installer -ci Remove-Item $installer
## समर्थित प्लेटफ़ॉर्म
- ✅ **GitHub Actions**
- ✅ **Azure Pipelines**
- ✅ **CircleCI**
- ✅ **Jenkins**
- ✅ **Bitbucket Pipelines**
- ✅ **GitLab Pipelines**
## GitHub Actions उदाहरण```yaml
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "22"
cache: "npm"
- name: Install safe-chain
run: |
curl -fsSL https://github.com/AikidoSec/safe-chain/releases/download/1.5.15/install-safe-chain.sh -o /tmp/install-safe-chain.sh
echo "de0565e3d6346407a604e84e639e95fea8758748063da2216bbfdca5feda5dd2 /tmp/install-safe-chain.sh" | sha256sum -c -
sh /tmp/install-safe-chain.sh --ci
rm /tmp/install-safe-chain.sh
- name: Install dependencies
run: npm ci
task: NodeTool@0 inputs: versionSpec: "22.x" displayName: "Install Node.js"
script: | curl -fsSL https://github.com/AikidoSec/safe-chain/releases/download/1.5.15/install-safe-chain.sh -o /tmp/install-safe-chain.sh echo "de0565e3d6346407a604e84e639e95fea8758748063da2216bbfdca5feda5dd2 /tmp/install-safe-chain.sh" | sha256sum -c - sh /tmp/install-safe-chain.sh --ci rm /tmp/install-safe-chain.sh displayName: "Install safe-chain"
script: npm ci displayName: "Install dependencies"
## CircleCI उदाहरण```yaml
version: 2.1
jobs:
build:
docker:
- image: cimg/node:lts
steps:
- checkout
- run: |
curl -fsSL https://github.com/AikidoSec/safe-chain/releases/download/1.5.15/install-safe-chain.sh -o /tmp/install-safe-chain.sh
echo "de0565e3d6346407a604e84e639e95fea8758748063da2216bbfdca5feda5dd2 /tmp/install-safe-chain.sh" | sha256sum -c -
sh /tmp/install-safe-chain.sh --ci
rm /tmp/install-safe-chain.sh
- run: npm ci
workflows:
build_and_test:
jobs:
- build
नोट: यह मानता है कि Jenkins एजेंट पर Node.js और npm स्थापित हैं।```groovy pipeline { agent any
environment { // Jenkins does not automatically persist PATH updates from setup-ci, // so add the shims + binary directory explicitly for all stages. // If you installed into a custom directory, replace ~/.safe-chain with that path here. PATH = "${env.HOME}/.safe-chain/shims:${env.HOME}/.safe-chain/bin:${env.PATH}" }
stages { stage('Install safe-chain') { steps { sh ''' set -euo pipefail
# Install Safe Chain for CI
curl -fsSL https://github.com/AikidoSec/safe-chain/releases/download/1.5.15/install-safe-chain.sh -o /tmp/install-safe-chain.sh
echo "de0565e3d6346407a604e84e639e95fea8758748063da2216bbfdca5feda5dd2 /tmp/install-safe-chain.sh" | sha256sum -c -
sh /tmp/install-safe-chain.sh --ci
rm /tmp/install-safe-chain.sh
'''
}
}
stage('Install project dependencies etc...') {
steps {
sh '''
set -euo pipefail
npm ci
'''
}
}
} }
## Bitbucket Pipelines उदाहरण```yaml
image: node:22
steps:
- step:
name: Install
script:
- |
curl -fsSL https://github.com/AikidoSec/safe-chain/releases/download/1.5.15/install-safe-chain.sh -o /tmp/install-safe-chain.sh
echo "de0565e3d6346407a604e84e639e95fea8758748063da2216bbfdca5feda5dd2 /tmp/install-safe-chain.sh" | sha256sum -c -
sh /tmp/install-safe-chain.sh --ci
rm /tmp/install-safe-chain.sh
- export PATH=~/.safe-chain/shims:~/.safe-chain/bin:$PATH
- npm ci
सेटअप के बाद, आपकी CI पाइपलाइन में आने वाले सभी पैकेज मैनेजर कमांड स्वचालित रूप से Aikido Safe Chain के मैलवेयर डिटेक्शन द्वारा सुरक्षित रहेंगे।
GitLab पाइपलाइनों में safe-chain जोड़ने के लिए, आपको इसे पाइपलाइन चलाने वाली इमेज में इंस्टॉल करना होगा। यह निम्न प्रकार से किया जा सकता है:
अपना बिल्ड चलाने के लिए एक dockerfile परिभाषित करें ```dockerfile FROM node:lts
RUN curl -fsSL https://github.com/AikidoSec/safe-chain/releases/download/1.5.15/install-safe-chain.sh -o /tmp/install-safe-chain.sh
&& echo "de0565e3d6346407a604e84e639e95fea8758748063da2216bbfdca5feda5dd2 /tmp/install-safe-chain.sh" | sha256sum -c -
&& sh /tmp/install-safe-chain.sh --ci
&& rm /tmp/install-safe-chain.sh
ENV PATH="/root/.safe-chain/shims:/root/.safe-chain/bin:${PATH}"
अपनी CI पाइपलाइन में Docker इमेज बनाएँ ```yaml build-image: stage: build-image image: docker:latest services: - docker:dind script: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker build -t $CI_REGISTRY_IMAGE:latest . - docker push $CI_REGISTRY_IMAGE:latest
अपनी pipeline में image का उपयोग करें: ```yaml npm-ci: stage: install image: $CI_REGISTRY_IMAGE:latest script: - npm ci
इस उदाहरण के लिए पूरी पाइपलाइन इस प्रकार दिखती है:```yaml stages:
build-image: stage: build-image image: docker:latest services: - docker:dind script: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker build -t $CI_REGISTRY_IMAGE:latest . - docker push $CI_REGISTRY_IMAGE:latest
npm-ci: stage: install image: $CI_REGISTRY_IMAGE:latest script: - npm ci
# समस्या निवारण
समस्याएँ आ रही हैं? सामान्य समस्याओं में सहायता के लिए [समस्या निवारण गाइड](https://github.com/aikidosec/safe-chain/blob/HEAD/docs/troubleshooting.md) देखें।
# समस्याओं की रिपोर्ट करें
यदि आपको समस्याएँ आती हैं:
1. [GitHub Issues](https://github.com/AikidoSec/safe-chain/issues) पर जाएँ
2. निम्नलिखित शामिल करें:
* ऑपरेटिंग सिस्टम और संस्करण
* शेल प्रकार और संस्करण
* `safe-chain --version` आउटपुट
* सत्यापन कमांड से आउटपुट
* विफल कमांड के विस्तृत लॉग (`--safe-chain-logging=verbose` तर्क जोड़ें)