github-sync) pada setiap pod Ayakaleaf Pro. Fitur ini memerlukan integrasi Git. Buat aplikasi OAuth dan baca fungsi setiap pengaturan di Sinkronisasi GitHub; halaman ini menerapkannya ke Kubernetes.
Konfigurasi
1
ConfigMap
30-config.yaml (additions)
GIT_BRIDGE_ENABLED: "true" dan StatefulSet git-bridge dari integrasi Git harus sudah tersedia: tanpa keduanya, pengaturan akun dan editor menyembunyikan Sinkronisasi GitHub.2
Secret
GITHUB_TOKEN_CIPHER_PASSWORD mengenkripsi token akses GitHub pengguna di MongoDB. Setiap replika harus menggunakan nilai yang sama, dan mengubahnya di kemudian hari membuat setiap pengguna harus menautkan GitHub lagi.3
CA privat (opsional)
Jika GitHub Anda memiliki sertifikat dari CA Anda sendiri, tambahkan CA tersebut ke Secret
overleaf-certs yang di-mount di /var/lib/overleaf/certs (lihat Sertifikat dan file lainnya) dan atur NODE_EXTRA_CA_CERTS: /var/lib/overleaf/certs/ca.pem di ConfigMap.4
Terapkan, mulai ulang, dan periksa
000 berarti tidak dapat dijangkau.Beberapa replika
Tidak ada yang perlu ditambahkan selainGITHUB_TOKEN_CIPHER_PASSWORD yang sama. Sebuah sinkronisasi mengambil lock di Redis, yang dibagi dengan sinkronisasi Git lainnya, sehingga dua replika tidak pernah menyinkronkan proyek yang sama secara bersamaan.
Diuji di Kubernetes
Terhadap mock github.com beserta API REST dan GraphQL-nya (dipercaya melaluiNODE_EXTRA_CA_CERTS dari overleaf-certs), di Kubernetes 1.37 dengan satu replika dan integrasi Git aktif, pengujian end-to-end kami untuk Sinkronisasi GitHub lulus (31 kasus): menautkan dan memutus tautan akun, token yang dicabut, mengekspor proyek ke repositori privat atau organisasi baru, mengimpor repositori (juga yang melebihi batas unggahan), pull dan push, merge, konflik dan merge manual, branch yang dihapus dan di-force-push, file biner, penggantian nama dan penghapusan, kehilangan akses push, serta apa yang boleh dilakukan pemilik, editor, dan penampil.
