Skip to main content
Den här funktionen är utvecklad av ayaka-notes/ayakaleaf-pro. Den introducerades i v6.4.0 och finns i senare versioner. Den är fortfarande i betastatus. Vi behöver din återkoppling om du stöter på problem.
GitLab-synkronisering fungerar som GitHub-synkronisering: användare länkar sitt GitLab-konto, exporterar projekt till nya GitLab-projekt, importerar GitLab-repositorier och synkroniserar ändringar i båda riktningarna. Det fungerar med GitLab.com och med egendriftad GitLab 15.10 eller senare (Community och Enterprise Edition).

Konfigurera GitLab-synkronisering

Du måste aktivera git-bridge innan du kan använda GitLab-synkronisering.
config/overleaf.rc
Skapa en OAuth-applikation på din GitLab-instans, under User settings → Applications (eller Admin area → Applications för en applikation som gäller hela instansen):
  • Redirect URI: ${OVERLEAF_SITE_URL}/user/gitlab-sync/oauth2/callback
  • Confidential: markerad
  • Scopes: api
Kopiera Application ID och Secret och lägg sedan till följande inställningar i dina filer med miljövariabler för Overleaf.
config/variables.env
Kontrollera att OVERLEAF_SITE_URL är korrekt angiven innan du konfigurerar redirect-URI:n för GitLab OAuth.
Åtkomsttoken för GitLab löper ut efter två timmar. Overleaf förnyar dem med den uppdateringstoken som GitLab utfärdar tillsammans med dem, så användarna förblir länkade tills de avlänkar eller återkallar applikationen i GitLab.

Egendriftad GitLab

Ange GITLAB_SYNC_URL till webbadressen för din instans, den du öppnar projekt med i webbläsaren. REST-API:et härleds från den: Ange bara GITLAB_SYNC_API_URL när din instans tillhandahåller API:et någon annanstans, till exempel bakom en API-gateway.
  • Skapa OAuth-applikationen på den instans du anger i GITLAB_SYNC_URL, en applikation från gitlab.com fungerar inte på en egendriftad instans.
  • GITLAB_SYNC_URL är endast webbadressen. Lägg inte till /api/v4 eller en gruppsökväg.
Om din instans använder ett certifikat från en privat CA monterar du CA-certifikatet i containern och låter NODE_EXTRA_CA_CERTS peka på det, t.ex. NODE_EXTRA_CA_CERTS=/var/lib/overleaf/certs/gitlab-ca.pem.
Länkade konton och projekt hör till den instans de länkades med. Be användarna att avlänka sitt GitLab-konto och sina projekt innan du byter GITLAB_SYNC_URL till en annan instans.
Om du befinner dig i en region med begränsad nätverksåtkomst kan du behöva konfigurera en proxy för att nå GitLab. Ange följande miljövariabel: GITLAB_SYNC_PROXY_URL=http://10.0.0.1:10808. Det måste vara en vanlig HTTP/HTTPS-framåtproxy, och den får inte använda 127.0.0.1.

Vem kan länka och synkronisera

Precis som på Overleaf Cloud kan endast projektägaren länka ett projekt till ett GitLab-repositorium. När det väl är länkat kan alla medarbetare med redigeringsbehörighet synkronisera det.
  • Overleaf kommunicerar med GitLab via GitLab-kontot för den användare som synkroniserar, så varje medarbetare som synkroniserar länkar sitt eget GitLab-konto och måste ha behörighet att pusha till repositoriets standardgren.
  • Medarbetare med endast läsbehörighet kan inte använda GitLab-synkronisering för projektet.

Så fungerar synkronisering med GitLab

  • Behörigheter: användare måste ha behörighet att pusha till standardgrenen i det länkade projektet. När standardgrenen är skyddad och användaren inte får pusha till den ber Overleaf dem att kontakta projektägaren, precis som med ett repositorium de har förlorat åtkomst till.
  • Sammanslagning: när ett projekt har ändrats både i Overleaf och i GitLab committar Overleaf sina ändringar till en tillfällig gren med namnet overleaf-YYYY-MM-DD-HHMMSS och slår samman den via en merge request, eftersom GitLab saknar ett API för att slå samman grenar utan en sådan. Efter sammanslagningen tar Overleaf bort den tillfälliga grenen och merge requesten. Endast administratörer och projektägare får ta bort merge requests i GitLab, så för andra användare blir den sammanslagna merge requesten kvar i projektet.
  • Sammanslagningsregler: Overleaf kringgår aldrig projektets sammanslagningsregler. När merge requesten har en konflikt, eller kräver ett godkännande eller en godkänd pipeline, förblir den öppen och Overleaf ber användaren att slå samman den i GitLab och sedan fortsätta synkroniseringen.
  • Pipelines: commits från Overleaf startar pipelines precis som alla andra commits. Om ditt projekt kör pipelines för merge requests och kräver att de godkänns väntar sammanslagningar från Overleaf på dem, enligt beskrivningen ovan.

Q&A

Svar: Håll force pushes till standardgrenen inaktiverade. Det är GitLabs standard: standardgrenen i ett nytt projekt är skyddad och ingen kan force-pusha till den. Overleaf kan ta över en omskriven gren, men GitLab-synkronisering är utformad för en standardgren vars historik bara växer.
Svar: Nej. Overleaf fortsätter att synkronisera med den gren som projektet länkades till, så synkroniseringar misslyckas när den grenen byter namn eller tas bort. För att synkronisera med en annan gren avlänkar du projektet och importerar sedan repositoriet till ett nytt projekt, som då använder den aktuella standardgrenen.
Senast ändrad 12 oktober 2026