تخطَّ إلى المحتوى

إعداد مشغّلات خط الأنابيب

المشغّل هو ما يبدأ خط أنابيب. كل مشغّل عقدة على اللوحة، يُفلت من قسم المشغّلات في مكتبة العقد. تحديد تلك العقدة يفتح لوحة إعداداتها على اليمين. لا قائمة مشغّلات دائمة، ولا علامة تبويب للمشغّلات، ولا شاشة للمشغّلات.

  1. انتقل إلى الإعدادات ← مساحة العمل ← قوالب خطوط الأنابيب.
  2. انقر أيقونة القلم في صف القالب لفتح المحرّر.
  3. حدّد عقدة مشغّل على اللوحة. تظهر اللوحة اليمنى بإعدادات ذلك المشغّل. إن لم يُحدَّد شيء، تبقى اللوحة اليمنى مخفية.

يسرد قسم المشغّلات في مكتبة العقد كل نوع بداية في عقدة مستقلة: يدوي، وجدولة، وويب هوك، وبطاقة لكل حدث نطاق. ابحث عن merged أو ticket أو اسم النوع (PrMerged) واسحب البطاقة إلى اللوحة. يعرض القالب الجديد أيضًا بطاقة شبحية إضافة مشغّل عند نقطة الدخول، وتختار من القائمة القابلة للبحث نفسها.

يُدرَج المشغّل فورًا. تبدأ المشغّلات التلقائية الجديدة معطّلة، حتى لا يطلق الإفلات تشغيلًا قبل أن تضبط المشغّل. فعّل مفتاح ممكّن في لوحة الإعدادات، أو احذفه بأيقونة سلة المهملات.

أفلت تشغيل يدوي (أو اختره من البطاقة الشبحية) وفعّل ممكّن في لوحة إعداداته. هذا ما يُظهر القالب في صفحة «تشغيل خط أنابيب». ليست هذه حالة خاصة: يكتب المفتاح صف مشغّل عادي نوع حدثه manual. يُحفَظ فورًا، ولا شيء يحتاج إلى حفظ.

المفتاح نفسه خلف تشغيل يدوي في ترويسة المحرّر، إلى جانب المدخلات المعلنة للقالب.

هذه الأحداث تبدأ تشغيلًا:

تسمية المنتقي الحدث
فُتح PR خارجي ExternalPrDetected
نُشر PR PullRequestPublished
تغيّرت حالة PR PullRequestStatusChanged
دُمج PR PrMerged
استلام رسالة MessageReceived
تم إنشاء تذكرة TicketCreated
تغيرت حالة التذكرة TicketStatusChanged
إسناد تذكرة TicketAssigned
اكتملت تذكرة TicketCompleted
فشلت تذكرة TicketFailed
أُلغيت تذكرة TicketCancelled
تم تجاوز عتبة الميزانية BudgetThresholdCrossed
أُضيف مستودع RepoAdded
توقف تسجيل الاجتماع MeetingRecordingStopped
تم تحديث المهارة SkillUpdated
تم حذف المساحة SpaceDeleted

SpaceDeleted هو ما يستمع إليه خط الأنابيب المضمّن لتنظيف أشجار العمل: يحمل معرّف المساحة المحذوفة، فيحرر التشغيل أشجار عمل تلك المساحة وحدها بدل أن يمسح مساحة العمل كلها.

لمفاتيح الحمولة التي يحملها كل حدث، انظر مرجع أحداث النطاق.

حدّد عقدة تغيّرت حالة PR. شرائح الحالة في لوحة الإعدادات هي المرشح الوحيد الذي تنشئه الواجهة. انقر أيًا من merged أو closed أو approved أو opened أو reopened، فينطلق المشغّل فقط حين تطابق قيمة status في الحدث إحدى هذه القيم. ترك الشرائح كلها غير محددة يعني أنه لا مرشح.

