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

# Intégration Git

L'intégration Git n'est actuellement disponible que sur [ayaka-notes/overleaf](https://github.com/ayaka-notes/overleaf).

<Info>
  Cette fonctionnalité a été initialement développée par [ayaka-notes/overleaf-pro](https://github.com/ayaka-notes/overleaf-pro).
</Info>

<Steps>
  <Step title="Activer le git-bridge (utilisateurs du Toolkit uniquement)">
    Si vous utilisez le Toolkit, activez le `git-bridge` en définissant ce qui suit dans votre `config/overleaf.rc` :

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

  <Step title="Ajouter le conteneur git-bridge (utilisateurs de Docker Compose uniquement)">
    Si vous utilisez un `docker-compose.yml` personnalisé, ajoutez la configuration de conteneur suivante à votre fichier compose :

    ```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="Mettre à jour la configuration du conteneur sharelatex">
    Vous devrez également lier le conteneur `git-bridge` dans le conteneur `sharelatex` et définir les variables d'environnement suivantes ; faites particulièrement attention à `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="Authentification">
    Pour authentifier un client git, les utilisateurs ont besoin d'un jeton d'accès personnel. Les utilisateurs peuvent gérer leurs jetons d'accès personnels depuis l'interface de l'application (voir la documentation) :

    <Frame caption="Jeton d'accès personnel pour l'intégration Git">
      <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="Surveillance et ressources">
    Nous vous recommandons de surveiller les ressources de votre hôte après avoir activé le `git-bridge`. L'augmentation de la charge dépendra :

    * du nombre d'utilisateurs accédant à la fonctionnalité
    * des types de projets hébergés sur votre instance (les projets plus volumineux sont généralement plus gourmands en ressources)
  </Step>
</Steps>

### Déplacement des projets vers S3

L'intégration Git stocke sur le disque un dépôt git complet pour chaque projet cloné par un utilisateur. Si votre espace disque est limité, vous pouvez activer une tâche de swap qui déplacera les dépôts les moins utilisés vers AWS S3. Si un dépôt déplacé est de nouveau nécessaire, il est rapatrié sur le disque. Les variables d'environnement suivantes contrôlent la tâche de swap :

| Nom | Description |
| - | - |
| `GIT_BRIDGE_SWAPSTORE_TYPE` | Définissez cette valeur sur "s3" pour activer la tâche de swap. |
| `GIT_BRIDGE_SWAPSTORE_AWS_ACCESS_KEY` | Votre clé d'accès AWS |
| `GIT_BRIDGE_SWAPSTORE_AWS_SECRET` | Votre secret AWS |
| `GIT_BRIDGE_SWAPSTORE_S3_BUCKET_NAME` | Ce bucket contiendra les dépôts git compressés (zip) |
| `GIT_BRIDGE_SWAPSTORE_AWS_REGION` | La région du bucket |
| `GIT_BRIDGE_SWAPJOB_MIN_PROJECTS` | <p>Nombre minimal de projets à conserver sur le disque.<br /><br /><strong>- Par défaut :</strong> 50</p> |
| `GIT_BRIDGE_SWAPJOB_LOW_GIB` | <p>Seuil bas du swap. La tâche de swap déplacera des projets jusqu'à ce que l'utilisation du disque passe sous cette valeur.<br /><br /><strong>- Par défaut :</strong> 128 Go</p> |
| `GIT_BRIDGE_SWAPJOB_HIGH_GIB` | <p>Seuil haut du swap. La tâche de swap commencera lorsque l'utilisation du disque atteindra cette valeur.<br /><br /><strong>- Par défaut :</strong> 256 Go</p> |
| `GIT_BRIDGE_SWAPJOB_INTERVAL_MILLIS` | <p>Intervalle entre deux vérifications de l'utilisation du disque et exécutions de la tâche de swap.<br /><br /><strong>- Par défaut :</strong> 3600000 ms = 1 heure</p> |

### Questions-réponses

<Accordion title="Si je partage mon projet avec quelqu'un d'autre, comment fonctionne le modèle de permissions du Git Bridge ?">
  Les utilisateurs disposant d'un accès en lecture seule peuvent uniquement cloner le projet ; les utilisateurs disposant d'un accès en lecture-écriture peuvent cloner et pousser des modifications. Remarque : les utilisateurs doivent être connectés pour rejoindre ce projet.
</Accordion>


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