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

# Integrazione Git

Al momento l'integrazione Git è disponibile solo in [ayaka-notes/overleaf](https://github.com/ayaka-notes/overleaf).

<Info>
  Questa funzionalità è stata sviluppata inizialmente da [ayaka-notes/overleaf-pro](https://github.com/ayaka-notes/overleaf-pro).
</Info>

<Steps>
  <Step title="Abilitare il git-bridge (solo per gli utenti del Toolkit)">
    Se usi il Toolkit, abilita il `git-bridge` impostando quanto segue nel tuo `config/overleaf.rc`:

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

  <Step title="Aggiungere il container git-bridge (solo per gli utenti di Docker-compose)">
    Per gli utenti che usano un `docker-compose.yml` personalizzato, aggiungi la seguente configurazione del container al tuo file 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="Aggiornare la configurazione del container sharelatex">
    Dovrai anche collegare il container `git-bridge` nel container `sharelatex` e definire le seguenti variabili d'ambiente; presta attenzione 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="Autenticazione">
    Per autenticare un client git, gli utenti hanno bisogno di un Personal Access Token. Gli utenti possono gestire i Personal Access Token tramite l'interfaccia dell'applicazione (consulta la documentazione):

    <Frame caption="Personal Access Token per l'integrazione 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="Monitoraggio e considerazioni sulle risorse">
    Ti consigliamo di monitorare le risorse dell'host dopo aver abilitato il `git-bridge`. L'aumento del carico dipenderà da:

    * il numero di utenti che accedono alla funzionalità
    * i tipi di progetti ospitati nella tua istanza (i progetti più grandi richiedono generalmente più risorse)
  </Step>
</Steps>

### Spostare i progetti su S3 (swap)

L'integrazione Git memorizza su disco un repository git completo per ogni progetto clonato da un utente. Se hai uno spazio su disco limitato, puoi attivare un job di swap che sposterà su AWS S3 i repository meno usati. Se un repository spostato serve di nuovo, viene riportato su disco. Le seguenti variabili d'ambiente controllano il job di swap:

| Nome | Descrizione |
| - | - |
| `GIT_BRIDGE_SWAPSTORE_TYPE` | Impostala su "s3" per attivare il job di swap. |
| `GIT_BRIDGE_SWAPSTORE_AWS_ACCESS_KEY` | La tua access key AWS |
| `GIT_BRIDGE_SWAPSTORE_AWS_SECRET` | Il tuo secret AWS |
| `GIT_BRIDGE_SWAPSTORE_S3_BUCKET_NAME` | Questo bucket conterrà i repository git compressi in zip |
| `GIT_BRIDGE_SWAPSTORE_AWS_REGION` | La regione del bucket |
| `GIT_BRIDGE_SWAPJOB_MIN_PROJECTS` | <p>Numero minimo di progetti da mantenere su disco.<br /><br /><strong>- Predefinito:</strong> 50</p> |
| `GIT_BRIDGE_SWAPJOB_LOW_GIB` | <p>Soglia inferiore per lo swap. Il job di swap sposterà i progetti finché l'utilizzo del disco non scende sotto questo valore.<br /><br /><strong>- Predefinito:</strong> 128 GB</p> |
| `GIT_BRIDGE_SWAPJOB_HIGH_GIB` | <p>Soglia superiore per lo swap. Il job di swap inizierà a spostare i progetti quando l'utilizzo del disco raggiunge questo valore.<br /><br /><strong>- Predefinito:</strong> 256 GB</p> |
| `GIT_BRIDGE_SWAPJOB_INTERVAL_MILLIS` | <p>Intervallo di tempo tra un controllo dell'utilizzo del disco e l'esecuzione del job di swap.<br /><br /><strong>- Predefinito:</strong> 3600000 ms = 1 ora</p> |

### Domande e risposte

<Accordion title="Se condivido il mio progetto con qualcun altro, come funziona il modello di permessi del Git Bridge?">
  Gli utenti con accesso in sola lettura possono solo clonare il progetto; gli utenti con accesso in lettura e scrittura possono clonare ed eseguire il push dei progetti. Nota: gli utenti devono aver effettuato l'accesso per unirsi al progetto.
</Accordion>


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