Tuto funkci vyvinul projekt ayaka-notes/ayakaleaf-pro a upravil ji projekt yu-i-i/overleaf-cep. Je k dispozici od verze v6.2.0. Stále je ve stavu beta. Pokud narazíte na jakýkoli problém, uvítáme vaši zpětnou vazbu.




Nastavení synchronizace s GitHubem
Navštivte nastavení pro vývojáře, vytvořte svou GitHub OAuth aplikaci a zkopírujte jejíCLIENT_ID a SECRET.
Poznámka: při vytváření OAuth App zadejte do pole Authorization callback URL ${OVERLEAF_SITE_URL}/user/github-sync/oauth2/callback. Ayakaleaf Pro sestavuje stejnou adresu z OVERLEAF_SITE_URL, takže pro ni v config/variables.env není třeba nic nastavovat.
Poté přidejte následující nastavení do souborů s proměnnými prostředí Overleafu.
config/variables.env
GITHUB_SYNC_PROXY_URL=http://10.0.0.1:10808. Ujistěte se, že používání proxy je v souladu s místními zákony a předpisy.
GitHub Enterprise
Podpora GitHub Enterprise je k dispozici od verze v6.3.1. Starší verze se připojují pouze k
github.com a níže uvedené proměnné nemají žádný účinek.github.com. Chcete-li použít GitHub Enterprise Server (hostovaný u vás) nebo GitHub Enterprise Cloud s rezidencí dat (GHE.com), nastavte GITHUB_SYNC_URL na webovou adresu své instance, tedy tu, přes kterou otevíráte repozitáře v prohlížeči.
config/variables.env
GITHUB_SYNC_URL odvozují stejným způsobem jako v GitHub CLI:
Koncové body API nastavujte pouze tehdy, když je vaše instance poskytuje jinde, například za API gateway:
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/github-ca.pem.Propojené účty a projekty patří k instanci, se kterou byly propojeny. Před přepnutím
GITHUB_SYNC_URL na jinou instanci požádejte uživatele, aby zrušili propojení svého účtu GitHub a projektů.Kdo může propojovat a synchronizovat
Stejně jako v Overleaf Cloud může projekt s repozitářem GitHub 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 GitHubem prostřednictvím účtu GitHub uživatele, který synchronizuje, takže každý spolupracovník, který synchronizuje, si propojí vlastní účet GitHub 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 GitHubem používat.
Q&A
Jak propojím projekt s GitHubem a synchronizuji ho?
Jak propojím projekt s GitHubem a synchronizuji ho?
Odpověď: V editoru otevřete Integrations a klikněte na GitHub. Pokud váš účet GitHub ještě není propojen, klikněte nejprve na Link to your GitHub account. V části Export Project to GitHub zadejte název repozitáře, v části Repository visibility zvolte Private a klikněte na Create a GitHub repository.Poté stejná karta otevře Sync with GitHub, kde jsou uvedeny nové commity na GitHubu. Kliknutím na Sync commitnete své změny z Overleafu do výchozí větve a přenesete změny z GitHubu do projektu. Synchronizace probíhá oběma směry, ale spustí se pouze tehdy, když někdo klikne na Sync; plánovaná synchronizace neexistuje. Pokud se změnily obě strany, Overleaf provede merge přes dočasnou větev s názvem
overleaf-YYYY-MM-DD-HHMMSS. Pokud tento merge obsahuje konflikt, proveďte merge větve na GitHubu sami a poté klikněte na I have manually merged. Continue.Mohu do výchozí větve provést force push?
Mohu do výchozí větve provést force push?
Odpověď: Nedoporučujeme to. Overleaf force push rozpozná, upozorní na něj a převezme přepsanou větev, přičemž sloučí změny provedené v Overleafu od poslední synchronizace. Abyste se vyhnuli nepříjemným překvapením, chraňte výchozí větev v nastavení repozitáře před force pushem.
Mohu přejmenovat výchozí větev propojeného projektu?
Mohu přejmenovat výchozí větev propojeného projektu?
Odpověď: Prosím, nedělejte to. Overleaf nadále synchronizuje s větví, se kterou byl projekt propojen. 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.
Synchronizace s GitHubem hlásí „Something wrong with GitHub request“
Synchronizace s GitHubem hlásí „Something wrong with GitHub request“
Odpověď: Tato zpráva znamená, že se server nemohl spojit s GitHubem, například kvůli problému se sítí, DNS, TLS nebo proxy. Úplnou chybu zobrazíte pomocí
bin/logs web. Pokud server k připojení na GitHub potřebuje proxy, nastavte GITHUB_SYNC_PROXY_URL.Mám v GitHub OAuth App vypnout „Expire user access tokens“?
Mám v GitHub OAuth App vypnout „Expire user access tokens“?
Odpověď: Ano. Synchronizace s GitHubem neobnovuje tokeny, jejichž platnost vypršela. Se zapnutým vypršením tokenů musí uživatelé GitHub znovu připojit pokaždé, když jejich token vyprší.
Musí být moje instance dostupná z internetu?
Musí být moje instance dostupná z internetu?
Odpověď: Ne. Propojení účtu probíhá přes prohlížeč uživatele, takže adresa OAuth callbacku se musí otevřít pouze v prohlížeči uživatele. Server se potřebuje dostat jen k GitHubu; pokud k tomu potřebuje proxy, nastavte
GITHUB_SYNC_PROXY_URL. GitHub vaši instanci nikdy nevolá: projekt se synchronizuje pouze tehdy, když jej uživatel synchronizuje v editoru.Propojení mého účtu GitHub selže nebo mě vrátí zpět bez propojení
Propojení mého účtu GitHub selže nebo mě vrátí zpět bez propojení
Odpověď: Zkontrolujte postupně následující:
- Otevírejte Overleaf přesně na adrese nastavené v
OVERLEAF_SITE_URL. GitHub vás vrátí na${OVERLEAF_SITE_URL}/user/github-sync/oauth2/callbacka vaše přihlášení existuje pouze na adrese, ze které jste začali, takže jiný hostitel, IP adresa nebo port skončí na přihlašovací stránce nebo na „Restricted, sorry you don’t have permission to load this page“. - Authorization callback URL aplikace OAuth musí být
${OVERLEAF_SITE_URL}/user/github-sync/oauth2/callbackse stejným schématem, hostitelem a portem. - Chybová stránka s
Failed to obtain access token from Git serverznamená, že GitHub nevrátil token: zkontrolujteGITHUB_SYNC_CLIENT_IDaGITHUB_SYNC_CLIENT_SECRETa také to, zda server může dosáhnout na GitHub. Úplnou chybu zobrazíte spuštěnímbin/logs web.
config/variables.env spusťte bin/up, aby se kontejnery znovu vytvořily.Import repozitáře selže s „EmptyZipFileError: empty_zip_file“ nebo „unzip failed“
Import repozitáře selže s „EmptyZipFileError: empty_zip_file“ nebo „unzip failed“
Odpověď: Overleaf importuje zip archiv posledního commitu ve výchozí větvi repozitáře a tato chyba znamená, že archiv neobsahuje žádný soubor, který by Overleaf mohl importovat. Zkontrolujte výchozí větev na GitHubu:
- Obsahuje soubory projektu, nejen soubory, které Overleaf při importu přeskakuje: soubory začínající tečkou, jako
.gitignorea.gitmodules(.latexmkrcse zachová), a soubory sestavení, jako*.aux,*.log,*.bbl,*.synctex.gz,*.doca*.docx. - Soubory nejsou pouze uvnitř submodulů Gitu. Archiv GitHubu ponechává submoduly jako prázdné složky.
- Očekávané soubory jsou ve výchozí větvi, nikoli v jiné větvi. Import vždy používá výchozí větev.

