github-sync) i hver Ayakaleaf Pro-pod. Den kræver Git-integrationen. Opret OAuth-applikationen, og læs, hvad hver indstilling gør, under GitHub-synkronisering; denne side omsætter det til Kubernetes.
Konfiguration
1
ConfigMap
30-config.yaml (additions)
GIT_BRIDGE_ENABLED: "true" og git-bridge-StatefulSet’et fra Git-integration skal være på plads: uden dem skjuler kontoindstillingerne og editoren GitHub-synkronisering.2
Secret
GITHUB_TOKEN_CIPHER_PASSWORD krypterer brugernes GitHub-adgangstokens i MongoDB. Alle replikaer skal bruge den samme værdi, og hvis den ændres senere, skal alle brugere forbinde GitHub igen.3
Privat CA (valgfrit)
Hvis din GitHub har et certifikat fra din egen CA, skal du tilføje CA’en til Secret’et
overleaf-certs, der er monteret på /var/lib/overleaf/certs (se Certifikater og andre filer), og sætte NODE_EXTRA_CA_CERTS: /var/lib/overleaf/certs/ca.pem i ConfigMap’et.4
Anvend, genstart og kontrollér
000 betyder, at den ikke kan.Flere replikaer
Intet ekstra ud over den fællesGITHUB_TOKEN_CIPHER_PASSWORD. En synkronisering tager en lås i Redis, som deles med de andre Git-synkroniseringer, så to replikaer aldrig synkroniserer det samme projekt på samme tid.
Testet på Kubernetes
Mod en mock af github.com og dens REST- og GraphQL-API’er (der stoles på viaNODE_EXTRA_CA_CERTS fra overleaf-certs), på Kubernetes 1.37 med én replika og Git-integrationen slået til, består vores end-to-end-tests for GitHub-synkronisering (31 tilfælde): forbindelse og afbrydelse af kontoen, tilbagekaldte tokens, eksport af et projekt til et nyt privat repository eller organisations-repository, import af et repository (også over uploadgrænsen), pull og push, merges, konflikter og manuelle merges, slettede og force-pushede branches, binære filer, omdøbninger og sletninger, tab af push-adgang samt hvad ejere, redaktører og læsere må gøre.
