Skip to main content
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.
GitLab-synkronisering fungerer som GitHub-synkronisering: brukere kobler til GitLab-kontoen sin, eksporterer prosjekter til nye GitLab-prosjekter, importerer GitLab-repositorier og synkroniserer endringer i begge retninger. Det fungerer med GitLab.com og med selvdriftet GitLab 15.10 eller nyere (Community og Enterprise Edition).

Sette opp GitLab-synkronisering

Du må aktivere git-bridge før du kan bruke GitLab-synkronisering.
config/overleaf.rc
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
Kopier Application ID og Secret, og legg deretter til følgende innstillinger i Overleaf-miljøvariabelfilene dine.
config/variables.env
Før du konfigurerer redirect-URI-en for GitLab OAuth, må du sørge for at OVERLEAF_SITE_URL er riktig satt.
Tilgangstokener fra GitLab utløper etter to timer. Overleaf fornyer dem med refresh-tokenet som GitLab utsteder sammen med dem, slik at brukerne forblir tilkoblet til de kobler fra eller trekker tilbake applikasjonen i GitLab.

Selvdriftet GitLab

Sett GITLAB_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.
  • Opprett OAuth-applikasjonen på instansen du angir i GITLAB_SYNC_URL, en applikasjon fra gitlab.com fungerer ikke på en selvdriftet instans.
  • GITLAB_SYNC_URL er kun nettadressen. Ikke legg til /api/v4 eller en gruppesti.
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.
Hvis du befinner deg i en region med begrenset nettverkstilgang, kan det hende du må konfigurere en proxy for å få tilgang til GitLab. Sett følgende miljøvariabel: 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-HHMMSS og 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

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.
Svar: Nei. Overleaf fortsetter å synkronisere med grenen prosjektet ble koblet til, så synkroniseringer mislykkes når den grenen får nytt navn eller fjernes. For å synkronisere med en annen gren kobler du fra prosjektet og importerer deretter repositoriet til et nytt prosjekt, som bruker den gjeldende standardgrenen.
Sist endret 12. oktober 2026