لا يوجد حقل حر لمرشح JSON. مفتاح المرشح الذي لا تحمله حمولة الحدث لا يطابق أبدًا، فلا تكتب مرشحًا بيدك مقابل مفتاح لم تتأكد منه في مرجع أحداث النطاق.

حدّد عقدة جدولة لتعديل موعد انطلاقها. تُحفَظ حقول لوحة الإعدادات عند مغادرتها:

الحقل الوصف
الجدولة (cron أو ⁨every:seconds⁩) تعبير cron من خمسة حقول مثل 0 9 * * 1، أو فاصل مثل every:86400. الرقم وحده يُحوَّل إلى every:<n>.
المنطقة الزمنية (اختياري) منطقة IANA مثل Europe/Paris. الافتراضي UTC.
عند التشغيلات الفائتة معاملة الإطلاقات التي فاتت أثناء توقف الخادم: تشغيل مرة واحدة يجمع كل الخانات الفائتة في إطلاق واحد عند إعادة الإقلاع (الافتراضي)، وتخطي يستأنف عند الخانة المستقبلية التالية.

لا يفصّل سطر الملخص على بطاقة اللوحة الفاصل إلا لصيغة every:<seconds>، ويظهر تعبير cron مجرد «جدولة».

إفلات ويب هوك يولّد رمزًا عشوائيًا. حدّد العقدة لنسخ المسار POST /webhooks/<token> من لوحة الإعدادات.

الرمز هو سر HMAC في الوقت نفسه: يجب أن يحمل الطلب X-Hub-Signature-256: sha256=<hex>، والقيمة السداسية هي HMAC-SHA256(body, token). التسليم الذي يفشل التحقق يُرفض ويُسجَّل ولا يُعاد تسليمه. تُتجاهل المكررات بمفتاح إزالة التكرار.

كل بداية عقدة مستقلة في المخطط. سحب سلك من جدولة يربط الجدولة وحدها، ويستطيع تشغيل يدوي أن يسلك مسارًا مختلفًا (عقدة شرط مثلًا) قبل أن يلتحق بالعمل نفسه. يدخل التشغيل من البداية التي تطابق نوع حدثه، ويتخطى المخططات الفرعية التي تخص البدايات الأخرى.

المشغّل المفعّل الذي يطابق نوع حدثه ومرشحه معًا يبدأ تشغيلًا، وتُمرَّر حمولة الحدث على أنها حمولة المشغّل في التشغيل، وهي ما يُستبدل به {{key}} في مطالبة الخطوة أو سكربتها. الأحداث التي تحمل مفتاحًا طبيعيًا تُزال تكراراتها، فإطلاق الحدث نفسه مرتين لا يبدأ تشغيلين.

يُرفض القالب المعطّل حتى حين يطابق مشغّله. من القوالب المضمّنة الثلاثة عشر، ثمانية تأتي معطّلة، فتنطلق مشغّلاتها المبذورة في فراغ إلى أن تفعّل القالب.

  • بوابة للمسار اليدوي فقط. مرّر تشغيل يدوي عبر عقدة شرط، وجدولة مباشرة إلى العمل. كل بداية تملك أسلاكها.
  • مراجعة كل طلب سحب جديد. حدث نُشر PR على قالب pr_review.
  • تنظيف بعد الدمج. حدث تغيّرت حالة PR، مُصفّى إلى merged / closed / approved. قالب pr_merged_cleanup المضمّن يستمع أصلًا بهذه الطريقة، إضافة إلى اكتمال التذكرة وإلغائها، وSpaceDeleted، وجدولة يومية تُفعَّل قسرًا عند كل إعادة بذر لأنها تجمع المخلفات.
  • مسح ليلي. جدولة 0 2 * * * مع منطقة زمنية، على قالب تكون عقدته الأولى سكربت Bash.
  • الاستجابة لنظام خارجي. مشغّل ويب هوك، يوقّع النظام المستدعي جسم طلبه كما سبق.