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

# Integración con Git

Actualmente, la integración con Git solo está disponible en [ayaka-notes/overleaf](https://github.com/ayaka-notes/overleaf).

<Info>
  Esta funcionalidad fue desarrollada inicialmente por [ayaka-notes/overleaf-pro](https://github.com/ayaka-notes/overleaf-pro).
</Info>

<Steps>
  <Step title="Habilitar git-bridge (solo para usuarios del Toolkit)">
    Si usas el Toolkit, habilita `git-bridge` configurando lo siguiente en tu `config/overleaf.rc`:

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

  <Step title="Añadir el contenedor git-bridge (solo para usuarios de Docker-compose)">
    Si ejecutas un `docker-compose.yml` personalizado, añade la siguiente configuración de contenedor a tu archivo 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="Actualizar la configuración del contenedor sharelatex">
    También tendrás que enlazar el contenedor `git-bridge` en el contenedor `sharelatex` y definir las siguientes variables de entorno; presta atención a `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="Autenticación">
    Para autenticar un cliente git, los usuarios necesitan un token de acceso personal (Personal Access Token). Los usuarios pueden gestionar sus tokens de acceso personal desde la interfaz de la aplicación (consulta la documentación):

    <Frame caption="Token de acceso personal de la integración con 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="Supervisión y consideraciones de recursos">
    Te recomendamos supervisar los recursos del host después de habilitar `git-bridge`. El aumento de carga dependerá de:

    * el número de usuarios que acceden a la funcionalidad
    * los tipos de proyectos alojados en tu instancia (los proyectos más grandes suelen consumir más recursos)
  </Step>
</Steps>

### Mover proyectos a S3

La integración con Git almacena en disco un repositorio git completo por cada proyecto que clona un usuario. Si tienes un espacio en disco limitado, puedes activar un trabajo de intercambio (swap) que moverá a AWS S3 los repositorios menos utilizados. Si se vuelve a necesitar un repositorio movido, se devuelve al disco. Las siguientes variables de entorno controlan el trabajo de intercambio:

| Nombre | Descripción |
| - | - |
| `GIT_BRIDGE_SWAPSTORE_TYPE` | Establécela en "s3" para activar el trabajo de intercambio. |
| `GIT_BRIDGE_SWAPSTORE_AWS_ACCESS_KEY` | Tu clave de acceso de AWS |
| `GIT_BRIDGE_SWAPSTORE_AWS_SECRET` | Tu secreto de AWS |
| `GIT_BRIDGE_SWAPSTORE_S3_BUCKET_NAME` | Este bucket contendrá los repositorios git comprimidos |
| `GIT_BRIDGE_SWAPSTORE_AWS_REGION` | La región del bucket |
| `GIT_BRIDGE_SWAPJOB_MIN_PROJECTS` | <p>Cuántos proyectos mantener en disco, como mínimo.<br /><br /><strong>- Por defecto:</strong> 50</p> |
| `GIT_BRIDGE_SWAPJOB_LOW_GIB` | <p>Umbral inferior de intercambio. El trabajo de intercambio moverá proyectos hasta que el uso del disco esté por debajo de este valor.<br /><br /><strong>- Por defecto:</strong> 128 GB</p> |
| `GIT_BRIDGE_SWAPJOB_HIGH_GIB` | <p>Umbral superior de intercambio. El trabajo de intercambio empezará a mover proyectos cuando el uso del disco alcance este valor.<br /><br /><strong>- Por defecto:</strong> 256 GB</p> |
| `GIT_BRIDGE_SWAPJOB_INTERVAL_MILLIS` | <p>El tiempo entre cada comprobación del uso del disco y la ejecución del trabajo de intercambio.<br /><br /><strong>- Por defecto:</strong> 3600000 ms = 1 hora</p> |

### Preguntas y respuestas

<Accordion title="Si comparto mi proyecto con otra persona, ¿cómo funciona el modelo de permisos de Git Bridge?">
  Los usuarios con acceso de solo lectura solo pueden clonar el proyecto; los usuarios con acceso de lectura y escritura pueden clonar y hacer push. Nota: los usuarios deben haber iniciado sesión para unirse al proyecto.
</Accordion>


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