الدرس 14 — دليل OpenClaw مهارة GitHub: جعل الذكاء الاصطناعي يدير Issues ويرفع PR ويتحقق من CI (2026)
الهدف: تثبيت مهارة GitHub، واستخدام أداة
ghCLI لجعل OpenClaw يعالج المهام اليومية للتطوير على GitHub بلغة طبيعية.
المتطلب الأساسي: تثبيت وإعداد gh CLI
تعتمد مهارة GitHub على أداة gh CLI الرسمية. إذا لم تكن مثبتةً، أتمّ هذه الخطوة أولاً:
# macOS
brew install gh
# Linux (Debian/Ubuntu)
sudo apt install gh
# Windows (winget)
winget install --id GitHub.cliبعد التثبيت سجّل الدخول للتفويض:
gh auth loginاتبع التعليمات واختر:
? What account do you want to log into? GitHub.com
? What is your preferred protocol for Git operations? HTTPS
? Authenticate Git with your GitHub credentials? Yes
? How would you like to authenticate GitHub CLI? Login with a web browser
! First copy your one-time code: XXXX-XXXX
Press Enter to open github.com in your browser...
بعد نجاح تسجيل الدخول تحقق:
gh auth status
# يجب أن يُظهر: ✓ Logged in to github.com as <اسم_مستخدمك>المتطلب الأساسي لاستخدام مهارة GitHub هو أن gh قد تم تسجيل الدخول بنجاح — تتفاعل مهارة GitHub مع GitHub API عبر استدعاء أوامر gh، لا تحتاج إعداد Personal Access Token منفصل.
الخطوة الأولى: تثبيت مهارة GitHub
/install @steipete/github
بعد اكتمال التثبيت تحقق:
pnpm openclaw skills list
# يجب أن يظهر githubالخطوة الثانية: إدارة Issues
الأوامر الشائعة لإنشاء GitHub Issue تلقائياً:
أنشئ Issue في myorg/myrepo: العنوان "NullPointerException في وحدة الدفع"، الوصف "تحدث NPE عرضياً في معالج الاستجابة عند الحمل الزائد"، التصنيفات bug وhigh-priority
اعرض آخر 10 Issues مفتوحة في myorg/myrepo
ابحث عن جميع Issues التي تحتوي كلمة "timeout" في myorg/myrepo
أغلق Issue #234 بالتوضيح "تم الإصلاح في PR #456"
أضف تصنيف needs-review لـ Issue #234، وعيّنها لـ @zhangwei
سيستدعي الذكاء الاصطناعي تلقائياً أمر gh المقابل ويُعيد نتيجة التنفيذ:
# الأمر الفعلي الذي تنفّذه المهارة (مرئي)
gh issue create --repo myorg/myrepo \
--title "NullPointerException في وحدة الدفع" \
--body "تحدث NPE عرضياً..." \
--label "bug,high-priority"
# ✅ تم إنشاء Issue #235: https://github.com/myorg/myrepo/issues/235الخطوة الثالثة: عمليات PR
عمليات PR المتعلقة بمساعدة الذكاء الاصطناعي في مراجعة PR:
اعرض جميع PR المعلقة للدمج في myorg/myrepo
اعرض الـ diff الخاص بـ PR #456، وأخبرني ما الذي تغيّر أساساً
اكتب تعليق مراجعة على PR #456: المنطق العام واضح، لكن معالجة الأخطاء في السطر 38 تحتاج إضافة logging، أقترح استخدام نمط ErrorHandler الموحد
أنشئ PR في myorg/myrepo: من الفرع feature/payment-refactor إلى main، العنوان "إعادة هيكلة وحدة بوابة الدفع"، الوصف يتضمن ملخص التغييرات
وافق على PR #456 وادمجه (squash merge)
قبل تنفيذ العمليات التدميرية كالدمج، سيطلب الذكاء الاصطناعي تأكيدك:
على وشك دمج PR #456 في main (squash merge). تأكيد التنفيذ؟ [y/N]
الخطوة الرابعة: عرض CI / Actions
الأوامر الشائعة لعرض أسباب فشل GitHub Actions:
اعرض حالة أحدث 5 تشغيلات CI في myorg/myrepo
فشل CI الخاص بـ PR #456، أخبرني بسبب الفشل
أعد تشغيل CI لـ PR #456
اعرض سجل آخر تشغيل للـ workflow "Deploy to Production"
سيستخرج الذكاء الاصطناعي تلقائياً الخطوة الفاشلة ورسالة الخطأ الرئيسية، دون الحاجة لتصفح سجلات طويلة:
تحليل فشل CI (Run #1234):
الخطوة الفاشلة: Run tests
نوع الخطأ: انتهاء مهلة الاختبار (تجاوز الحد 30s)
الاختبار الفاشل: PaymentServiceTest.testHighConcurrency
الاقتراح: زيادة إعداد مهلة الاختبار أو تحسين حالة الاختبار
الخطوة الخامسة: الاستخدام المتقدم — استعلامات gh api المعقدة
للسيناريوهات غير المشمولة بالأوامر المضمّنة، يمكن استخدام gh api للاستعلامات المخصصة:
استخدم gh api للاستعلام عن جميع PR التي تم دمجها في myorg/myrepo خلال آخر 30 يوماً، مع قائمة المؤلفين وتاريخ الدمج
استخدم gh api للحصول على عدد Stars لجميع مستودعات مؤسسة myorg، مرتبةً تنازلياً
سيبني الذكاء الاصطناعي استعلام GraphQL أو REST المناسب:
gh api graphql -f query='
query {
repository(owner: "myorg", name: "myrepo") {
pullRequests(states: MERGED, last: 50, orderBy: {field: UPDATED_AT, direction: DESC}) {
nodes {
title
author { login }
mergedAt
}
}
}
}
'الخطوة السادسة: تقرير نشاط المستودع اليومي
اجعله مهمة يومية في الصباح:
أخبرني بنشاط myorg/myrepo:
1. Issues الجديدة بالأمس (مرتبة حسب الأولوية)
2. PR التي تنتظر مراجعتي
3. CI pipeline الفاشلة
مع دمج مهارة ontology (الدرس 12)، يستطيع الذكاء الاصطناعي ربط هذه الأنشطة بسياق مشاريعك المعروف:
PR #460 مقدم من محمد علي، مرتبط بمشروع "إعادة هيكلة نظام الدفع"، أولوية عالية، يُنصح بالمراجعة سريعاً.
الأسئلة الشائعة
هل يستطيع OpenClaw دمج PR تلقائياً؟
نعم، لكن كل عملية دمج تستلزم طلب تأكيد من الذكاء الاصطناعي، ولن ينفّذ العمليات التدميرية بصمت. يمكنك صراحةً إخبار الذكاء الاصطناعي "وافق وادمج PR #456 بدون تأكيد إضافي"، وسينفّذ مباشرةً. للدمج الكامل التلقائي (مثل الدمج تلقائياً بعد نجاح CI)، يمكن الدمج مع وظيفة المهام المجدولة في OpenClaw لإعداد التشغيل المشروط.
هل تحتاج مهارة GitHub Personal Access Token؟
لا تحتاج إعداد Personal Access Token بشكل منفصل. تعيد مهارة GitHub استخدام بيانات اعتماد gh CLI المسجّل دخوله، تحتاج فقط إتمام gh auth login قبل تثبيت المهارة. تستخدم gh CLI تفويض OAuth Device Flow، وهو أكثر أماناً من PAT المُدار يدوياً، ونطاق الصلاحيات يُتحكم به عبر GitHub الرسمي.
ما الفرق بين مهارة GitHub وGitHub Copilot؟
التوجه مختلف تماماً. GitHub Copilot أداة لمساعدة كتابة الكود، تعمل أساساً في بيئة التطوير لاقتراح إكمال الكود. مهارة GitHub أداة لأتمتة عمليات المستودع، تتيح إدارة Issues ومراجعة PR وعرض CI بلغة طبيعية، دون التدخل في كتابة الكود نفسه. الاثنان يمكن استخدامهما معاً دون تعارض، ومهارة GitHub ذات قيمة خاصة للمطورين الذين لا يستخدمون VS Code (مستخدمو Neovim، سير العمل في الطرفية).
هل يمكن إدارة عدة مستودعات GitHub في آنٍ واحد؟
نعم. فقط حدد اسم المستودع المختلف في التعليمات، مهارة GitHub لا تُقيّد عدد المستودعات. مثلاً:
اعرض PR المعلقة للدمج في myorg/frontend وmyorg/backend وادمجها في قائمة واحدة
للمستودعات الخاصة بمؤسسات، تأكد فقط من أن الحساب المسجّل في gh auth login لديه صلاحية الوصول للمستودع المقابل، دون إعداد إضافي.