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

# Git-Integration

Die Git-Integration ist derzeit nur unter [ayaka-notes/overleaf](https://github.com/ayaka-notes/overleaf) verfügbar.

<Info>
  Diese Funktion wurde ursprünglich von [ayaka-notes/overleaf-pro](https://github.com/ayaka-notes/overleaf-pro) entwickelt.
</Info>

<Steps>
  <Step title="git-bridge aktivieren (nur für Toolkit-Nutzer)">
    Wenn Sie das Toolkit verwenden, aktivieren Sie die `git-bridge`, indem Sie Folgendes in Ihrer `config/overleaf.rc` festlegen:

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

  <Step title="git-bridge-Container hinzufügen (nur für Docker-Compose-Nutzer)">
    Wenn Sie eine eigene `docker-compose.yml` verwenden, fügen Sie Ihrer Compose-Datei die folgende Container-Konfiguration hinzu:

    ```yaml title="docker-compose.yml (git-bridge service)" wrap theme={null}
    git-bridge:
        restart: always
        image: ghcr.io/ayaka-notes/overleaf-pro/git-bridge:6.3.0 # tag should match the `sharelatex` container tag
        volumes:
            - ~/git_bridge_data:/data/git-bridge
        container_name: git-bridge
        expose:
            - "8000"
        environment:
            GIT_BRIDGE_API_BASE_URL: "http://sharelatex:3000/api/v0/" 
            # "http://sharelatex/api/v0/" for version 4.1.6 and earlier
            GIT_BRIDGE_OAUTH2_SERVER: "http://sharelatex"
            GIT_BRIDGE_POSTBACK_BASE_URL: "http://git-bridge:8000"
            GIT_BRIDGE_ROOT_DIR: "/data/git-bridge"
        user: root
        command: ["/server-pro-start.sh"]
    ```
  </Step>

  <Step title="Konfiguration des sharelatex-Containers aktualisieren">
    Außerdem müssen Sie den Container `git-bridge` im Container `sharelatex` verlinken und die folgenden Umgebungsvariablen definieren. Achten Sie dabei besonders auf `V1_HISTORY_URL`:

    ```yaml title="docker-compose.yml (sharelatex service)" theme={null}
    sharelatex:
        links:
            - git-bridge
        environment:
             GIT_BRIDGE_ENABLED: true
             GIT_BRIDGE_HOST: "git-bridge"
             GIT_BRIDGE_PORT: "8000"
             # We use v1 now, if you used to set V1_HISTORY_URL, please update now
             V1_HISTORY_URL: "http://sharelatex:3100/api"
    ```
  </Step>

  <Step title="Authentifizierung">
    Zur Authentifizierung eines Git-Clients benötigen Nutzerinnen und Nutzer ein Personal Access Token. Personal Access Tokens können über die Benutzeroberfläche der Anwendung verwaltet werden (siehe Dokumentation):

    <Frame caption="Personal Access Token für die Git-Integration">
      <img src="https://mintcdn.com/ayakaleaf-pro/x9kfDjtWlyyhG_mR/images/on-premises/image-28.png?fit=max&auto=format&n=x9kfDjtWlyyhG_mR&q=85&s=08935524562eec75d1fcd20d14791f9a" alt="" width="1374" height="869" data-path="images/on-premises/image-28.png" />
    </Frame>
  </Step>

  <Step title="Überwachung und Ressourcenbedarf">
    Wir empfehlen, nach der Aktivierung der `git-bridge` die Ressourcen Ihres Hosts zu überwachen. Die zusätzliche Last hängt ab von:

    * der Anzahl der Nutzerinnen und Nutzer, die die Funktion verwenden
    * der Art der in Ihrer Instanz gehosteten Projekte (größere Projekte sind in der Regel ressourcenintensiver)
  </Step>
</Steps>

### Projekte nach S3 auslagern

Die Git-Integration speichert für jedes Projekt, das von einem Benutzer geklont wird, ein vollständiges Git-Repository auf der Festplatte. Wenn Ihr Speicherplatz begrenzt ist, können Sie einen Swap-Job aktivieren, der weniger genutzte Repositories nach AWS S3 verschiebt. Wird ein ausgelagertes Repository wieder benötigt, wird es zurück auf die Festplatte verschoben. Die folgenden Umgebungsvariablen steuern den Swap-Job:

| Name | Beschreibung |
| - | - |
| `GIT_BRIDGE_SWAPSTORE_TYPE` | Setzen Sie diesen Wert auf "s3", um den Swap-Job zu aktivieren. |
| `GIT_BRIDGE_SWAPSTORE_AWS_ACCESS_KEY` | Ihr AWS Access Key |
| `GIT_BRIDGE_SWAPSTORE_AWS_SECRET` | Ihr AWS Secret |
| `GIT_BRIDGE_SWAPSTORE_S3_BUCKET_NAME` | Dieser Bucket enthält die gezippten Git-Repositories |
| `GIT_BRIDGE_SWAPSTORE_AWS_REGION` | Die Region des Buckets |
| `GIT_BRIDGE_SWAPJOB_MIN_PROJECTS` | <p>Mindestanzahl der Projekte, die auf der Festplatte verbleiben.<br /><br /><strong>- Standard:</strong> 50</p> |
| `GIT_BRIDGE_SWAPJOB_LOW_GIB` | <p>Untere Schwelle für das Auslagern. Der Swap-Job verschiebt Projekte, bis die Festplattennutzung unter diesem Wert liegt.<br /><br /><strong>- Standard:</strong> 128 GB</p> |
| `GIT_BRIDGE_SWAPJOB_HIGH_GIB` | <p>Obere Schwelle für das Auslagern. Der Swap-Job beginnt mit dem Auslagern, wenn die Festplattennutzung diesen Wert erreicht.<br /><br /><strong>- Standard:</strong> 256 GB</p> |
| `GIT_BRIDGE_SWAPJOB_INTERVAL_MILLIS` | <p>Zeitabstand zwischen der Prüfung der Festplattennutzung und der Ausführung des Swap-Jobs.<br /><br /><strong>- Standard:</strong> 3600000 ms = 1 Stunde</p> |

### Fragen und Antworten

<Accordion title="Wie funktioniert das Berechtigungsmodell der Git Bridge, wenn ich mein Projekt mit anderen teile?">
  Nutzerinnen und Nutzer mit Lesezugriff können dieses Projekt nur klonen; Nutzerinnen und Nutzer mit Lese- und Schreibzugriff können Projekte klonen und pushen. Hinweis: Nutzerinnen und Nutzer müssen angemeldet sein, um diesem Projekt beizutreten.
</Accordion>


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