Tämän ominaisuuden on kehittänyt ayaka-notes/ayakaleaf-pro. Se on otettu käyttöön versiossa v6.3.2 varhaisena esiversiona, ja se julkaistaan virallisesti versiossa v6.4.0, joten sen määritykset ja toiminta voivat vielä muuttua. Tarvitsemme palautettasi, jos kohtaat ongelmia.
Gitea-synkronoinnin määrittäminen
Luo OAuth2-sovellus Gitea-instanssiisi kohdassa Settings → Applications → Manage OAuth2 applications (tai Site Administration → Integrations → Applications, jos haluat koko instanssin laajuisen sovelluksen):- Application name: esim.
Overleaf, käyttäjät näkevät sen valtuuttaessaan sovelluksen - Redirect URIs:
${OVERLEAF_SITE_URL}/user/gitea-sync/oauth2/callback - Confidential client: valittuna
config/variables.env
Gitea näyttää nämä laajuudet, kun käyttäjä valtuuttaa sovelluksen, ja rajoittaa tunnuksen niihin.
Gitean käyttöoikeustunnukset (access token) vanhenevat tunnin kuluttua (
[oauth2] ACCESS_TOKEN_EXPIRATION_TIME). Overleaf uudistaa ne päivitystunnuksella (refresh token), jonka Gitea myöntää niiden mukana, myös silloin, kun Gitea mitätöi päivitystunnukset käytön yhteydessä (INVALIDATE_REFRESH_TOKENS = true), joten käyttäjien linkitys säilyy, kunnes he purkavat linkityksen tai peruuttavat sovelluksen käyttöoikeuden Giteassa.
Gitea-instanssisi
AsetaGITEA_SYNC_URL instanssisi verkko-osoitteeksi, eli sen ROOT_URL-arvoksi, jolla avaat repositorioita selaimessa. REST API -osoite johdetaan siitä:
Myös alipolun alla tarjottu Gitea toimii, esim.
GITEA_SYNC_URL=https://example.com/gitea. Aseta GITEA_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/gitea-ca.pem.Linkitetyt tilit ja projektit kuuluvat siihen instanssiin, johon ne on linkitetty. Ennen kuin vaihdat
GITEA_SYNC_URL-arvon toiseen instanssiin, pyydä käyttäjiä purkamaan Gitea-tiliensä ja projektiensa linkitys.GITEA_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 Gitea-repositorioon. Kun linkitys on tehty, jokainen muokkausoikeudet omaava yhteistyökumppani voi synkronoida sen.- Overleaf kommunikoi Gitean kanssa synkronoivan käyttäjän Gitea-tilillä, joten jokainen synkronoiva yhteistyökumppani linkittää oman Gitea-tilinsä, ja hänellä on oltava oikeus pushata repositorion oletushaaraan.
- Pelkät katseluoikeudet omaavat yhteistyökumppanit eivät voi käyttää projektin Gitea-synkronointia.
- Tilin linkityksen purkaminen Overleafissa unohtaa sen tunnuksen. Giteassa ei ole API:a sen peruuttamiseen, joten peruuta halutessasi myös valtuutus Giteassa kohdassa Settings → Applications.
Miten synkronointi toimii Gitean kanssa
- Käyttöoikeudet: käyttäjillä on oltava oikeus pushata linkitetyn repositorion oletushaaraan. Jos haarasuojaussääntö ei salli käyttäjän 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ä Giteassa, Overleaf tekee muutoksistaan commitin väliaikaiseen haaraan nimeltä
overleaf-YYYY-MM-DD-HHMMSSja yhdistää sen pull requestin kautta repositorion oletusyhdistämistyylillä, koska Giteassa ei ole API:a haarojen yhdistämiseen ilman sellaista. Yhdistämisen jälkeen Overleaf poistaa väliaikaisen haaran. Yhdistetty pull request jää repositorioon merkinnäksi. - Yhdistämissäännöt: Overleaf ei koskaan ohita repositorion haarasuojausta. Jos pull requestissa on ristiriita tai se vaatii hyväksyntöjä tai läpäistyjä tilatarkistuksia, se jää avoimeksi ja Overleaf pyytää käyttäjää yhdistämään sen Giteassa ja jatkamaan sitten synkronointia.
- CI-työnkulut: Overleaf ei näytä pistetiedostoja, kuten
.gitea/workflows/, vaan jättää ne repositorioon sellaisinaan. Overleafin commitit käynnistävät Gitea Actionsin kuten mikä tahansa muu commit.
Q&A
Voinko tehdä force pushin oletushaaraan?
Voinko tehdä force pushin oletushaaraan?
Vastaus: Pidä force pushit oletushaaraan poissa käytöstä, esim. haarasuojaussäännöllä. Overleaf pystyy ottamaan uudelleenkirjoitetun haaran haltuunsa, mutta Gitea-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.
Tukeeko Gitea-synkronointi Git LFS:ää?
Tukeeko Gitea-synkronointi Git LFS:ää?
Vastaus: Ei. Overleaf-projektit eivät tue Git Large File Storagea. Git LFS:n seuraamat tiedostot näkyvät Overleafissa LFS-osoitintiedostoina eivätkä niiden sisältönä. Tee kuvista ja PDF-tiedostoista commit suoraan repositorioon.
Toimiiko se SHA-256-repositorioiden kanssa?
Toimiiko se SHA-256-repositorioiden kanssa?
Vastaus: Ei vielä. Overleaf vertaa tiedostoja niiden SHA-1-tunnisteiden perusteella, joten SHA-256-objektimuodolla luodussa repositoriossa jokainen pull kirjoittaa kaikki tiedostot uudelleen, myös muuttumattomat. Mitään ei menetetä, mutta käytä oletusarvoista SHA-1-muotoa.
Toimiiko se Forgejon kanssa?
Toimiiko se Forgejon kanssa?
Vastaus: Gitea-synkronointi on rakennettu ja testattu vain Giteaa vasten.

