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-synkronoinnin määrittäminen
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
config/variables.env
Itse ylläpidetty GitLab
AsetaGITLAB_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.
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.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-HHMMSSja 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
Voinko tehdä force pushin oletushaaraan?
Voinko tehdä force pushin oletushaaraan?
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.
Voinko nimetä linkitetyn projektin oletushaaran uudelleen?
Voinko nimetä linkitetyn projektin oletushaaran uudelleen?
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.

