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

# Integração com Git

A integração com Git está disponível atualmente apenas em [ayaka-notes/overleaf](https://github.com/ayaka-notes/overleaf).

<Info>
  Este recurso foi desenvolvido inicialmente por [ayaka-notes/overleaf-pro](https://github.com/ayaka-notes/overleaf-pro).
</Info>

<Steps>
  <Step title="Ativar o git-bridge (apenas para usuários do Toolkit)">
    Se você estiver usando o Toolkit, ative o `git-bridge` definindo o seguinte em seu `config/overleaf.rc`:

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

  <Step title="Adicionar o contêiner git-bridge (apenas para usuários do Docker-compose)">
    Para usuários que executam um `docker-compose.yml` personalizado, adicione a seguinte configuração de contêiner ao seu arquivo 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="Atualizar a configuração do contêiner sharelatex">
    Você também precisará vincular o contêiner `git-bridge` ao contêiner `sharelatex` e definir as seguintes variáveis de ambiente; preste atenção 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="Autenticação">
    Ao autenticar um cliente git, os usuários precisam de um Personal Access Token. Os usuários podem gerenciar Personal Access Tokens pela interface da aplicação (consulte a documentação):

    <Frame caption="Personal Access Token da integração com 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="Monitoramento e considerações sobre recursos">
    Recomendamos monitorar os recursos do seu host depois de ativar o `git-bridge`. O aumento de carga dependerá de:

    * o número de usuários que acessam o recurso
    * os tipos de projetos hospedados na sua instância (projetos maiores geralmente consomem mais recursos)
  </Step>
</Steps>

### Transferência (swap) de projetos para o S3

A integração com Git armazena em disco um repositório git completo para cada projeto clonado por um usuário. Se você tiver espaço em disco limitado, pode ativar um job de swap que moverá os repositórios menos usados para o AWS S3. Se um repositório transferido for necessário novamente, ele será movido de volta para o disco. As seguintes variáveis de ambiente controlam o job de swap:

| Nome | Descrição |
| - | - |
| `GIT_BRIDGE_SWAPSTORE_TYPE` | Defina como "s3" para ativar o job de swap. |
| `GIT_BRIDGE_SWAPSTORE_AWS_ACCESS_KEY` | Sua chave de acesso da AWS |
| `GIT_BRIDGE_SWAPSTORE_AWS_SECRET` | Seu segredo da AWS |
| `GIT_BRIDGE_SWAPSTORE_S3_BUCKET_NAME` | Este bucket conterá os repositórios git compactados |
| `GIT_BRIDGE_SWAPSTORE_AWS_REGION` | A região do bucket |
| `GIT_BRIDGE_SWAPJOB_MIN_PROJECTS` | <p>Quantos projetos manter em disco, no mínimo.<br /><br /><strong>- Padrão:</strong> 50</p> |
| `GIT_BRIDGE_SWAPJOB_LOW_GIB` | <p>Limite inferior para o swap. O job de swap moverá projetos até que o uso do disco fique abaixo desse valor.<br /><br /><strong>- Padrão:</strong> 128 GB</p> |
| `GIT_BRIDGE_SWAPJOB_HIGH_GIB` | <p>Limite superior para o swap. O job de swap começará a transferir quando o uso do disco atingir esse valor.<br /><br /><strong>- Padrão:</strong> 256 GB</p> |
| `GIT_BRIDGE_SWAPJOB_INTERVAL_MILLIS` | <p>O intervalo de tempo entre as verificações de uso do disco e a execução do job de swap.<br /><br /><strong>- Padrão:</strong> 3600000 ms = 1 hora</p> |

### Perguntas e respostas

<Accordion title="Se eu compartilhar meu projeto com outra pessoa, como funciona o modelo de permissões do Git Bridge?">
  Usuários com acesso somente leitura podem apenas clonar este projeto; usuários com acesso de leitura e gravação podem clonar e fazer push nos projetos. Observação: os usuários precisam estar logados para participar deste projeto.
</Accordion>


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