وثائق

الخطافات

أتمتة على مستوى المؤسسة تستجيب لفعاليات المنصة باستخدام التعليمات التي تكتبها.

يستجيب الـ hook لحدث ما يحدث في Coroid. يمكنك اختيار حدث، وكتابة التعليمات بلغة بسيطة، وسيتم تشغيل الـ hook عند وقوع الحدث.

يمكن العثور عليها في المصنع، ضمن قسم التلقيات.

لإنشاء عنصر في قسم العمل الجديد: اختر خيار الأتمتة، ثم حدد خيار عند حدوث شيء ما. يوفر قسم العمل الجديد أحداث GitHub وأحداث Coroid. اطلع على التلقيات.

الأحداث التي يمكن الاستجابة لها

يتم تشغيل الـ hook فقط للحدث الذي ترسله جهة ما. ترسل Coroid معظم الأحداث المذكورة أدناه، بينما تُطلق بعضها أنظمةك الخاصة. أي حدث آخر محجوز؛ لا يعرضه المحرر، ويتم رفض إنشاء hook جديد له. إذا تم حفظ hook على حدث محجوز، فإن المحرر والقائمة يصنفانه على أنه لن يتم تشغيله، دون حذفه.

أحداث ترسلها Coroid

الفئةالأحداث
مهمةتم إنشاؤه، تغيرت الحالة، اكتمل، فشل
الوكيلبدأ، اكتمل، خطأ
المستودعتم دفع التزام، تم إنشاء فرع، تم فتح pull request أو تحديثه أو دمجه، تم فتح مشكلة، تعليق يذكر Coroid
السباقتم إنشاؤه، بدأ التخطيط، بدأ، تمت إضافة مهمة، تمت إزالة مهمة، بدأ المراجعة، اكتمل، تم إلغاؤه
الخطةبدأت المرحلة، اكتملت، فشلت
الجدول الزمنيبدأ التشغيل، اكتمل التشغيل، فشل التشغيل
التقريربدأ، اكتمل، فشل
الجودةبدأ الفحص، نجح أو فشل؛ لم يتم حله تلقائيًا
الترويجتم طلبه، تمت الموافقة عليه، تم رفضه
الإصدارتم إنشاؤه، تغير المرشح، تغيرت الملاحظات، تمت الموافقة على الملاحظات، تغير النطاق، اكتملت قائمة التحقق، تم تقييم البوابة، تم تجاوز البوابة، تمت الموافقة عليه، تم نشره، تم الرجوع به
النشرفي الانتظار، قيد التشغيل، نجح، فشل، تم إلغاؤه، تم التحقق منه يدويًا، تم التحقق من الرجوع يدويًا، اجتاز فحص الصحة، فشل فحص الصحة
المزامنةتم تحديث المصدر الخارجي
Slack وTelegramرسالة تتطابق مع مرشح التلقية

الأحداث التي تطلقها أنظمةك الخاصة

الفئةالأحداث
التحليلتم العثور على تبعية، تم العثور على مشكلة أمان، اكتمل التحليل
النشر الخارجيبدأ، اكتمل، فشل

لا ترسل Coroid هذه الأحداث. تقوم خط أنابيب CI أو أداة مسح أو أي نظام آخر تابع لك بإطلاق الـ hook عبر معرفه: حيث يتم استدعاء POST /api/v1/organizations/hooks/:id/dispatch مع مفتاح حساب خدمة الذي يحمل hooks:dispatch النطاق. يتم تشغيل الـ hook للحدث الذي تم حفظه عليه. يعرض المحرر هذه الأحداث تحت عنوان «يطلقها أنظمةك الخاصة».

الأحداث المحجوزة

لم يتم إرسالها أو إطلاقها بعد، لذا لا يعرضها المحرر:

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

مواعيد بدء وانتهاء العمل

ترسل الخطط والجداول الزمنية والتقارير وفحوصات الجودة والترويج والإصدارات حدثًا عند بدء العمل وحدثًا عند انتهائه. يمكن للـ hook الاستجابة لطريقة انتهاء العمل، ويمكن لنظامك قياس المدة التي استغرقها.

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

يسجل كل حدث من هذه الأحداث توقيت حدوثه في occurredAt. كما يسجل الحدث الذي يوضح كيف انتهى العمل توقيت بدء العمل في startedAt، والمدة التي استغرقها في durationMs. ذلك startedAt هو occurredAt من حدث البدء، لذا فإن الاثنين يتطابقان دائمًا. الوقت الذي تُقضى فيه العملية في حالة توقف يُحتسب ضمن المدة.

