| ملخص | يسمح Discourse Code Review بمراجعة تغيّرات GitHub على منصة Discourse. | |
| رابط المستودع | https://github.com/discourse/discourse-code-review | |
| دليل التثبيت | كيفية تثبيت الإضافات في Discourse |
الميزات
ما هي؟
توفر إضافة Discourse Code Review تكاملاً ثنائي الاتجاه مع مستودعات الكود على GitHub. تتيح لفريقك مراجعة التغيّرات (commits) في المستودع باستخدام ميزات وإضافات Discourse مثل التعيين، والرسائل السرية (whispers)، والإشعارات، وسير العمل المخصص، وغيرها. تصبح كل تغيّر في المستودع موضوعًا جديدًا. وتنعكس الردود على هذا الموضوع على GitHub. التكامُل ثنائي الاتجاه، مما يعني أنه يمكنك التعليق على Discourse ورؤية التعليق على GitHub، أو التعليق على GitHub ورؤية التعليق على Discourse.
توفر هذه الإضافة سير عمل قويًا جدًا للفرق التي تحتاج إلى مراجعة جميع التغيّرات في أي عدد من المستودعات.
تتيح لك التأكد من أن عدة أعضاء في الفريق على علم بجميع التغيّرات المطبقة على المستودعات. يمكنك وضع علامات على التغيّرات للمتابعة، وتعيين مهام المراجعة، وأكثر من ذلك.
ملاحظة: عند عرض موضوع يمكن الموافقة عليه، يمكنك استخدام زر y على لوحة المفاتيح للموافقة على التغيّرات بسرعة أكبر.
هل يمكنني رؤيته يعمل؟
تدير Discourse موقع https://review.discourse.org/، وهو موقع عام يمكن لأي شخص التسجيل فيه باستخدام بيانات اعتماد GitHub. يعرض الموقع فقط مجموعة فرعية من الميزات لغير الموظفين. وقد يكون مثال أكثر اكتمالاً كالتالي:
على GitHub، يبدو نفس الموضوع كما يلي:
الإعداد
تعتمد الإضافة على Webhooks من GitHub لاكتشاف المستودعات والتغيّرات فيها. للإعداد الأدنى، ستحتاج إلى تعيين الإعداد التالي إلى سلسلة سرية.
code review github webhook secret
بعد تعيينه في مستودع GitHub الخاص بك، قم بإعداد Webhook بالمعلومات التالية:
عنوان الحمولة (Payload URL): https://YOUR_DISCOURSE/code-review/webhook
نوع المحتوى (Content Type): application/json
السر (Secret): قيمة code review github webhook secret
أنواع الأحداث:
- تعليقات على التغيّرات (Commit comments)
- تعليقات على القضايا (Issue comments)
- طلبات السحب (Pull requests)
- مراجعات طلبات السحب (Pull request reviews)
- تعليقات على مراجعات طلبات السحب (Pull request review comments)
- عمليات الدفع (Pushes)
توفر الإضافة إعدادات موقع إضافية التالية:
code review api username : GitHub مقيد للغاية بعدد طلبات API المجهولة المسموح بها، ويسمح هذا الإعداد باستخدام مفاتيح حساب مستخدم في Discourse لطلبات /comments و /commit. هذا يقلل بشكل كبير من احتمالية الوصول إلى حدود المعدل (rate limits).
code review catch up commits : عدد التغيّرات التي يجب “مطابقتها” وإنشاء مواضيع لها عند اكتشاف مستودع جديد.
code review default parent category: اختر فئة رئيسية افتراضية للفئات التي تنشئها الإضافة.
code review pending tag: الوسم الذي يُطبق على جميع التغيّرات غير المراجعة، الافتراضي هو pending.
code review approved tag: الوسم الذي يُطبق على التغيّرات الموافق عليها، الافتراضي هو approved.
code_review_followup_tag: الوسم الذي يُطبق على التغيّرات التي تحتاج متابعة، الافتراضي هو follow-up.
code review allow self approval: هل يُسمح للموظفين بالموافقة على تغيّراتهم الخاصة؟
code review default mute new categories: الفئات الجديدة التي تنشئها الإضافة تكون صامتة (مُعطلة الإشعارات) للمستخدمين بشكل افتراضي.
code review skip duration minutes: عند النقر على زر “تخطي” في تغيّر ما، سيتم منع ظهور هذا التغيّر مرة أخرى لمدة الدقائق المحددة بهذا الإعداد.
سجل التغييرات (CHANGELOG)
المهام المستقبلية (TODO)
إضافات
كيف تستخدم Discourse هذه الإضافة
TL;DR - صُممت هذه الإضافة لتكملة استخدام فريق Discourse لـ GitHub في مراجعة الكود.
مزيد من المعلومات
من @sam:
لا نزال نستخدم طلبات السحب (PRs) عبر واجهة GitHub ونحب عملها عند وجود العديد من التغيّرات. لم يتغير شيء هنا. GitHub رائع، ونحب GitHub. لديهم سير عمل ممتاز للتغيّرات التي لم يتم دمجها بعد. ومع ذلك…
سير عمل GitHub للتغيّرات التي تم دمجها مباشرة في المستودع فظيع.
تكمّل الإضافة فجوة لا يمكن ملؤها بـ GitHub اليوم، فنحن نود أن يقوم عضو واحد على الأقل من الفريق بمراجعة كل تغيير يتم على مستودعات Git المملوكة لـ Discourse المختلفة. إذا استخدمنا واجهة GitHub المقدمة، لن يُسمح لأحد أبدًا بفعل أي شيء سوى طلبات السحب. وهذا سيبطئنا بشكل كبير.
نحتاج إلى القدرة على التواصل بشكل خاص دون أن يعلم العالم كله بشأن بعض التغيّرات. على سبيل المثال: يجب أن ننشر هذا الإصلاح الرائع إلى
<أدخل اسم شركة ضخمة>بأسرع وقت، @sam هل يمكنك التعامل مع ذلك؟نحتاج إلى القدرة على الموافقة على التغيّرات أو طلب المتابعة، وهذا شيء لا توفره واجهة GitHub.
نحتاج إلى القدرة على تعيين تغيّرات معينة لمستخدم معين. لنفترض أن @sam قام بتغيير يحتوي على بعض الأخطاء. من الجيد أنه يمكننا تعيينه مباشرة لهذا التغيّر، ووضعه في قائمة المتابعة، ثم متابعة تنفيذ المتابعة.
Discourse رائع جدًا في كل ما يتعلق بالمحادثات، والميزات الصغيرة تُحدث فرقًا كبيرًا. يمكنني رؤية متى يكتب الأشخاص. لا أحتاج أبدًا لتحديث الصفحات لظهور التغييرات. الاقتباس رائع، ورفع الصور رائع، وهلم جرا.
Discourse جيد جدًا في حالة القراءة، حيث تحصل على ضمانات قوية بأنك قرأت كل شيء مرة واحدة، أما مع GitHub فلا أعرف أي التغيّرات قرأتها وأيها لم أقرأها. لدينا طريقة فعالة للغاية للتعامل مع تدفق المعلومات الهائل.
والقائمة تطول…
إذن تعمل الإضافة كملحق لـ GitHub، فنحن نستخدم GitHub حاليًا للتعامل مع التغيّرات التي لم يتم دمجها بعد. ونستخدم الإضافة للتعامل بشكل صحيح مع التغيّرات التي تم دمجها بالفعل.

