1- مقدمة
Gemini CLI Security Extension هي إضافة مفتوحة المصدر من Google إلى Gemini CLI، وهي تحلّل الرموز البرمجية بحثًا عن المخاطر والثغرات الأمنية. يمكنك استخدام إضافة Security مع Gemini CLI لتحديد المشاكل الأمنية محليًا، تمامًا كما تفعل مع أي إضافة أخرى إلى Gemini CLI. يمكنك أيضًا استدعاؤها لمراجعة طلبات السحب على GitHub. في هذا الدرس التطبيقي حول الترميز، سنشرح كيفية استخدام إضافة Security في مستودع GitHub.
الإجراءات التي ستتّخذها
- ضبط المصادقة الآمنة من GitHub إلى Google Cloud
- إنشاء سير عمل في GitHub Actions يستدعي إضافة Gemini CLI Security
- إجراء مراجعة أمنية لطلب سحب جديد أو حالي باستخدام GitHub Actions
المفاهيم التي ستتعرّف عليها
- كيفية استخدام Workload Identity Federation للمصادقة الآمنة من GitHub Actions إلى Google Cloud
- التعرّف على مزايا استخدام Workload Identity Pool وWorkload Identity Provider بدلاً من مفتاح Gemini API للمصادقة
- كيفية إجراء مراجعة أمنية باستخدام طلبات السحب
- كيفية تفسير المراجعات الأمنية التي تعرضها إضافة Security
المتطلبات
- متصفح ويب
- حساب ومستودع على GitHub
- مشروع على Google Cloud
هذا الدرس التطبيقي حول الترميز مخصّص للمطوّرين الذين يعرفون سير عمل التكامل المستمر/النشر المستمر (CI/CD) على GitHub. ليس من المتوقّع أن تكون على دراية بـ Gemini CLI أو إضافات Gemini CLI. إذا أردت التعرّف على طريقة عمل الإضافات، يمكنك الاطّلاع على الدرس التطبيقي حول الترميز: بدء استخدام إضافات Gemini CLI.
في هذا الدرس التطبيقي حول الترميز، ستتعرّف على كيفية إعداد إضافة Gemini CLI Security في مستودع GitHub. لن نقترح عليك رمزًا لفتح طلب سحب في مستودعك لتفعيل العثور على ثغرة أمنية.
2. قبل البدء
إنشاء مشروع أو اختياره
- في Google Cloud Console، في صفحة اختيار المشروع، اختَر مشروعًا على السحابة الإلكترونية أو أنشِئه.
- تأكَّد من تفعيل الفوترة لمشروعك على السحابة الإلكترونية. تعرّف على كيفية التحقّق من الفوترة.
- افتح Cloud Shell، وهي بيئة سطر أوامر تعمل على Google Cloud. انقر على تفعيل Cloud Shell في أعلى Google Cloud Console.

- بعد الاتصال بـ Cloud Shell، تأكَّد من أنّك مصادق وأنّ المشروع مضبوط على رقم تعريف مشروعك باستخدام الأمر التالي:
gcloud auth list
- شغِّل الأمر التالي للتأكّد من ضبط الأمر
gcloudلاستخدام مشروعك.
gcloud config list project
- إذا لم يتم ضبط مشروعك، استخدِم الأمر التالي لضبطه:
gcloud config set project ${GOOGLE_CLOUD_PROJECT}
3. إعداد المصادقة من GitHub إلى Google Cloud
آلية العمل

