الانتقال إلى المحتوى الرئيسي

المستودعات والمشكلات وطلبات السحب

يربط تكامل GitHub تطبيق وولف فيش بواجهة GitHub API لإدارة المستودعات والمشكلات وطلبات السحب وسير العمل والإصدارات والمزيد. يستخدم رمز وصول شخصي (PAT) للمصادقة.

الإعداد

1

إنشاء رمز

انتقل إلى github.com/settings/tokens وأنشئ رمز وصول شخصي جديد (كلاسيكي أو دقيق).
2

اختيار النطاقات

للحصول على الوظائف الكاملة، اختر كحد أدنى: repo وread:org. راجع جدول النطاقات أدناه للتفاصيل.
3

التهيئة في وولف فيش

افتح الإعدادات > التكاملات > GitHub والصق رمزك.

نطاقات الرمز المطلوبة

النطاقيمنح الوصول إلى
repoالتحكم الكامل بالمستودعات الخاصة (المشكلات، طلبات السحب، الشفرة، الإصدارات، سير العمل)
read:orgوصول للقراءة فقط لعضويات المنظمة والفرق

النطاقات الاختيارية

النطاقيمنح الوصول إلى
gistإنشاء وإدارة المقتطفات
notificationsقراءة الإشعارات
workflowتشغيل أحداث إرسال سير عمل GitHub Actions
توفر الرموز الدقيقة صلاحيات أكثر تحديدًا لكنها تتطلب تهيئة لكل مستودع. الرموز الكلاسيكية مع repo + read:org هي أبسط طريقة للحصول على الوظائف الكاملة.

قدرتان، منصة واحدة

يفصل وولف فيش بين عمليات git المحلية وعمليات GitHub API عن بُعد:

git (مهارة صرفة)

عمليات git المحلية — commit و branch و merge و rebase و diff و log. تستخدم shell_exec لتنفيذ أوامر git. لا حاجة لرمز.

github (إضافة)

عمليات GitHub API عن بُعد — المشكلات وطلبات السحب وسير العمل والإصدارات. تستخدم Octokit لاستدعاء GitHub REST API. تتطلب رمز PAT.
قدرة git متاحة دائمًا (هي مهارة صرفة تستخدم أوامر الطرفية). قدرة github تتطلب رمزًا مهيّأً لإجراء استدعاءات API.

الأدوات المتاحة

المستودعات

الأداةالوصف
github_list_reposعرض المستودعات للمستخدم المصادق أو منظمة
github_star_repoتمييز مستودع بنجمة
github_fork_repoعمل نسخة من مستودع إلى حسابك
github_compare_branchesمقارنة فرعين (عدد الالتزامات المتقدمة/المتأخرة، إحصائيات الفروقات)
github_list_branchesعرض فروع مستودع

المشكلات

الأداةالوصف
github_create_issueإنشاء مشكلة جديدة
github_read_issueقراءة مشكلة مع تعليقاتها
github_update_issueتحديث عنوان المشكلة أو محتواها أو تصنيفاتها أو المكلّفين بها أو حالتها
github_list_issuesعرض المشكلات مع فلاتر (الحالة، التصنيفات، المكلّف)
github_manage_labelsإنشاء أو تحديث أو حذف التصنيفات
github_manage_milestonesإنشاء أو تحديث أو حذف المعالم

طلبات السحب

الأداةالوصف
github_create_prإنشاء طلب سحب جديد
github_list_prsعرض طلبات السحب مع فلاتر
github_merge_prدمج طلب سحب (merge أو squash أو rebase)
github_review_prتقديم مراجعة (موافقة، طلب تعديلات، تعليق)

CI/CD وسير العمل

الأداةالوصف
github_list_workflowsعرض سير عمل GitHub Actions لمستودع
github_trigger_workflowتشغيل حدث إرسال سير عمل
github_list_notificationsعرض الإشعارات غير المقروءة

الإصدارات والمقتطفات

الأداةالوصف
github_create_releaseإنشاء إصدار جديد مع وسم
github_manage_gistsإنشاء أو عرض أو تحديث المقتطفات

المحفّزات

تُفعّل قدرة GitHub عندما تتطابق رسالتك مع أي من هذه الأنماط:
github, pull request, PR, merge, issue, issues,
repo, repository, CI, actions, workflow, release,
gist, notification, star, fork, branch, compare
أوامر git المحلية (commit و push و diff و log) تُفعّل قدرة git، وليس github. إذا قلت “ادفع إلى origin”، تنفّذ مهارة git الأمر git push عبر shell_exec. إذا قلت “أنشئ طلب سحب”، تستدعي إضافة github واجهة GitHub API.

أمثلة على سير العمل

You: "Create a PR for my current branch"
Wolffish: Reads the current branch name, detects the remote, and calls
github_create_pr with the branch as head and main as base.
You: "What are the open issues on wolffish-app?"
Wolffish: Calls github_list_issues with state=open and returns a formatted list
with titles, labels, and assignees.
You: "What's the CI status on my latest PR?"
Wolffish: Lists recent PRs, finds yours, and checks the workflow run status.
You: "Trigger the deploy workflow on main"
Wolffish: Calls github_trigger_workflow with the workflow ID and ref=main.

مرجع التهيئة

يُخزّن رمز GitHub كمتغير في الإعدادات:
{
  "variables": {
    "GITHUB_TOKEN": "ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
  }
}
بدلًا من ذلك، يمكنك تعيينه في config.json:
{
  "integrations": {
    "github": {
      "token": "ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    }
  }
}
لا تضف أبدًا رمز GitHub PAT إلى نظام التحكم بالإصدارات. إذا كنت تخزّن مساحة العمل في git، تأكد من إضافة config.json وأي ملف متغيرات إلى .gitignore.