عن المشروع

Mushin هو تطبيق GitHub يتم تنفيذه كـ Cloudflare Worker يستمع لأحداث webhook ويدمج تلقائيًا طلبات السحب من Dependabot عند استيفاء شروط قابلة للتكوين. يدعم التحكم بمستوى semver (patch، minor، major)، والتكوين متعدد المصادر مع الأولوية (تسميات PR > .github/mushin.yml > خصائص GitHub المخصصة > الإعدادات الافتراضية)، وبوابة CI التي تدمج فقط عندما تنجح جميع الفحوصات المطلوبة (نتائج فحص محايدة لا تعيق)، ومعالجة أنواع التحديث غير المعروفة عن طريق نشر تعليقات إعلامية مع منطق upsert لتجنب التكرار. يتطلب الإعداد إنشاء تطبيق GitHub بأذونات محددة (Pull requests، Contents، Checks، Commit statuses، Metadata) وأحداث webhook (pull_request، check_suite، check_run). يتضمن النشر تعيين أسرار Cloudflare Worker (GITHUB_APP_ID، GITHUB_WEBHOOK_SECRET، GITHUB_PRIVATE_KEY) وتحويل المفتاح الخاص إلى تنسيق PKCS#8. يمكن إجراء التكوين عبر خصائص GitHub المخصصة، أو ملف .github/mushin.yml، أو تسميات PR لتجاوزات لكل PR. يدمج Mushin طلب السحب عندما يكون مفتوحًا، وليس مسودة، ومن إنشاء dependabot[bot]، ويكون skip false، وتنجح جميع فحوصات CI، ويكون نوع التحديث ضمن الحد المكوّن (أو merge_unknown true). يتخطى خلاف ذلك ويعلق عندما يكون نوع التحديث غير معروف و merge_unknown false. يتضمن المشروع أوامر تطوير للاختبار والتحقق من الأنواع والتشغيل المحلي، ويستورد محلل بيانات Dependabot الوصفية مباشرة من مستودع dependabot/fetch-metadata. يلاحظ README أيضًا إشعار npm audit إيجابي كاذب متعلق باسم الحزمة.