Skip to main content
Tämän ominaisuuden on kehittänyt ayaka-notes/ayakaleaf-pro. Se on otettu käyttöön versiosta v6.4.0 alkaen. Ominaisuus on vielä beta-vaiheessa. Tarvitsemme palautettasi, jos kohtaat ongelmia.
GitLab-synkronointi toimii samalla tavalla kuin GitHub-synkronointi: käyttäjät linkittävät GitLab-tilinsä, vievät projekteja uusiin GitLab-projekteihin, tuovat GitLab-repositorioita ja synkronoivat muutoksia molempiin suuntiin. Se toimii GitLab.comin sekä itse ylläpidetyn GitLabin version 15.10 tai uudemman kanssa (Community ja Enterprise Edition).

GitLab-synkronoinnin määrittäminen

Sinun on otettava git-bridge käyttöön ennen GitLab-synkronoinnin käyttämistä.
config/overleaf.rc
Luo OAuth-sovellus GitLab-instanssiisi kohdassa User settings → Applications (tai Admin area → Applications, jos haluat koko instanssin laajuisen sovelluksen):
  • Redirect URI: ${OVERLEAF_SITE_URL}/user/gitlab-sync/oauth2/callback
  • Confidential: valittuna
  • Scopes: api
Kopioi Application ID ja Secret ja lisää sitten seuraavat asetukset Overleafin ympäristömuuttujatiedostoihin.
config/variables.env
Varmista ennen GitLab OAuth -uudelleenohjaus-URI:n määrittämistä, että OVERLEAF_SITE_URL on asetettu oikein.
GitLabin käyttöoikeustunnukset (access token) vanhenevat kahden tunnin kuluttua. Overleaf uudistaa ne päivitystunnuksella (refresh token), jonka GitLab myöntää niiden mukana, joten käyttäjien linkitys säilyy, kunnes he purkavat linkityksen tai peruuttavat sovelluksen käyttöoikeuden GitLabissa.

Itse ylläpidetty GitLab

Aseta GITLAB_SYNC_URL instanssisi verkko-osoitteeksi, eli siksi osoitteeksi, jolla avaat projekteja selaimessa. REST API -osoite johdetaan siitä: Aseta GITLAB_SYNC_API_URL vain, jos instanssisi tarjoaa API:n muualla, esimerkiksi API-yhdyskäytävän takana.
  • Luo OAuth-sovellus siihen instanssiin, jonka asetit GITLAB_SYNC_URL-muuttujaan. gitlab.com-palvelussa luotu sovellus ei toimi itse ylläpidetyssä instanssissa.
  • GITLAB_SYNC_URL on pelkkä verkko-osoite. Älä lisää siihen /api/v4-polkua tai ryhmän polkua.
Jos instanssisi käyttää yksityisen varmentajan (CA) myöntämää varmennetta, liitä CA-varmenne konttiin ja osoita NODE_EXTRA_CA_CERTS siihen, esim. NODE_EXTRA_CA_CERTS=/var/lib/overleaf/certs/gitlab-ca.pem.
Linkitetyt tilit ja projektit kuuluvat siihen instanssiin, johon ne on linkitetty. Ennen kuin vaihdat GITLAB_SYNC_URL-arvon toiseen instanssiin, pyydä käyttäjiä purkamaan GitLab-tiliensä ja projektiensa linkitys.
Jos olet alueella, jolla verkkoyhteyksiä on rajoitettu, sinun on ehkä määritettävä välityspalvelin GitLabin käyttämiseksi. Aseta seuraava ympäristömuuttuja: GITLAB_SYNC_PROXY_URL=http://10.0.0.1:10808. Sen on oltava tavallinen HTTP/HTTPS-välityspalvelin (forward proxy), eikä se saa käyttää osoitetta 127.0.0.1.

Kuka voi linkittää ja synkronoida

Kuten Overleaf Cloudissa, vain projektin omistaja voi linkittää projektin GitLab-repositorioon. Kun linkitys on tehty, jokainen muokkausoikeudet omaava yhteistyökumppani voi synkronoida sen.
  • Overleaf kommunikoi GitLabin kanssa synkronoivan käyttäjän GitLab-tilillä, joten jokainen synkronoiva yhteistyökumppani linkittää oman GitLab-tilinsä, ja hänellä on oltava oikeus pushata repositorion oletushaaraan.
  • Pelkät katseluoikeudet omaavat yhteistyökumppanit eivät voi käyttää projektin GitLab-synkronointia.

Miten synkronointi toimii GitLabin kanssa

  • Käyttöoikeudet: käyttäjillä on oltava oikeus pushata linkitetyn projektin oletushaaraan. Jos oletushaara on suojattu eikä käyttäjä saa pushata siihen, Overleaf pyytää häntä ottamaan yhteyttä projektin omistajaan, kuten repositorion kohdalla, johon käyttöoikeus on menetetty.
  • Yhdistäminen: kun projektia on muutettu sekä Overleafissa että GitLabissa, Overleaf tekee muutoksistaan commitin väliaikaiseen haaraan nimeltä overleaf-YYYY-MM-DD-HHMMSS ja yhdistää sen merge requestin kautta, koska GitLabissa ei ole API:a haarojen yhdistämiseen ilman sellaista. Yhdistämisen jälkeen Overleaf poistaa väliaikaisen haaran ja merge requestin. Vain ylläpitäjät ja projektin omistajat voivat poistaa merge requesteja GitLabissa, joten muiden käyttäjien kohdalla yhdistetty merge request jää projektiin.
  • Yhdistämissäännöt: Overleaf ei koskaan ohita projektin yhdistämissääntöjä. Jos merge requestissa on ristiriita tai se vaatii hyväksynnän tai läpäistyn pipelinen, se jää avoimeksi ja Overleaf pyytää käyttäjää yhdistämään sen GitLabissa ja jatkamaan sitten synkronointia.
  • Pipelinet: Overleafin commitit käynnistävät pipelinet kuten mikä tahansa muu commit. Jos projektisi ajaa pipelinet merge requesteille ja vaatii niiden läpäisyä, Overleafin yhdistämiset odottavat niitä edellä kuvatulla tavalla.

Q&A

Vastaus: Pidä force pushit oletushaaraan poissa käytöstä. Tämä on GitLabin oletusasetus: uuden projektin oletushaara on suojattu, eikä kukaan voi tehdä siihen force pushia. Overleaf pystyy ottamaan uudelleenkirjoitetun haaran haltuunsa, mutta GitLab-synkronointi on suunniteltu oletushaaralle, jonka historia vain kasvaa.
Vastaus: Et. Overleaf jatkaa synkronointia sen haaran kanssa, johon projekti linkitettiin, joten synkronoinnit epäonnistuvat, kun haara nimetään uudelleen tai poistetaan. Jos haluat synkronoida toisen haaran kanssa, pura projektin linkitys ja tuo sitten repositorio uuteen projektiin, joka käyttää nykyistä oletushaaraa.
Viimeksi muokattu 12. lokakuuta 2026