Skip to main content
Tuto funkci vyvinul projekt ayaka-notes/ayakaleaf-pro. Je k dispozici od verze v6.4.0. Stále je ve stavu beta. Pokud narazíte na jakýkoli problém, uvítáme vaši zpětnou vazbu.
Synchronizace s GitLabem funguje stejně jako synchronizace s GitHubem: uživatelé propojí svůj účet GitLab, exportují projekty do nových projektů v GitLabu, importují repozitáře z GitLabu a synchronizují změny oběma směry. Funguje s GitLab.com i se samostatně spravovaným GitLabem verze 15.10 nebo novější (Community i Enterprise Edition).

Nastavení synchronizace s GitLabem

Před použitím synchronizace s GitLabem musíte nejprve povolit git-bridge.
config/overleaf.rc
Vytvořte OAuth aplikaci na své instanci GitLabu v části User settings → Applications (nebo Admin area → Applications pro aplikaci pro celou instanci):
  • Redirect URI: ${OVERLEAF_SITE_URL}/user/gitlab-sync/oauth2/callback
  • Confidential: zaškrtnuto
  • Scopes: api
Zkopírujte Application ID a Secret a poté přidejte následující nastavení do souborů s proměnnými prostředí Overleafu.
config/variables.env
Před konfigurací OAuth redirect URI v GitLabu se ujistěte, že je OVERLEAF_SITE_URL nastaveno správně.
Přístupové tokeny GitLabu vyprší po dvou hodinách. Overleaf je obnovuje pomocí obnovovacího tokenu, který GitLab vydává spolu s nimi, takže uživatelé zůstávají propojeni, dokud propojení nezruší nebo dokud aplikaci v GitLabu neodvolají.

Samostatně spravovaný GitLab

Nastavte GITLAB_SYNC_URL na webovou adresu své instance, tedy tu, přes kterou otevíráte projekty v prohlížeči. Adresa REST API je od ní odvozena: GITLAB_SYNC_API_URL nastavujte pouze tehdy, když vaše instance poskytuje API jinde, například za API gateway.
  • OAuth aplikaci vytvořte na instanci, kterou nastavíte v GITLAB_SYNC_URL; aplikace z gitlab.com na samostatně spravované instanci nefunguje.
  • GITLAB_SYNC_URL je pouze webová adresa. Nepřidávejte /api/v4 ani cestu ke skupině.
Pokud vaše instance používá certifikát od soukromé certifikační autority, připojte certifikát CA do kontejneru a nastavte na něj NODE_EXTRA_CA_CERTS, např. NODE_EXTRA_CA_CERTS=/var/lib/overleaf/certs/gitlab-ca.pem.
Propojené účty a projekty patří k instanci, se kterou byly propojeny. Před přepnutím GITLAB_SYNC_URL na jinou instanci požádejte uživatele, aby zrušili propojení svého účtu GitLab a projektů.
Pokud se nacházíte v regionu s omezeným přístupem k síti, možná budete muset pro přístup ke GitLabu nakonfigurovat proxy. Nastavte následující proměnnou prostředí: GITLAB_SYNC_PROXY_URL=http://10.0.0.1:10808. Musí jít o standardní dopřednou HTTP/HTTPS proxy a nesmí používat 127.0.0.1.

Kdo může propojovat a synchronizovat

Stejně jako v Overleaf Cloud může projekt s repozitářem GitLab propojit pouze vlastník projektu. Po propojení jej může synchronizovat každý spolupracovník s oprávněním k úpravám.
  • Overleaf komunikuje s GitLabem prostřednictvím účtu GitLab uživatele, který synchronizuje, takže každý spolupracovník, který synchronizuje, si propojí vlastní účet GitLab a musí mít oprávnění pushovat do výchozí větve repozitáře.
  • Spolupracovníci s oprávněním pouze ke čtení nemohou pro projekt synchronizaci s GitLabem používat.

Jak funguje synchronizace s GitLabem

  • Oprávnění: uživatelé musí mít oprávnění pushovat do výchozí větve propojeného projektu. Pokud je výchozí větev chráněná a uživatel do ní pushovat nesmí, Overleaf jej požádá, aby kontaktoval vlastníka projektu, stejně jako u repozitáře, ke kterému ztratil přístup.
  • Slučování: pokud se projekt změnil v Overleafu i v GitLabu, Overleaf commitne své změny do dočasné větve s názvem overleaf-YYYY-MM-DD-HHMMSS a sloučí ji prostřednictvím merge requestu, protože GitLab nemá API pro slučování větví bez něj. Po sloučení Overleaf dočasnou větev i merge request smaže. Merge requesty mohou v GitLabu mazat pouze administrátoři a vlastníci projektů, takže u ostatních uživatelů sloučený merge request v projektu zůstane.
  • Pravidla slučování: Overleaf nikdy neobchází pravidla slučování projektu. Pokud má merge request konflikt nebo vyžaduje schválení či úspěšně dokončenou pipeline, zůstane otevřený a Overleaf požádá uživatele, aby jej sloučil v GitLabu a poté pokračoval v synchronizaci.
  • Pipeliny: commity z Overleafu spouštějí pipeliny jako jakékoli jiné commity. Pokud váš projekt spouští pipeliny pro merge requesty a vyžaduje jejich úspěšné dokončení, slučování z Overleafu na ně čeká, jak je popsáno výše.

Q&A

Odpověď: Ponechte prosím force push do výchozí větve zakázaný. To je výchozí nastavení GitLabu: výchozí větev nového projektu je chráněná a nikdo do ní nemůže provést force push. Overleaf dokáže převzít přepsanou větev, ale synchronizace s GitLabem je navržena pro výchozí větev, jejíž historie pouze roste.
Odpověď: Ne. Overleaf nadále synchronizuje s větví, se kterou byl projekt propojen, takže po přejmenování nebo odstranění této větve synchronizace selžou. Chcete-li synchronizovat s jinou větví, zrušte propojení projektu a poté importujte repozitář do nového projektu, který použije aktuální výchozí větev.
Naposledy změněno 12. října 2026