Skip to main content
Sinkronisasi GitHub berjalan di layanan web (modul 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

Status HTTP apa pun berarti GitHub dapat dijangkau dari pod tersebut; 000 berarti tidak dapat dijangkau.

Beberapa replika

Tidak ada yang perlu ditambahkan selain GITHUB_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 melalui NODE_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.
Terakhir diubah pada 2 November 2026