> ## 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-synkronisering

<Info>
  Den här funktionen är utvecklad av [ayaka-notes/ayakaleaf-pro](https://github.com/ayaka-notes/ayakaleaf-pro). Den introducerades i v6.4.0 och finns i senare versioner. Den är fortfarande i betastatus. Vi behöver din återkoppling om du stöter på problem.
</Info>

GitLab-synkronisering fungerar som [GitHub-synkronisering](/sv/on-premises/configuration/overleaf-toolkit/github-synchronisation): användare länkar sitt GitLab-konto, exporterar projekt till nya GitLab-projekt, importerar GitLab-repositorier och synkroniserar ändringar i båda riktningarna. Det fungerar med GitLab.com och med egendriftad GitLab 15.10 eller senare (Community och Enterprise Edition).

### Konfigurera GitLab-synkronisering

<Warning>
  Du måste aktivera [git-bridge](/sv/on-premises/configuration/overleaf-toolkit/git-integration) innan du kan använda GitLab-synkronisering.

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

Skapa en OAuth-applikation på din GitLab-instans, under *User settings → Applications* (eller *Admin area → Applications* för en applikation som gäller hela instansen):

* **Redirect URI**: `${OVERLEAF_SITE_URL}/user/gitlab-sync/oauth2/callback`
* **Confidential**: markerad
* **Scopes**: `api`

Kopiera **Application ID** och **Secret** och lägg sedan till följande inställningar i dina filer med miljövariabler för Overleaf.

```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>
  Kontrollera att `OVERLEAF_SITE_URL` är korrekt angiven innan du konfigurerar redirect-URI:n för GitLab OAuth.
</Warning>

Åtkomsttoken för GitLab löper ut efter två timmar. Overleaf förnyar dem med den uppdateringstoken som GitLab utfärdar tillsammans med dem, så användarna förblir länkade tills de avlänkar eller återkallar applikationen i GitLab.

### Egendriftad GitLab

Ange `GITLAB_SYNC_URL` till webbadressen för din instans, den du öppnar projekt med i webbläsaren. REST-API:et härleds från den:

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

Ange bara `GITLAB_SYNC_API_URL` när din instans tillhandahåller API:et någon annanstans, till exempel bakom en API-gateway.

<Warning>
  * Skapa OAuth-applikationen på den instans du anger i `GITLAB_SYNC_URL`, en applikation från `gitlab.com` fungerar inte på en egendriftad instans.
  * `GITLAB_SYNC_URL` är endast webbadressen. Lägg inte till `/api/v4` eller en gruppsökväg.
</Warning>

<Info>
  Om din instans använder ett certifikat från en privat CA monterar du CA-certifikatet i containern och låter `NODE_EXTRA_CA_CERTS` peka på det, t.ex. `NODE_EXTRA_CA_CERTS=/var/lib/overleaf/certs/gitlab-ca.pem`.
</Info>

<Danger>
  Länkade konton och projekt hör till den instans de länkades med. Be användarna att avlänka sitt GitLab-konto och sina projekt innan du byter `GITLAB_SYNC_URL` till en annan instans.
</Danger>

Om du befinner dig i en region med begränsad nätverksåtkomst kan du behöva konfigurera en proxy för att nå GitLab. Ange följande miljövariabel: `GITLAB_SYNC_PROXY_URL=http://10.0.0.1:10808`. Det måste vara en vanlig HTTP/HTTPS-framåtproxy, och den får inte använda `127.0.0.1`.

### Vem kan länka och synkronisera

Precis som på Overleaf Cloud kan endast projektägaren länka ett projekt till ett GitLab-repositorium. När det väl är länkat kan alla medarbetare med redigeringsbehörighet synkronisera det.

| Åtgärd | Vem kan utföra den |
| - | - |
| Exportera ett projekt till ett nytt GitLab-repositorium | Projektägaren |
| Importera ett GitLab-repositorium till ett nytt projekt | Alla användare, som då blir ägare till det nya projektet |
| Hämta, pusha och slå samman ett länkat projekt | Ägaren och medarbetare med redigeringsbehörighet |
| Avlänka ett projekt från dess repositorium | Projektägaren |

* Overleaf kommunicerar med GitLab via GitLab-kontot för den användare som synkroniserar, så varje medarbetare som synkroniserar länkar sitt eget GitLab-konto och måste ha behörighet att pusha till repositoriets standardgren.
* Medarbetare med endast läsbehörighet kan inte använda GitLab-synkronisering för projektet.

### Så fungerar synkronisering med GitLab

* **Behörigheter**: användare måste ha behörighet att pusha till standardgrenen i det länkade projektet. När standardgrenen är skyddad och användaren inte får pusha till den ber Overleaf dem att kontakta projektägaren, precis som med ett repositorium de har förlorat åtkomst till.
* **Sammanslagning**: när ett projekt har ändrats både i Overleaf och i GitLab committar Overleaf sina ändringar till en tillfällig gren med namnet `overleaf-YYYY-MM-DD-HHMMSS` och slår samman den via en merge request, eftersom GitLab saknar ett API för att slå samman grenar utan en sådan. Efter sammanslagningen tar Overleaf bort den tillfälliga grenen och merge requesten. Endast administratörer och projektägare får ta bort merge requests i GitLab, så för andra användare blir den sammanslagna merge requesten kvar i projektet.
* **Sammanslagningsregler**: Overleaf kringgår aldrig projektets sammanslagningsregler. När merge requesten har en konflikt, eller kräver ett godkännande eller en godkänd pipeline, förblir den öppen och Overleaf ber användaren att slå samman den i GitLab och sedan fortsätta synkroniseringen.
* **Pipelines**: commits från Overleaf startar pipelines precis som alla andra commits. Om ditt projekt kör pipelines för merge requests och kräver att de godkänns väntar sammanslagningar från Overleaf på dem, enligt beskrivningen ovan.

### Q\&A

<Accordion title="Kan jag force-pusha till standardgrenen?">
  <strong>Svar:</strong> Håll force pushes till standardgrenen inaktiverade. Det är GitLabs standard: standardgrenen i ett nytt projekt är skyddad och ingen kan force-pusha till den. Overleaf kan ta över en omskriven gren, men GitLab-synkronisering är utformad för en standardgren vars historik bara växer.
</Accordion>

<Accordion title="Kan jag byta namn på standardgrenen i ett länkat projekt?">
  <strong>Svar:</strong> Nej. Overleaf fortsätter att synkronisera med den gren som projektet länkades till, så synkroniseringar misslyckas när den grenen byter namn eller tas bort. För att synkronisera med en annan gren avlänkar du projektet och importerar sedan repositoriet till ett nytt projekt, som då använder den aktuella standardgrenen.
</Accordion>


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