
يستخدم هذا الأنبوب Snyk للعثور على الثغرات الأمنية المعروفة في تبعيات تطبيقك وصورة Docker وإصلاحها ومراقبتها.
أضف المقتطف التالي إلى قسم script في ملف bitbucket-pipelines.yml الخاص بك:
- 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، يمكنك اختبار قاعدة التعليمات البرمجية الخاصة بك بشكل مستمر وإصلاحها ومراقبتها بحثًا عن الثغرات الأمنية المعروفة في تبعياتك وصورة Docker.
لمعرفة المزيد عن Snyk، تفضل بزيارة موقعنا الإلكتروني.
بالنسبة للغات / مديري الحزم ذات البيئات الأكثر تقدمًا مثل Java مع Maven أو Gradle، يجب عليك استخدام Snyk CLI مباشرة في خط الأنابيب الخاص بك. راجع مثال "الاستخدام المباشر لـ Snyk CLI". إذا كنت تريد أيضًا إنشاء تقرير Code Insights، فيمكنك تمرير مخرجات اختبار Snyk CLI إلى هذا الأنبوب - راجع مثال "إنشاء تقرير Code Insights من مخرجات Snyk JSON الموجودة".
رمز API الخاص بـ Snyk ضروري لاستخدام هذا الأنبوب.
يستخدم Snyk لفحص تطبيق Node.js وإيقاف البناء إذا تم العثور على أي ثغرات أمنية.
script:
- npm install
- npm test
- pipe: snyk/snyk-scan:1.0.2
variables:
SNYK_TOKEN: $SNYK_TOKEN
LANGUAGE: "node"
- npm publish
يستخدم صورة Docker مخصصة لتشغيل عمليات فحص Snyk الخاصة بك. مفيد إذا كنت لا ترغب في استخدام صور Snyk الافتراضية. ستأخذ الصورة التنسيق <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
يستخدم Snyk لفحص صورة Docker وإيقاف البناء إذا تم العثور على أي ثغرات أمنية.
```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
هذا مهم بشكل خاص للغات التي لديها بيئات بناء أكثر تعقيدًا - على سبيل المثال Java مع Maven أو Gradle. في هذه السيناريوهات، يمكنك اختبار تطبيقك باستخدام Snyk CLI عبر بعض أشكال snyk test. أسهل طريقة لتثبيت Snyk CLI هي باستخدام npm (npm install -g snyk)، ولكن إذا لم يكن npm متاحًا في بيئة البناء لديك، يمكنك تنزيل ملف ثنائي باستخدام curl من https://github.com/snyk/snyk/releases.
script:
- mvn install
- npm install -g snyk # binary download also available
- snyk test --all-projects
# rest of your pipeline...
هذا مهم بشكل خاص للغات التي لديها بيئات بناء أكثر تعقيدًا - على سبيل المثال Java مع Maven أو Gradle. في هذه السيناريوهات، يمكنك اختبار تطبيقك باستخدام Snyk CLI عبر بعض أشكال snyk test --json > snyk-test-output.json ثم تمرير ملف المخرجات إلى هذا الأنبوب لإنشاء تقرير Code Insights. أسهل طريقة لتثبيت Snyk CLI هي باستخدام npm (npm install -g snyk)، ولكن إذا لم يكن npm متاحًا في بيئة البناء لديك، يمكنك تنزيل ملف ثنائي باستخدام curl من https://github.com/snyk/snyk/releases.
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...
قم بتطبيق تصحيحات Snyk على تطبيق Node.js، واستمر في فحص التبعيات بحثًا عن ثغرات شديدة الخطورة فقط، دون إيقاف البناء إذا تم العثور على أي منها. كما يمكنك الاشتراك في مراقبة حالات التبعيات على 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، يلزم استخدام SNYK_API لتحديد عنوان URL. ينطبق هذا على عملاء 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 في هذا المستودع كجزء من انتقالنا إلى نموذج المساهمة المغلق. لا يقوم فريق دعم Snyk بمراقبة مشكلات GitHub بنشاط في أي مشروع تطوير تابع لـ Snyk.
للحصول على المساعدة بشأن منتجات Snyk، يرجى استخدام صفحة دعم Snyk، وهي أسرع طريقة للحصول على المساعدة.
حقوق النشر (c) 2019 Snyk Ltd. وغيرهم. مرخص بموجب Apache 2.0، راجع ملف LICENSE.txt.
| المتغير | الاستخدام |
|---|
| SNYK_TOKEN (*) | رمز API الخاص بـ Snyk. |
| LANGUAGE (*) | لغة التطوير (مثل node أو ruby أو composer أو dotnet أو docker). راجع Dockerhub للحصول على قائمة كاملة بالوسوم الممكنة. ملاحظة: عند الاستخدام مع SNYK_BASE_IMAGE، يشير هذا الحقل إلى وسم صورتك الأساسية |
| IMAGE_NAME (*) | بالنسبة للغة docker، الصورة التي سيتم إجراء فحص docker عليها. |
| SNYK_BASE_IMAGE | قم بتوفير صورتك الأساسية إذا كنت لا ترغب في استخدام صور Snyk. الافتراضي: snyk/snyk. ملاحظة: LANGUAGE سيشير إلى وسم صورتك الأساسية، يرجى التأكد من أن الوسم صالح |
| CODE_INSIGHTS_RESULTS | إنشاء تقرير Code Insights مع نتائج اختبار Snyk. الافتراضي: false. |
| SNYK_TEST_JSON_INPUT | استخدمه إذا كنت تريد فقط إنشاء تقرير Code Insights من مخرجات snyk test --json التي تم إنشاؤها مسبقًا. راجع المثال أدناه في قسم "إنشاء تقرير Code Insights من مخرجات Snyk JSON الموجودة". |
| PROTECT | سيؤدي هذا إلى تطبيق التصحيحات المحددة في ملف .snyk الخاص بك على نظام الملفات المحلي. (بعد تشغيل Snyk Wizard) الافتراضي: false. |
| DONT_BREAK_BUILD | متابعة البناء على الرغم من المشكلات التي تم العثور عليها. الافتراضي: false. |
| MONITOR | تسجيل لقطة من المشروع في واجهة Snyk والاستمرار في مراقبته بعد الاختبار الأولي. الافتراضي: false. |
| SEVERITY_THRESHOLD | الإبلاغ عن المشكلات التي تساوي المستوى المقدم أو تتجاوزه. القيم المسموح بها: low, med, high, critical. الافتراضي: low. |
| ORGANIZATION | المؤسسة التي سيتم تشغيل CLI بها. الافتراضي: لا شيء. |
| PROJECT_FOLDER | المجلد الذي يوجد به المشروع. الافتراضي: .. |
| TARGET_FILE | ملف الحزمة (مثل package.json)؛ يعادل --file= في CLI. بالنسبة لـ Docker يجب أن يشير إلى Dockerfile. الافتراضي: لا شيء. |
| EXTRA_ARGS | وسائط إضافية يتم تمريرها إلى snyk cli. الافتراضي: لا شيء. |
| DEBUG | تشغيل معلومات تصحيح إضافية. الافتراضي: false. |
| SNYK_API | يحدد نقطة نهاية API الخاصة بـ Snyk. الافتراضي: https://api.snyk.io (بيئة Snyk MT-US القياسية) |