يتم إرسال كل حدث مرة واحدة عند حفظ التغيير. التغيير الذي يتم إلغاؤه لا يُرسل أي شيء، وإعادة المحاولة لا تُرسل شيئًا مرتين. أما الحدث النهائي فيتم إرساله فقط للعمل الذي بدأ: عملية تنفيذ الجدول الزمني التجريبية لا تُرسل شيئًا، وكذلك التقرير الذي تم إلغاؤه قبل بدءه.

ما يحمله كل حدث، بخلاف الأوقات:

حدثيتم إرساله عندماالحقول
بدء مرحلة التخطيطيبدأ تنفيذ الخطة (مرحلتها الأولى)، ولاحقًا عندما تبدأ المهمة الأولى لمرحلة أخرى.planId، plan (id, title), phase (id, sequence, title), firstPhase، executionStartedAt
اكتمال الخطة أو فشلهاينتهي تنفيذ الخطة. الخطة التي تفشل أثناء عملية التخطيط لا تُرسل أي شيء.planId، plan، status، executionStartedAt
بدء تشغيل الجدول الزمنييبدأ تشغيل الجدول الزمنيscheduleId، runId، schedule (id, name), run (سبب التشغيل، عملية التنفيذ الأصلية)
اكتمال تشغيل الجدول الزمني أو فشلهتنتهي العمليةنفس الحقول، status، و tasksCreated أو error
بدء توليد التقريريبدأ توليد التقرير. عملية الإيقاف والاستئناف تحافظ على نفس وقت البدء.reportId، report (id, type, title)
اكتمال التقرير أو فشلهيتم حفظ التقرير، أو يفشل أو يتم إلغاؤه.نفس الحقول، و tokensUsed، costUsd و hasActionableFindings، أو error
بدء فحص الجودةيبدأ فحص الجودةqualityRunId، check (subject, trigger, policy version, commit)
نجاح أو فشل فحص الجودةيصل الفحص إلى قراره.نفس الحقول، decision، redoCause، failedExpectationIds
حالة حل مشكلات الجودة تلقائيًا غير محلولةCoroid يتوقف عن محاولة إصلاح ما اكتشفه الفحص.qualityRunId، workItemType، workItemId، reason
طلب الترقيةيتم إنشاء ترقيةpromotionId، laneId، promotion (title, status, branches, pull request)
الموافقة على الترقيةيتم دمج الترقية: الموافقة في Coroid، الدمج الإجباري، الدمج لدى مزود الخدمة أو الشحن في إصدار.نفس الحقول، approval، approvedBy، forceReason
رفض الترقيةيطلب المراجع إجراء تغييراتنفس الحقول، reason، requestedBy، comment
نشر الإصدارينجح النشر الأول للإصدار في بيئة الإنتاج.releaseId، version، commitSha
تراجع الإصداريستبدل التراجع الإصدار في بيئة معينة.releaseId، version، rolledBackToReleaseId

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

المحفزات والوجهات

لكل عملية أتمتة مصدر محفز، وهو مصدر الأحادث الخاصة بها، و وجهة تحدد ما يحدث عند تشغيلها. اثنتان من الوجهات تحول الحدث إلى عمل.

مصدر المحفزالأحداث
حدث سير العملالأحادث في Coroid، كما في الجدول أعلاه
GitHubفتح طلب سحب، تحديثه أو دمجه؛ فتح مسألة؛ تعليق يذكر Coroid
Slackرسالة تتطابق مع مرشح الأتمتة
Telegramرسالة تتطابق مع مرشح الأتمتة، مثل تلك التي تبدأ بـ /coroid
Jiraمسألة جديدة
الوجهةما يحدث
ربطينفذ تعليماتك، للقراءة فقط، كما هو موضح في هذه الصفحة.
تأهيل العمليسجل الحدث كطلب. بمجرد اجتياز عملية التأهيل، يقوم Coroid بإنشاء العمل.
Coroid Checkتم إلغاؤه. مراجعة Coroid لكل pull request تُحدد في ضبط الجودة؛ تم إيقاف تشغيل العمليات الأتمتة الحالية.

تحتاج أحداث GitHub إلى تطبيق GitHub. التعليق الذي يذكر Coroid لا يُحتسب إلا عندما يكون لدى كاتبه صلاحيات كتابة على المستودع. انظر GitHub.

تبدأ مهمة من عملية تأهيل العمل بمفردها فقط عندما يكون مؤلف الحدث موثوقًا به: مؤلف GitHub pull request، المسألة أو التعليق الذي لديه صلاحيات كتابة على المستودع. مؤلفي Slack وTelegram وJira غير موثوق بهم، لذا تنتظر مهامهم من يبدأها. انظر متى يبدأ العمل.

