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

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

اتحاد هوية عبء العمل هو الطريقة المقترَحة للمصادقة من GitHub Actions إلى Google Cloud.
- بالنسبة إلى كل سير عمل تشغيل مهمة في GitHub Actions، يصدر 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وتحديد "عمليات ربط السمات"، والتي تتضمّن عادةً أسماء المستودعات والفروع. تتحقّق خدمة Google Cloud STS من صحة رمز JWT استنادًا إلى قواعد Workload Identity Pool. إذا كان كل شيء على ما يرام، بما في ذلك عمليات ربط السمات، سيتبادل نظام STS رمز GitHub مقابل رمز دخول موحّد قصير الأجل إلى Google Cloud. - يمكن الآن أن يستخدم الإجراء
google-github-actions/run-gemini-cliفي سير عمل GitHub Actions رمز الدخول الموحّد المؤقت إلى Google Cloud "لانتحال" هوية حساب خدمة مرتبط بمجموعة Workload Identity. يجب أن يتضمّن حساب الخدمة المرتبط أدوار وأذونات إدارة الهوية وإمكانية الوصول (IAM) اللازمة للوصول إلى أي موارد وخدمات على Google Cloud.
مزايا استخدام Workload Identity Federation بدلاً من مفتاح Gemini API
يمكنك إثبات ملكية طلبات Gemini CLI الواردة من GitHub Actions باستخدام مفتاح Gemini API، ويتضمّن ذلك إنشاء سرّ جديد في GitHub Actions باسم GEMINI_API_KEY مع قيمة المفتاح المناسبة. ومع ذلك، لا ننصح بهذا الإجراء للأسباب الأمنية التالية:
- يمكن أن تتضمّن مفاتيح Gemini API أذونات واسعة النطاق من عمليات ربط أدوار "إدارة الهوية وإمكانية الوصول" الخاصة بها. وعند اختراقها، تتيح الوصول إلى مجموعة كبيرة من موارد وخدمات Google Cloud. تستفيد ميزة Workload Identity Federation من حسابات الخدمة ورموز الدخول القصيرة الأمد، ما يؤدي إلى تعزيز المصادقة بشكل كبير.
- يصعب أيضًا إدارة مفاتيح Gemini API على نطاق واسع. يستغرق تحديد مهام سير العمل التي تستخدم مفتاحًا مكشوفًا بعض الوقت. يستغرق تدوير المفاتيح يدويًا وقتًا أيضًا. من ناحية أخرى، يمكنك بسهولة البحث عن مجموعات وموفّري Workload Identity المرتبطين بمستودعك وتعديلهم وحذفهم من 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 Extension أي مشاكل أمان تعثر عليها حسب فئات الخطورة، بدءًا من "خطيرة للغاية" و"خطيرة" و"متوسطة" وصولاً إلى "منخفضة".
في ما يلي مثال على مراجعة أمان في طلب سحب جديد ومثال على مراجعة أمان في طلب سحب حالي.
6. استكشاف المزيد
ننصحك بالاطّلاع على قائمة متزايدة من الأوامر المخصّصة التي تتضمّن إمكانات أمان جديدة في إضافة "الأمان" في Gemini CLI والبدء في استخدامها في مهام سير عملك. على سبيل المثال:
- تجري
/security:scan-depsمراجع تبادلية مع OSV.dev بشأن العناصر التابعة لمشروعك.
يمكنك أيضًا الاطّلاع على ملاحظات الإصدار لمعرفة أحدث الميزات وإصلاحات الأخطاء.
7. تهانينا
تهانينا، لقد نجحت في إعداد مستودع GitHub لاستخدام "إضافة الأمان" في Gemini CLI من أجل تحليل طلبات الدمج بحثًا عن المخاطر والثغرات الأمنية.