> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/on-premises/fr/configuration/overleaf-toolkit/git-integration.md).

# intégration Git

L’intégration Git n’est disponible qu’à [ayaka-notes/overleaf](https://github.com/ayaka-notes/overleaf) actuellement.

{% hint style="info" %}
Cette fonctionnalité a d'abord été développée par [ayaka-notes/overleaf-pro](https://github.com/ayaka-notes/overleaf-pro).
{% endhint %}

{% stepper %}
{% step %}

### Activer le git-bridge (réservé aux utilisateurs du Toolkit)

Si vous utilisez le Toolkit, activez le `git-bridge` en définissant ce qui suit dans votre `config/overleaf.rc`:

{% code title="config/overleaf.rc" %}

```
GIT_BRIDGE_ENABLED=true
```

{% endcode %}
{% endstep %}

{% step %}

### Ajouter le conteneur git-bridge (réservé aux utilisateurs de Docker Compose)

Pour les utilisateurs exécutant un `docker-compose.yml`personnalisé, ajoutez la configuration de conteneur suivante à votre fichier compose :

{% code title="docker-compose.yml (service git-bridge)" overflow="wrap" %}

```yaml
git-bridge :
    restart: always
    image: quay.io/sharelatex/git-bridge:4.0.0 # la balise doit correspondre à la balise du conteneur `sharelatex`
    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/" pour la version 4.1.6 et antérieures
        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"]
```

{% endcode %}
{% endstep %}

{% step %}

### Mettre à jour la configuration du conteneur sharelatex

Vous devrez également lier le `git-bridge` conteneur dans le `conteneur sharelatex.` conteneur et définir les variables d’environnement suivantes, veuillez faire attention à `V1_HISTORY_URL`:

<pre class="language-yaml" data-title="docker-compose.yml (service sharelatex)"><code class="lang-yaml">sharelatex:
    links :
        - git-bridge
    environment:
         GIT_BRIDGE_ENABLED: true
         GIT_BRIDGE_HOST: "git-bridge"
         GIT_BRIDGE_PORT: "8000"
<strong>         # Nous utilisons maintenant v1 ; si vous aviez défini V1_HISTORY_URL, veuillez le mettre à jour maintenant
</strong><strong>         V1_HISTORY_URL: "http://sharelatex:3054"
</strong></code></pre>

{% endstep %}

{% step %}

### Authentification

Lors de l’authentification d’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 via l’interface de l’application (voir la documentation) :

<figure><img src="/files/6b56d0d09c21c5698349c8bf59f8841a8ee82f98" alt=""><figcaption><p>Jeton d’accès personnel pour l’intégration Git</p></figcaption></figure>
{% endstep %}

{% step %}

### Surveillance et considérations relatives aux 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 de :

* le nombre d’utilisateurs accédant à la fonctionnalité
* les types de projets hébergés sur votre instance (les projets plus volumineux sont généralement plus gourmands en ressources)
  {% endstep %}
  {% endstepper %}

### Déplacement des projets vers S3

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

| Nom                                   | Description                                                                                                                                                                                                |
| ------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `GIT_BRIDGE_SWAPSTORE_TYPE`           | Définissez cette valeur sur "s3" pour activer la tâche de déplacement.                                                                                                                                     |
| `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                                                                                                                                                             |
| `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 pour le déplacement. La tâche de déplacement transférera les projets jusqu’à ce que l’utilisation du disque soit inférieure à cette valeur.<br><br><strong>- Par défaut :</strong> 128 Go</p> |
| `GIT_BRIDGE_SWAPJOB_HIGH_GIB`         | <p>Seuil haut pour le déplacement. La tâche de déplacement commencera à déplacer les projets lorsque l’utilisation du disque atteindra cette valeur.<br><br><strong>- Par défaut :</strong> 256 Go</p>     |
| `GIT_BRIDGE_SWAPJOB_INTERVAL_MILLIS`  | <p>Le temps écoulé entre la vérification de l’utilisation du disque et l’exécution de la tâche de déplacement.<br><br><strong>- Par défaut :</strong> 3600000 ms = 1 heure</p>                             |

### Questions-réponses

<details>

<summary>Si je partage mon projet avec quelqu’un d’autre, comment fonctionne le modèle d’autorisations de Git Bridge ?</summary>

Les utilisateurs ayant un accès en lecture seule peuvent uniquement cloner ce projet ; les utilisateurs ayant un accès en lecture-écriture peuvent cloner et envoyer des projets. Remarque : les utilisateurs doivent être connectés pour rejoindre ce projet.

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/on-premises/fr/configuration/overleaf-toolkit/git-integration.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