تصل المسائل الجديدة في Jira إلى Coroid فقط عبر ويبهوك Jira الخاص به. يقبل الويبهوك فقط التسليمات الموقعة بسرّ الويبهوك المُعدّ لـ Coroid، وفقط للمسائل الجديدة، وعندما يتطابق مفتاح مشروع Jira مع مشروع Coroid. على coroid.ai لم يتم إعداد ويبهوك Jira بعد، لذا لا يتلقى مشغّل Jira أي أحداث؛ يمكنك استيراد مسائل Jira بدلاً من ذلك. حيثما يتم إعداد الويبهوك، تذهب المسألة الجديدة إلى عمليات الأتمتة في مشغّل Jira، مثل مصدر طلب Jira في قسم ضبط الجودة، الذي يُنشئ مسائل من الأنواع والأولويات التي تختارها للتأهيل. بدون وجود أتمتة في المشغّل، لا تُنشئ المسألة الجديدة أي شيء. لا تبدأ العمليات من Jira تلقائيًا. انظر أدوات تتبع المسائل.

للقراءة فقط بشكل افتراضي

تحلل الوصلات وتقدم تقارير عنها. يمكنها إنشاء أعمال تابعة؛ لكنها لا تعدّل كودك مباشرة.

هذا الإعداد الافتراضي هو ما يجعل اعتمادها آمنًا. الأتمتة التي تعدّل الكود استجابةً لحدث ما تعمل في اللحظة الأقل احتمالًا لوجود إشراف عليها. الوصلة التي تفتح مهمة تنتج نفس النتيجة عبر المسار المعتاد — مواصفة، خطة، تحقق، مراجعة، pull request.

  • جدولةوقت
  • أتمتة الأحداثعندما يحدث شيء ما

مهمة عادية

مواصفات، خطة، بناء، تحقق، مراجعة. تستخدم مساحة للوكيل؛ حدد لها أولوية أقل.

P2P3

طلب سحب من pull request

لا يمكنه دمج نفسه أو الالتزام بفرعك الأساسي.

أنت تقرّ

الأتمتة تختلف فقط في محفّزها؛ ما تفتحه هو مهمة عادية ضمن المسار المعتاد، لذا تستخدم سعة حقيقية وتنتهي بـ pull request تُقرّه أنت.

كتابة تعليمات جيدة

تُعالج تعليمات الوصلات بواسطة نموذج، لذا تبدو كتعليمات موجهة لزميل بدلاً من كونها كودًا. معيار الجودة مماثل لما هو مطلوب لـ مواصفة: حدد ما يجب مراقبته، وما هو المهم، وما يجب فعله.

كن دقيقًا بشأن حالة «عدم فعل أي شيء». بدون ذلك، ستجد الوصلة دائمًا ما تقوله كلما تم تشغيلها، والوصلات التي تعمل باستمرار هي وصلات يتوقف الناس عن قراءتها.

ضوابط أمان

توجد ثلاث حمايات لأن الأتمتة القائمة على الأحداث تفشل بطرق متوقعة:

حدود معدل التنفيذ. لكل دقيقة، وكل ساعة، وكل يوم، ويمكن تهيئتها لكل وصلة. وإلا، قد تُشغّل الوصلة المرتبطة بحدث ذي تردد عالٍ مئات المرات خلال عملية دمج نشطة.

عمق السلسلة. يمكن للوصلات تشغيل أحداث تؤدي إلى تشغيل وصلات أخرى. يوقف الحد الأقصى لعمق السلسلة حدوث حلقة لا نهائية.

أذونات الأداة. ما يمكن للوصلة الوصول إليه يتم التحكم فيه — الوصول للقراءة فقط، ومكالمات MCP، وإنشاء المهام تخضع جميعها لقواعد منفصلة.

أذونات

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

مراقبتها

تُدرج صفحة كل وصلة في المنصة عمليات التشغيل التي قامت بها وما فعلته خلال آخر 30 يومًا: عمليات التشغيل، والإخفاقات، والتكلفة. كما توجد كل عمليات الأتمتة في قسم إعدادات → نشاط، مع تصفية النتائج حسب فئة الأتمتة. تحقق من عمليات التشغيل بعد تفعيل وصلة جديدة — فوضع الإخفاق ليس خطأً، بل هو التشغيل المستمر دون إنتاج أي نتيجة تستدعي تدخلاً من أحد.

الوصلات والجداول الزمنية

آلية العملمُحفَّز بواسطة
وصلةحدث منصة
جدول زمنيوقت

كلاهما أتمتة، وتُدرج معًا في المنصة. انظر عمليات الأتمتة.