مراجعة أكواد Discourse

:discourse2: الملخص يتيح Discourse Code Review إمكانية مراجعة التزامات (commits) على GitHub من خلال Discourse.
:hammer_and_wrench: رابط المستودع https://github.com/discourse/discourse-code-review
:open_book: دليل التثبيت كيفية تثبيت الإضافات في Discourse

الميزات

ما هو؟

توفر إضافة Discourse Code Review تكاملاً ثنائي الاتجاه مع مستودعات أكواد GitHub. تتيح لفريقك مراجعة التزامات (commits) إلى المستودع بالاستفادة من ميزات وإضافات Discourse مثل الإسناد (assign)، والهمسات (whispers)، والإشعارات، وتدفقات العمل المخصصة، وغير ذلك. تصبح كل التزام (commit) إلى المستودع موضوعاً. يتم عكس الردود على الموضوع على GitHub. التكامل ثنائي الاتجاه، مما يعني أنه يمكنك التعليق على Discourse ورؤيته في GitHub، أو التعليق في GitHub ورؤيته في Discourse.

توفر هذه الإضافة تدفق عمل قوي جداً للفِرق التي تحتاج إلى مراجعة جميع التزامات أي عدد من المستودعات.

تتيح لك التأكد من أن أعضاء الفريق المتعددين على دراية بجميع التغييرات المطبقة على المستودعات. يمكنك تحديد التزامات للمتابعة، وإسناد أعمال المراجعة، والمزيد.

ملاحظة: عند عرض موضوع يمكن اعتماده، يمكنك استخدام زر y على لوحة المفاتيح لاعتماد التزامات بشكل أسرع.

هل يمكنني رؤيته قيد العمل؟

يستخدم Discourse هذه الإضافة داخلياً لتتبع المستودعات. يمكنك رؤية مثال للجانب الخاص بـ Discourse هنا:

على 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
أنواع الأحداث (Event Types):

  • تعليقات الالتزامات (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: هل يُسمح للموظفين (staff) باعتماد التزاماتهم الخاصة؟

code review default mute new categories: الفئات الجديدة التي تنشئها مراجعة الكود مكتومة (muted) للمستخدمين افتراضياً

code review skip duration minutes: النقر على زر التخطي في التزام سيمنع ظهور ذلك الالتزام مرة أخرى لمدة الدقائق المحددة بهذا الإعداد.

سجل التغييرات (CHANGELOG)

قائمة المهام (TODO)

إضافات

كيف يستخدم Discourse هذه الإضافة

باختصار - صُممت هذه الإضافة لتكملة استخدام فريق Discourse لـ GitHub في مراجعة الأكواد.

مزيد من المعلومات

من @sam:

  • ما زلنا نستخدم طلبات السحب (PRs) باستخدام واجهة GitHub، ونحب القيام بطلبات سحب للعديد من التغييرات. لم يتغير شيء هنا. GitHub رائع، نحن نحب GitHub. لديهم تدفق عمل ممتاز للتغييرات التي لم يتم تنفيذها بعد. ومع ذلك…

  • تدفق عمل GitHub للتغييرات التي تم التزمت بها مباشرة إلى المستودع سيء.

  • المراجعة (Review) تسد فجوة لا يمكن سدّها بـ GitHub اليوم، نريد أن يراجع عضو واحد على الأقل من الفريق كل تغيير يُجرى على مستودعات git التي يملكها Discourse. إذا كنا سنستخدم واجهة GitHub المقدمة، لن يُسمح لأحد أبداً بالقيام بأي شيء سوى طلبات السحب. هذا سيؤخرنا بشكل هائل.

  • نحتاج إلى القدرة على التواصل بشكل خاص دون أن يعلم العالم بأكمله بشأن تغييرات معينة. على سبيل المثال: من الأفضل أن ننشر هذا التصحيح الرائع إلى <اسم الشركة الكبير> في أقرب وقت ممكن، هل يمكنك أن تتكفل بذلك يا @sam؟

  • نحتاج إلى القدرة على اعتماد التغييرات المنفذة أو طلب متابعة، وهذا شيء لا تقدمه واجهة GitHub.

  • نحتاج إلى القدرة على إسناد التزامات معينة لمستخدم. على سبيل المثال، إذا قام @sam بالالتزام ببعض الأخطاء، فمن الجيد أننا يمكننا إسناد ذلك الالتزام المحدد إليه مباشرة، ووضعه للمتابعة، ثم تتبع ما إذا تمت المتابعة أم لا.

  • Discourse رائع جداً في هذا الأمر المتعلق بالمحادثات، والميزات الصغيرة تحدث فرقاً كبيراً، يمكنني رؤية عندما يكون الناس يكتبون. لا أحتاج أبداً إلى تحديث الصفحات لتظهر التغييرات. الاقتباس رائع، ورفع الصور رائع، وهكذا.

  • Discourse جيد جداً في حالة القراءة، تحصل على ضمانات قوية جداً بأنك قراءت كل شيء مرة واحدة، مع GitHub لا أعرف أي التزامات قرأت وأيها لم أقرؤها. لدينا كفاءة مذهلة للتعامل مع سيل المعلومات.

والقائمة طويلة…

لذا تعمل المراجعة (review) كتكملة لـ GitHub، نحن نستخدم GitHub حالياً للتعامل مع التغييرات التي لم يتم تنفيذها بعد. ونستخدم المراجعة للتعامل بشكل صحيح مع التغييرات التي تم تنفيذها بالفعل.

72 إعجابًا

أحاول فهم الغرض من هذا المكوّن الإضافي. لدي حدس بأنني بحاجة إلى شيء من هذا القبيل، لكنني أجد صعوبة في رؤية كيف يساعد في الكفاءة. عندما يوافق شخص ما على طلب سحب ويدمجه في فرع، فما الذي يجعل الموافقة تتطلب موافقة أخرى على الالتزام المرتبط في عمليتك؟

[اقتباس=“Discourse، المنشور:1، الموضوع:103142”]
نحن بحاجة إلى القدرة على الموافقة على التغييرات التي تم إجراؤها أو طلب متابعة، وهذا ليس شيئًا توفره واجهة مستخدم GitHub
[/اقتباس]

لا تقدم GitHub ذلك فيما يتعلق بالالتزامات لأن الافتراض هو أن هذا قد تم التعامل معه بالفعل في طلب السحب. ما الذي فاتني؟

هل هذا بسبب وجود أشخاص في فريقك مسموح لهم بالموافقة على طلبات السحب ولكنهم غير مؤهلين لاتخاذ القرار النهائي بشأن هذا الالتزام فيما يتعلق بإصدار فعلي؟ هل الغرض هو إمكانية دمج طلبات السحب ومراجعتها بسرعة دون انتظار شخص لديه الكلمة الأخيرة، مع التأكد من أن هذا الشخص أو الفريق سيراجع الالتزام قبل إنشاء إصدار؟

أم أنه يهدف بشكل أساسي إلى دعم المناقشات الخاصة على المستودعات العامة؟

أود أن أحصل على مزيد من التبصر في فوائد استخدام هذا المكوّن الإضافي في سير عملك. شكرًا!

كانت في الأساس بقايا سير العمل السابقة في Discourse.

في الماضي، كنا نستخدمها للموافقة بأثر رجعي على مجموعات التغيير.

في هذه الأيام، تمر الأمور عبر قنوات العلاقات العامة، لذلك لا نستخدم المكوّن الإضافي كثيرًا.

إعجاب واحد (1)