تنقل بوتات Telegram هذه أحداث المستودعات وCI إلى المحادثة: عملية push، أو طلب دمج ينتظر المراجعة، أو pipeline فاشل. وبالنسبة إلى فريق صغير تحلّ مجموعة بهذه الرسائل غالبًا محل لوحة تحكم لا يفتحها أحد.
| # | البوت | السعر | اللغات | إنلاين | المجموعات | النتيجة |
|---|---|---|---|---|---|---|
| 1 | @gitlab_notifine_bot | مجاني | EN | لا | نعم | 77 |
| 2 | @github_notifine_bot | مجاني | EN | لا | نعم | 73 |
| 3 | @FallenAlertBot | مجاني | EN | لا | نعم | 71 |
| 4 | @BuddyTelegramBot | فريميوم · خطة buddy.works المجانية: مقعد واحد و300 دقيقة-GB للـpipelines، مع إجراء Telegram | EN | لا | نعم | 70 |
| 5 | @GitHubBot | مجاني | EN | لا | لا | 63 |
لم نمرّر مستودعًا تجريبيًا عبر كل بوت، فالترتيب يعتمد على ما يمكن التحقق منه. لكل بوت تأكدنا عبر t.me أنه يعمل، وبحثنا عن مصدره: مستودع مفتوح أو وثائق المزوّد أو سجل أوامره في دليل. ومن الشيفرة والوثائق سجّلنا الأحداث التي يعالجها، وطريقة ربطه (رابط webhook أو تسجيل دخول إلى GitHub مع وصول إلى المستودعات)، وهل يرشّح الفروع، وهل ما زالت الخدمة وراءه تعمل. واستُبعد بوت GitLab من Integram لأن منصته لم تعد موجودة، وأربعة غيره لأن الاسم وحده كان كل ما يصفها.
هناك طريقتان لربط مستودع بـTelegram. تعطيك بوتات Notifine رابط webhook: يرسل GitHub أو GitLab الأحداث إليه، ولا يلمس البوت حسابك أبدًا، ويصلح ذلك للمستودعات الخاصة أيضًا. أما GithubBot (@FallenAlertBot) فيطلب تسجيل الدخول عبر OAuth من GitHub مع صلاحيتي repo وadmin:repo_hook. وبهذا ينشر التعليقات ويوافق ويدمج من المحادثة، لكنه يستطيع أيضًا قراءة كل المستودعات التي يصل إليها حسابك وتعديلها، فوازن بين الراحة والصلاحيات.
لدى GitLab تكامل خاص مع Telegram في كل الخطط: تنشئ بوتًا في BotFather وتضيفه إلى قناة وتلصق رمزه في Settings → Integrations. إنه الخيار الأكثر خصوصية لأن الأحداث تذهب من GitLab إلى بوتك مباشرة، ويمكن ضبطه للإبلاغ عن pipelines الفاشلة فقط. ولا يملك GitHub تكاملًا مدمجًا مع Telegram، ولهذا توجد بوتات خارجية. وإذا كانت pipelines تعمل على buddy.works فإن بوتها الرسمي (@BuddyTelegramBot) ينشر من إجراء في pipeline بقالب رسالة تحدده أنت.
المجموعة التي تبلّغ عن كل push يتوقف الناس عن قراءتها خلال يوم. ابدأ بطلبات الدمج وطلبات المراجعة وpipelines الفاشلة، وأضف عمليات push للفرع الرئيسي فقط. يدعم Notifine ذلك في الرابط نفسه: ?branch=main يُبقي فرعًا واحدًا، و?exclude_branch=dependabot/* يستبعد التحديثات الآلية. وإذا كانت المجموعة تستخدم المواضيع فأرسل /start داخل موضوع مخصص كي لا تطغى الإشعارات على النقاش.
نعم. أضف في إعدادات المستودع رابط webhook من بوت GitHub التابع لـNotifine (@github_notifine_bot) دون تسجيل دخول، أو سجّل الدخول إلى GithubBot (@FallenAlertBot) الذي يطلب وصولًا كاملًا إلى المستودعات.
نعم، في كل الخطط. أنشئ بوتًا في @BotFather وأضفه إلى قناة مع صلاحية النشر، ثم أدخل الرمز ومعرّف القناة في Settings → Integrations → Telegram، ويمكن قصره على pipelines الفاشلة.
في بوتات Notifine أضف ?exclude_branch=dependabot/* إلى رابط webhook، والاستبعاد مقدَّم على مرشح ?branch=.