github-sync) في كل pod من Ayakaleaf Pro. وهي تتطلب تكامل Git. أنشئ تطبيق OAuth واطّلع على وظيفة كل إعداد في المزامنة مع GitHub؛ أما هذه الصفحة فتشرح تطبيقها على Kubernetes.
الإعداد
1
ConfigMap
30-config.yaml (additions)
GIT_BRIDGE_ENABLED: "true" وكذلك StatefulSet الخاص بـ git-bridge من تكامل Git في مكانهما: فبدونهما تُخفي إعدادات الحساب والمحرّر خيار المزامنة مع GitHub.2
Secret
GITHUB_TOKEN_CIPHER_PASSWORD رموز الوصول الخاصة بالمستخدمين في GitHub داخل MongoDB. يجب أن تستخدم كل نسخة متماثلة (replica) القيمة نفسها، وتغييرها لاحقًا يُلزم كل مستخدم بربط GitHub من جديد.3
مرجع شهادات خاص (اختياري)
إذا كان GitHub لديك يستخدم شهادة صادرة عن مرجع شهادات (CA) خاص بك، فأضف هذا المرجع إلى الـ Secret المسمّى
overleaf-certs المُركَّب في /var/lib/overleaf/certs (راجع الشهادات والملفات الأخرى) واضبط NODE_EXTRA_CA_CERTS: /var/lib/overleaf/certs/ca.pem في الـ ConfigMap.4
التطبيق وإعادة التشغيل والتحقق
000 فيعني أنه غير قابل للوصول.عدة نسخ متماثلة
لا يلزم أي شيء إضافي سوىGITHUB_TOKEN_CIPHER_PASSWORD المشترك. تأخذ كل عملية مزامنة قفلًا في Redis، مشتركًا مع عمليات مزامنة Git الأخرى، لذا لا تقوم نسختان متماثلتان أبدًا بمزامنة المشروع نفسه في الوقت ذاته.
الاختبار على Kubernetes
في مقابل محاكاة لـ github.com وواجهتي REST وGraphQL الخاصتين به (موثوق بها عبرNODE_EXTRA_CA_CERTS من overleaf-certs)، وعلى Kubernetes 1.37 مع نسخة متماثلة واحدة وتكامل Git مفعّل، تنجح اختباراتنا الشاملة (end-to-end) للمزامنة مع GitHub (31 حالة): ربط الحساب وإلغاء ربطه، والرموز المُلغاة، وتصدير مشروع إلى مستودع خاص جديد أو مستودع مؤسسة، واستيراد مستودع (بما في ذلك ما يتجاوز حدّ الرفع)، والسحب والدفع، وعمليات الدمج، والتعارضات والدمج اليدوي، والفروع المحذوفة والمدفوعة قسرًا (force-pushed)، والملفات الثنائية، وإعادة التسمية والحذف، وفقدان صلاحية الدفع، وما يُسمح للمالكين والمحرّرين والمشاهدين بفعله.
