> ## Documentation Index
> Fetch the complete documentation index at: https://ayakaleaf-pro.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# GitLab-synkronointi

<Info>
  Tämän ominaisuuden on kehittänyt [ayaka-notes/ayakaleaf-pro](https://github.com/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.
</Info>

GitLab-synkronointi toimii samalla tavalla kuin [GitHub-synkronointi](/fi/on-premises/configuration/overleaf-toolkit/github-synchronisation): 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

<Warning>
  Sinun on otettava [git-bridge](/fi/on-premises/configuration/overleaf-toolkit/git-integration) käyttöön ennen GitLab-synkronoinnin käyttämistä.

  ```dotenv title="config/overleaf.rc" theme={null}
  GIT_BRIDGE_ENABLED=true
  ```
</Warning>

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.

```dotenv title="config/variables.env" wrap theme={null}
# used to encrypt the user's GitLab access and refresh tokens.
# How to generate: `openssl rand -hex 32`
GITLAB_TOKEN_CIPHER_PASSWORD=0123456789ABCDEFG # changed to yours

# GitLab Sync Settings
GITLAB_SYNC_ENABLED=true
GITLAB_SYNC_CLIENT_ID=
GITLAB_SYNC_CLIENT_SECRET=

# Web address of your GitLab, defaults to https://gitlab.com
# GITLAB_SYNC_URL=https://gitlab.example.com

# OAuth callback is: ${OVERLEAF_SITE_URL}/user/gitlab-sync/oauth2/callback
# (Optional) GITLAB_SYNC_PROXY_URL=http://10.0.0.1:10808
```

<Warning>
  Varmista ennen GitLab OAuth -uudelleenohjaus-URI:n määrittämistä, että `OVERLEAF_SITE_URL` on asetettu oikein.
</Warning>

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ä:

| Muuttuja | Oletusarvo |
| - | - |
| `GITLAB_SYNC_URL` | `https://gitlab.com` |
| `GITLAB_SYNC_API_URL` | `${GITLAB_SYNC_URL}/api/v4` |

Aseta `GITLAB_SYNC_API_URL` vain, jos instanssisi tarjoaa API:n muualla, esimerkiksi API-yhdyskäytävän takana.

<Warning>
  * 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.
</Warning>

<Info>
  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`.
</Info>

<Danger>
  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.
</Danger>

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.

| Toiminto | Kuka voi tehdä sen |
| - | - |
| Projektin vieminen uuteen GitLab-repositorioon | Projektin omistaja |
| GitLab-repositorion tuominen uuteen projektiin | Kuka tahansa käyttäjä, josta tulee uuden projektin omistaja |
| Linkitetyn projektin pull, push ja merge | Omistaja ja muokkausoikeudet omaavat yhteistyökumppanit |
| Projektin linkityksen purkaminen repositoriosta | Projektin omistaja |

* 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

<Accordion title="Voinko tehdä force pushin oletushaaraan?">
  <strong>Vastaus:</strong> 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.
</Accordion>

<Accordion title="Voinko nimetä linkitetyn projektin oletushaaran uudelleen?">
  <strong>Vastaus:</strong> 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.
</Accordion>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.