سؤال حول مسار عمل Github

السؤال:

لقد كنت أعمل على سير عمل يمكنه نسخ احتياطي من مسارات عمل n8n الخاصة بي على github وفقاً لجدول زمني محدد. بعد إنشاء الملف (الملفات) الأولية على github، يتم تحديث ملف GitHub كل بضعة أيام.

ومع ذلك، أريد إضافة قسم يعمل فقط في حالة تم إجراء تعديل على مسار (مسارات) العمل التي يتم نسخها احتياطياً على Github. هل لديكم أي أفكار حول كيفية القيام بذلك باستخدام عقدة if (أو عقدة أخرى)؟

مرحبا @Josue_Vazquez، بينما تنتظر الرد، إليك بعض الأشياء التي قد تساعدك:

الموارد المقترحة

تم المطابقة تلقائيًا مع سؤالك.

المستندات:

المنتدى:

@DC3 - لقد ساعدت في حل مشاكل مشابهة من قبل، هل يمكنك إلقاء نظرة؟

اقتراح تلقائي من روبوت مجتمع n8n. إنه برنامج تجريبي - يرجى مشاركة ملاحظاتك هنا.

لمنع الالتزامات المكررة، يمكنك جلب SHA للملف الموجود من GitHub API ومقارنة التجزئة التشفيرية لـ JSON سير العمل الحالي لديك مقابله باستخدام عقدة Code في n8n قبل عقدة If. إذا تطابقت التجزئات، تخطَّ عقدة تحديث GitHub بالكامل للحفاظ على سجل الالتزامات نظيفًا. أخبرني كيف تبدو بنية استجابة عقدة GitHub الحالية لديك وسأتمكن من مشاركة المقطع الدقيق لمقارنة التجزئة هنا مباشرة.

أقترح مقارنة محتوى الملف الفعلي بدلاً من مقارنة تجزئة عادية مباشرة مع sha الخاص بـ GitHub. قيمة GitHub هي Git blob SHA، لذا قد لا تتطابق بالضرورة مع التجزئة القياسية لملف JSON سير العمل.

سيكون التدفق الأكثر أماناً:

  1. تصدير ملف JSON سير العمل الحالي.
  2. الحصول على ملف GitHub الموجود وفك تشفير محتوى Base64 الخاص به.
  3. تطبيع كلا الإصدارين بنفس الطريقة، على سبيل المثال تحليل JSON وتسلسله بشكل متسق.
  4. مقارنة المحتوى المعياري.
  5. إرسال تحديث GitHub فقط عندما يختلفان.

احتفظ بـ SHA الملف الموجود في GitHub لطلب التحديث نفسه، لكن استخدم مقارنة المحتوى للبت في ما إذا كان التحديث مطلوباً.

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