Denne funksjonen er utviklet av ayaka-notes/ayakaleaf-pro. Den er introdusert fra og med v6.4.0. Den er fortsatt i betastatus. Vi trenger tilbakemeldingen din hvis du får problemer.
Sette opp GitLab-synkronisering
Opprett en OAuth-applikasjon på GitLab-instansen din, under User settings → Applications (eller Admin area → Applications for en applikasjon for hele instansen):- Redirect URI:
${OVERLEAF_SITE_URL}/user/gitlab-sync/oauth2/callback - Confidential: avkrysset
- Scopes:
api
config/variables.env
Selvdriftet GitLab
SettGITLAB_SYNC_URL til nettadressen til instansen din, den du åpner prosjekter med i nettleseren. REST-API-et utledes fra denne:
Sett bare
GITLAB_SYNC_API_URL når instansen din leverer API-et et annet sted, for eksempel bak en API-gateway.
Hvis instansen din bruker et sertifikat fra en privat CA, monterer du CA-sertifikatet i containeren og lar
NODE_EXTRA_CA_CERTS peke til det, f.eks. NODE_EXTRA_CA_CERTS=/var/lib/overleaf/certs/gitlab-ca.pem.Koblede kontoer og prosjekter tilhører instansen de ble koblet til. Før du bytter
GITLAB_SYNC_URL til en annen instans, må du be brukerne om å koble fra GitLab-kontoen og prosjektene sine.GITLAB_SYNC_PROXY_URL=http://10.0.0.1:10808. Det må være en vanlig HTTP/HTTPS-videresendingsproxy, og den må ikke bruke 127.0.0.1.
Hvem kan koble til og synkronisere
I likhet med Overleaf Cloud er det bare prosjekteieren som kan koble et prosjekt til et GitLab-repositorium. Når det er koblet til, kan alle samarbeidspartnere med redigeringstilgang synkronisere det.- Overleaf kommuniserer med GitLab via GitLab-kontoen til brukeren som synkroniserer, så alle samarbeidspartnere som synkroniserer, kobler til sin egen GitLab-konto og må ha tillatelse til å pushe til standardgrenen i repositoriet.
- Samarbeidspartnere med kun lesetilgang kan ikke bruke GitLab-synkronisering for prosjektet.
Slik fungerer synkronisering med GitLab
- Tillatelser: brukere må ha tillatelse til å pushe til standardgrenen i det koblede prosjektet. Når standardgrenen er beskyttet og brukeren ikke har lov til å pushe til den, ber Overleaf dem kontakte prosjekteieren, som for et repositorium de har mistet tilgang til.
- Sammenslåing: når et prosjekt er endret både i Overleaf og i GitLab, committer Overleaf endringene sine til en midlertidig gren kalt
overleaf-YYYY-MM-DD-HHMMSSog slår den sammen via en merge request, fordi GitLab ikke har noe API for å slå sammen grener uten. Etter sammenslåingen sletter Overleaf den midlertidige grenen og merge requesten. Bare administratorer og prosjekteiere kan slette merge requests i GitLab, så for andre brukere blir den sammenslåtte merge requesten liggende i prosjektet. - Regler for sammenslåing: Overleaf omgår aldri prosjektets regler for sammenslåing. Når merge requesten har en konflikt, eller krever en godkjenning eller en vellykket pipeline, forblir den åpen, og Overleaf ber brukeren slå den sammen i GitLab og deretter fortsette synkroniseringen.
- Pipelines: commits fra Overleaf starter pipelines som alle andre commits. Hvis prosjektet ditt kjører pipelines for merge requests og krever at de lykkes, venter sammenslåinger fra Overleaf på dem, som beskrevet ovenfor.
Q&A
Kan jeg force-pushe til standardgrenen?
Kan jeg force-pushe til standardgrenen?
Svar: La force push til standardgrenen være deaktivert. Dette er standard i GitLab: standardgrenen i et nytt prosjekt er beskyttet, og ingen kan force-pushe til den. Overleaf kan overta en omskrevet gren, men GitLab-synkronisering er laget for en standardgren der historikken bare vokser.

