
यह पाइप आपके ऐप निर्भरताओं (dependencies) और Docker इमेज में ज्ञात कमजोरियों को खोजने, ठीक करने और निगरानी करने के लिए Snyk का उपयोग करता है।
अपनी bitbucket-pipelines.yml फ़ाइल के script अनुभाग में निम्नलिखित स्निपेट जोड़ें:
- pipe: snyk/snyk-scan:1.0.2
variables:
SNYK_TOKEN: "<string>"
# LANGUAGE: "<string>" # Required unless SNYK_TEST_JSON_INPUT is set
# IMAGE_NAME: "<string>" # Only required if LANGUAGE set to "docker"
# SNYK_BASE_IMAGE: "<string>" # Custom base image
# CODE_INSIGHTS_RESULTS: "<boolean>" # Optional.
# SNYK_TEST_JSON_INPUT: "<string>" # Optional. The filename or path of a JSON file containg the output from running a test with the Snyk CLI (with json output option).
# PROTECT: "<boolean>" # Optional.
# DONT_BREAK_BUILD: "<boolean>" # Optional.
# MONITOR: "<boolean>" # Optional.
# SEVERITY_THRESHOLD: "<low|medium|high|critical>" # Optional.
# ORGANIZATION: "<string>" # Optional.
# PROJECT_FOLDER: "<string>" # Optional.
# TARGET_FILE: "<string>" # Optional.
# EXTRA_ARGS: "<string>" # Optional.
# DEBUG: "<boolean>" # Optional.
# SNYK_API: "<string"> # Optional.
(*) = अनिवार्य वेरिएबल।
Snyk को Bitbucket Pipelines में एकीकृत करके आप अपने कोडबेस का निरंतर परीक्षण कर सकते हैं, अपनी निर्भरताओं (dependencies) और Docker इमेज में ज्ञात कमजोरियों को ठीक कर सकते हैं और उनकी निगरानी कर सकते हैं।
Snyk के बारे में अधिक जानने के लिए, हमारी वेबसाइट पर जाएं।
Maven या Gradle के साथ Java जैसे अधिक उन्नत वातावरण वाली भाषाओं / पैकेज प्रबंधकों के लिए, आपको अपनी पाइपलाइन में सीधे Snyk CLI का उपयोग करना चाहिए। "सीधे Snyk CLI का उपयोग करना" उदाहरण देखें। यदि आप Code Insights रिपोर्ट भी उत्पन्न करना चाहते हैं, तो आप Snyk CLI परीक्षण आउटपुट को इस पाइप में फीड कर सकते हैं - "मौजूदा Snyk JSON आउटपुट से Code Insights रिपोर्ट उत्पन्न करना" उदाहरण देखें।
इस पाइप का उपयोग करने के लिए Snyk API टोकन आवश्यक है।
किसी Node.js एप्लिकेशन को स्कैन करने के लिए Snyk का उपयोग करता है और यदि कोई कमजोरी मिलती है तो बिल्ड को तोड़ देता है।
script:
- npm install
- npm test
- pipe: snyk/snyk-scan:1.0.2
variables:
SNYK_TOKEN: $SNYK_TOKEN
LANGUAGE: "node"
- npm publish
आपके Snyk स्कैन चलाने के लिए कस्टम आपूर्ति की गई Docker Image का उपयोग करता है। यदि आप डिफ़ॉल्ट Snyk Images का उपयोग नहीं करना चाहते तो उपयोगी है। इमेज <MY_CUSTOM_IMAGE>:<TAG> प्रारूप लेगी, जहाँ MY_CUSTOM_IMAGE और TAG क्रमशः SNYK_BASE_IMAGE और LANGUAGE वेरिएबल्स के अनुरूप हैं।
script:
- docker build -t $IMAGE_NAME .
- pipe: snyk/snyk-scan:1.0.2
variables:
SNYK_TOKEN: $SNYK_TOKEN
LANGUAGE: "latest"
SNYK_BASE_IMAGE: $BASE_IMAGE_NAME
TARGET_FILE: "Dockerfile"
- docker push $IMAGE_NAME
### मूल Docker इमेज स्कैन उदाहरण
Docker इमेज को स्कैन करने के लिए Snyk का उपयोग करता है और यदि कोई कमजोरी मिलती है तो बिल्ड को तोड़ देता है।
```yaml
script:
- docker build -t $IMAGE_NAME .
- pipe: snyk/snyk-scan:1.0.2
variables:
SNYK_TOKEN: $SNYK_TOKEN
LANGUAGE: "docker"
IMAGE_NAME: $IMAGE_NAME
TARGET_FILE: "Dockerfile"
- docker push $IMAGE_NAME
यह विशेष रूप से उन भाषाओं के लिए प्रासंगिक है जिनमें अधिक जटिल बिल्ड वातावरण होते हैं - उदाहरण के लिए Maven या Gradle के साथ Java। इन परिदृश्यों में, आप snyk test के किसी भिन्न रूप का उपयोग करके अपने एप्लिकेशन का Snyk CLI से परीक्षण कर सकते हैं। Snyk CLI स्थापित करने का सबसे आसान तरीका npm (npm install -g snyk) है, लेकिन यदि आपके बिल्ड वातावरण में npm उपलब्ध नहीं है, तो आप https://github.com/snyk/snyk/releases से curl का उपयोग करके बाइनरी डाउनलोड कर सकते हैं।
script:
- mvn install
- npm install -g snyk # binary download also available
- snyk test --all-projects
# rest of your pipeline...
यह विशेष रूप से उन भाषाओं के लिए प्रासंगिक है जिनमें अधिक जटिल बिल्ड वातावरण होते हैं - उदाहरण के लिए Maven या Gradle के साथ Java। इन परिदृश्यों में, आप snyk test --json > snyk-test-output.json के किसी भिन्न रूप का उपयोग करके अपने एप्लिकेशन का Snyk CLI से परीक्षण कर सकते हैं और फिर Code Insights रिपोर्ट उत्पन्न करने के लिए आउटपुट फ़ाइल को पाइप में आगे फीड कर सकते हैं। Snyk CLI स्थापित करने का सबसे आसान तरीका npm (npm install -g snyk) है, लेकिन यदि आपके बिल्ड वातावरण में npm उपलब्ध नहीं है, तो आप https://github.com/snyk/snyk/releases से curl का उपयोग करके बाइनरी डाउनलोड कर सकते हैं।
script:
- mvn install
- npm install -g snyk # binary download also available
- snyk test --all-projects --json > snyk-test-output.json
- pipe: snyk/snyk-scan:1.0.2
variables:
SNYK_TOKEN: $SNYK_TOKEN
SNYK_TEST_JSON_INPUT: "snyk-test-output.json"
# rest of your pipeline...
किसी Node.js ऐप पर Snyk पैच लागू करें, और केवल क्रिटिकल गंभीरता की कमजोरियों के लिए निर्भरताओं को स्कैन करना जारी रखें, लेकिन कोई मिलने पर बिल्ड विफल न करें। साथ ही, यदि नई कमजोरियां मिलती हैं तो अलर्ट पाने के लिए Snyk.io पर निर्भरताओं की स्थिति की निगरानी करने का विकल्प चुनें। फिर Docker इमेज बनाने के लिए आगे बढ़ें और उसे क्रिटिकल गंभीरता की कमजोरियों के लिए स्कैन करें।
script:
- npm install
- npm test
- pipe: snyk/snyk-scan:1.0.2
variables:
SNYK_TOKEN: $SNYK_TOKEN
LANGUAGE: "node"
PROTECT: "true"
SEVERITY_THRESHOLD: "critical"
DONT_BREAK_BUILD: "true"
MONITOR: "true"
- docker build -t $IMAGE_NAME .
- pipe: snyk/snyk-scan:1.0.2
variables:
SNYK_TOKEN: $SNYK_TOKEN
LANGUAGE: "docker"
IMAGE_NAME: $IMAGE_NAME
TARGET_FILE: "Dockerfile"
SEVERITY_THRESHOLD: "high"
DONT_BREAK_BUILD: "true"
MONITOR: "true"
- docker push $IMAGE_NAME
Snyk के गैर-डिफ़ॉल्ट इंस्टेंस का उपयोग करने वाले ग्राहकों के लिए, URL निर्दिष्ट करने हेतु SNYK_API का उपयोग आवश्यक है। यह MT-EU, MT-AU और सिंगल टेनेंट ग्राहकों पर लागू होता है।
script:
- npm install
- npm test
- pipe: snyk/snyk-scan:1.0.2
variables:
SNYK_TOKEN: $SNYK_TOKEN
SNYK_API: https://api.eu.snyk.io
LANGUAGE: "node"
- npm publish
इस परियोजना की दीर्घकालिक स्थिरता और गुणवत्ता सुनिश्चित करने के लिए, हम अगस्त 2025 से प्रभावी एक बंद-योगदान मॉडल की ओर बढ़ रहे हैं। यह परिवर्तन हमारी मुख्य टीम को एक केंद्रीकृत विकास रोडमैप और कठोर गुणवत्ता आश्वासन पर ध्यान केंद्रित करने की अनुमति देता है, जो इतने व्यापक उपयोग वाले घटक के लिए आवश्यक है।
पारदर्शिता के लिए हमारा सारा विकास सार्वजनिक रहेगा। हम समुदाय को उसके समर्थन और मूल्यवान योगदान के लिए धन्यवाद देते हैं।
बंद-योगदान मॉडल की ओर हमारे कदम के हिस्से के रूप में इस रिपॉजिटरी पर GitHub issues अक्षम कर दिए गए हैं। Snyk सहायता टीम किसी भी Snyk विकास परियोजना पर GitHub issues की सक्रिय रूप से निगरानी नहीं करती है।
Snyk उत्पादों में सहायता के लिए, कृपया Snyk सहायता पृष्ठ का उपयोग करें, जो सहायता प्राप्त करने का सबसे तेज़ तरीका है।
कॉपीराइट (c) 2019 Snyk Ltd. और अन्य। Apache 2.0 लाइसेंस प्राप्त, LICENSE.txt फ़ाइल देखें।
| Variable | Usage |
|---|
| SNYK_TOKEN (*) | Snyk API टोकन। |
| LANGUAGE (*) | विकास भाषा (जैसे node, ruby, composer, dotnet या docker)। संभावित टैग की पूरी सूची के लिए Dockerhub देखें। नोट: SNYK_BASE_IMAGE के साथ उपयोग करने पर, यह फ़ील्ड आपके बेस इमेज टैग को संदर्भित करती है |
| IMAGE_NAME (*) | docker भाषा के लिए, वह इमेज जिस पर docker स्कैन करना है। |
| SNYK_BASE_IMAGE | यदि आप Snyk Images का उपयोग नहीं करना चाहते तो अपनी स्वयं की बेस इमेज प्रदान करें। डिफ़ॉल्ट: snyk/snyk। नोट: LANGUAGE आपके बेस इमेज टैग को संदर्भित करेगा, कृपया सुनिश्चित करें कि टैग मान्य है |
| CODE_INSIGHTS_RESULTS | Snyk परीक्षण परिणामों के साथ Code Insight रिपोर्ट बनाएं। डिफ़ॉल्ट: false। |
| SNYK_TEST_JSON_INPUT | उपयोग करें यदि आप पहले से उत्पन्न snyk test --json आउटपुट से केवल Code Insights रिपोर्ट बनाना चाहते हैं। नीचे "मौजूदा Snyk JSON आउटपुट से Code Insights रिपोर्ट उत्पन्न करना" अनुभाग में उदाहरण देखें। |
| PROTECT | यह आपकी .snyk फ़ाइल में निर्दिष्ट पैच को स्थानीय फ़ाइल सिस्टम पर लागू करेगा। (Snyk Wizard चलाने के बाद) डिफ़ॉल्ट: false। |
| DONT_BREAK_BUILD | पाई गई समस्याओं के बावजूद बिल्ड जारी रखें। डिफ़ॉल्ट: false। |
| MONITOR | प्रारंभिक परीक्षण के बाद प्रोजेक्ट का स्नैपशॉट Snyk UI में रिकॉर्ड करें और उसकी निगरानी जारी रखें। डिफ़ॉल्ट: false। |
| SEVERITY_THRESHOLD | प्रदान किए गए स्तर के बराबर या उससे अधिक की समस्याओं पर रिपोर्ट करता है। अनुमत मान: low, med, high, critical। डिफ़ॉल्ट: low। |
| ORGANIZATION | वह संगठन जिसके साथ cli चलाना है। डिफ़ॉल्ट: कोई नहीं। |
| PROJECT_FOLDER | वह फ़ोल्डर जिसमें प्रोजेक्ट स्थित है। डिफ़ॉल्ट: .। |
| TARGET_FILE | पैकेज फ़ाइल (जैसे package.json); CLI में --file= के समकक्ष। Docker के लिए Dockerfile की ओर इंगित करना चाहिए। डिफ़ॉल्ट: कोई नहीं। |
| EXTRA_ARGS | snyk cli को पास किए जाने वाले अतिरिक्त तर्क। डिफ़ॉल्ट: कोई नहीं। |
| DEBUG | अतिरिक्त डीबग जानकारी चालू करें। डिफ़ॉल्ट: false। |
| SNYK_API | Snyk API एंडपॉइंट निर्दिष्ट करता है। डिफ़ॉल्ट: https://api.snyk.io (मानक Snyk MT-US वातावरण) |