Workload Identity Federation هي الطريقة المقترَحة للمصادقة من GitHub Actions إلى Google Cloud.
- بالنسبة إلى كل مهمة يتم تشغيلها في سير عمل GitHub Actions workflow run job، يصدر GitHub بصفتها موفّر هوية خارجيًا رمز JWT (JSON Web Token) موقّعًا. يحتوي هذا الرمز على "مطالبات"، مثل
repositoryوworkflowوjob_workflow_ref، التي تعمل كبطاقة هوية رقمية لهذا البرنامج التنفيذي المحدد. في هذا المختبر، ستنشئ سير عمل GitHub Actions يتضمّن مهمة تستخدم الإجراءgoogle-github-actions/run-gemini-cli، الذي سيطلب رمز JWT من GitHub ويرسل هذا الرمز إلى خدمة الرموز المميزة للأمان (STS) في Google Cloud. - ستضبط Workload Identity Pool وموفّر في Google Cloud من خلال ضبط عنوان URL للجهة المصدرة على عنوان URL الرسمي لخدمة الرموز المميزة في GitHub، وهو
https://token.actions.githubusercontent.com، وتحديد "عمليات ربط السمات"، التي تتضمّن عادةً أسماء المستودعات والفروع. تتحقّق خدمة STS في Google Cloud من صحة رمز JWT استنادًا إلى قواعد Workload Identity Pool. إذا كانت كل العناصر صحيحة، بما في ذلك عمليات ربط السمات، تستبدل خدمة STS رمز GitHub بـ رمز وصول موحّد قصير الأجل من Google Cloud. - يمكن الآن للإجراء
google-github-actions/run-gemini-cliفي سير عمل GitHub Actions استخدام رمز الوصول الموحّد قصير الأجل من Google Cloud "لانتحال هوية" حساب خدمة مرتبط بـ Workload Identity Pool. يجب أن يتضمّن حساب الخدمة المرتبط أدوار وأذونات IAM اللازمة للوصول إلى أي خدمات وموارد على Google Cloud.
مزايا استخدام Workload Identity Federation بدلاً من مفتاح Gemini API
يمكنك مصادقة طلبات Gemini CLI الصادرة من GitHub Actions باستخدام مفتاح Gemini API، ما يتضمّن إنشاء سر جديد في GitHub Actions باسم GEMINI_API_KEY باستخدام قيمة المفتاح المناسبة. ومع ذلك، لا ننصح بهذا الإجراء للأسباب الأمنية التالية:
- يمكن أن تتضمّن مفاتيح Gemini API أذونات واسعة النطاق من عمليات ربط أدوار IAM الخاصة بها. عند اختراقها، تتيح الوصول إلى مجموعة واسعة من خدمات وموارد Google Cloud. يستخدِم Workload Identity Federation حسابات الخدمة ورموز الوصول قصيرة الأجل، ما يعزّز المصادقة بشكل كبير.
- يصعب أيضًا إدارة مفاتيح Gemini API على نطاق واسع. يستغرق تحديد مهام سير العمل التي تستخدم مفتاحًا مكشوفًا وقتًا طويلاً. يستغرق أيضًا تدوير المفاتيح يدويًا وقتًا طويلاً. من ناحية أخرى، يمكنك بسهولة البحث عن مجموعات Workload Identity Pool وموفّريها المرتبطين بمستودعك وتعديلها وحذفها من Cloud Console.
- باستخدام مفاتيح Gemini API، عليك دائمًا التأكّد من عدم عرضها عن طريق الخطأ في أي سجلّات وصول أو تصحيح أخطاء. باستخدام Workload Identity Federation، لا تخزِّن أي أسرار في مهام سير عمل GitHub Actions، بل تخزِّن متغيرات أقل حساسية بطبيعتها.
ضبط GitHub Actions وGoogle Cloud
- في Cloud Shell، سجِّل الدخول إلى حسابك على GitHub.
gh auth login
- أنشِئ ملفًا جديدًا باسم
setup_workload_identity.shوانسخ نص الإعداد البرمجي والصقه من مستودعgoogle-github-actions/run-gemini-cli. - اجعل النص البرمجي قابلاً للتنفيذ.
chmod +x setup_workload_identity.sh
- شغِّل النص البرمجي.
./setup_workload_identity.sh --repo {OWNER/REPO} --project {GOOGLE_CLOUD_PROJECT}
4. إنشاء سير عمل في GitHub Actions
- سجِّل الخروج من مستودع GitHub الذي تملكه.
git clone {YOUR_REPO}
cd {YOUR REPO}
- أنشِئ سير عمل في GitHub Actions يستدعي الأمر باستخدام الشرطة المائلة
/security:analyze-github-prمن خلال نسخ مثال على نصymlالبرمجي لسير العمل من مستودع/gemini-cli-extensions/security.
git checkout -b workflow
mkdir .github/ && cd .github/
mkdir workflows/ && cd workflows/
curl -L https://raw.githubusercontent.com/gemini-cli-extensions/security/refs/heads/main/.github/workflows/gemini-review.yml -o gemini-review.yml
- انقل سير عمل GitHub Actions إلى المصدر البعيد على GitHub.
git add .github/workflows/gemini-review.yml
git commit -m "add new gha workflow"
git push --set-upstream origin workflow
5. تشغيل سير عمل التحليل الأمني على طلبات السحب الجديدة والحالية
ابدأ طلب سحب جديدًا في مستودع GitHub أو انشر تعليقًا جديدًا "@gemini-cli /review" بصفتك مالك المستودع أو أحد المساهمين فيه. سيؤدي ذلك إلى بدء مراجعة أمنية لطلب السحب. ستضع إضافة Gemini CLI Security من سير عمل GitHub Actions الذي التزمت به في مستودعك علامة على أي مشاكل أمنية تعثر عليها حسب فئات الخطورة، بدءًا من "خطيرة" و"عالية" و"متوسطة" وصولاً إلى "منخفضة".
في ما يلي مثال على مراجعة أمنية لطلب سحب جديد ومثال على مراجعة أمنية لطلب سحب حالي.
6. مزيد من الاستكشاف
ننصحك باستكشاف قائمة متزايدة من الأوامر المخصّصة التي تتضمّن إمكانات أمنية جديدة في إضافة Gemini CLI Security والبدء في استخدامها في مهام سير عملك. على سبيل المثال:
- يقارن الأمر
/security:scan-depsبين تبعيات مشروعك وOSV.dev.
يمكنك أيضًا الاطّلاع على ملاحظات الإصدار لمعرفة أحدث الميزات وإصلاحات الأخطاء.
7. تهانينا
تهانينا، لقد نجحت في ضبط مستودع GitHub لاستخدام إضافة Gemini CLI Security لتحليل طلبات السحب بحثًا عن المخاطر والثغرات الأمنية.