> For the complete documentation index, see [llms.txt](https://ayakaleaf-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://ayakaleaf-pro.ayaka.space/on-premises/pt/configuracao/overleaf-toolkit/git-integration.md).

# integração com o Git

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

{% hint style="info" %}
Esta funcionalidade foi inicialmente desenvolvida por [ayaka-notes/overleaf-pro](https://github.com/ayaka-notes/overleaf-pro).
{% endhint %}

{% stepper %}
{% step %}

### Ativar o git-bridge (apenas para utilizadores do Toolkit)

Se estiver a usar o Toolkit, ative o `git-bridge` definindo o seguinte no seu `config/overleaf.rc`:

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

```
GIT_BRIDGE_ENABLED=true
```

{% endcode %}
{% endstep %}

{% step %}

### Adicionar o contentor git-bridge (apenas para utilizadores do Docker Compose)

Para utilizadores que executam uma `docker-compose.yml`, adicione a seguinte configuração de contentor ao seu ficheiro compose:

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

```yaml
git-bridge:
    restart: always
    image: quay.io/sharelatex/git-bridge:4.0.0 # a tag deve corresponder à tag do contentor `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/" para a versão 4.1.6 e anteriores
        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 %}

### Atualizar a configuração do contentor sharelatex

Também terá de ligar o `git-bridge` contentor no `sharelatex` contentor e definir as seguintes variáveis de ambiente; por favor, preste atenção a `V1_HISTORY_URL`:

<pre class="language-yaml" data-title="docker-compose.yml (serviço sharelatex)"><code class="lang-yaml">sharelatex:
    links:
        - git-bridge
    environment:
         GIT_BRIDGE_ENABLED: true
         GIT_BRIDGE_HOST: "git-bridge"
         GIT_BRIDGE_PORT: "8000"
<strong>         # Estamos a usar v1 agora; se costumava definir V1_HISTORY_URL, atualize-o agora
</strong><strong>         V1_HISTORY_URL: "http://sharelatex:3054"
</strong></code></pre>

{% endstep %}

{% step %}

### Autenticação

Ao autenticar um cliente git, os utilizadores precisam de um Token de Acesso Pessoal. Os utilizadores podem gerir Tokens de Acesso Pessoal através da interface da aplicação (consulte a documentação):

<figure><img src="/files/1d680ac96867fa2d3d4ea741c90004bc91b54f3e" alt=""><figcaption><p>Token de Acesso Pessoal da Integração Git</p></figcaption></figure>
{% endstep %}

{% step %}

### Monitorização e considerações sobre recursos

Recomendamos que monitorize os recursos do seu anfitrião após ativar o `git-bridge`. O aumento da carga dependerá de:

* o número de utilizadores que acedem à funcionalidade
* os tipos de projetos alojados na sua instância (os projetos maiores são geralmente mais exigentes em termos de recursos)
  {% endstep %}
  {% endstepper %}

### Trocar projetos para o S3

A integração Git armazena um repositório git completo no disco para cada projeto que é clonado por um utilizador. Se tiver espaço em disco limitado, pode ativar um job de swap que moverá para o AWS S3 os repositórios menos utilizados. Se um repositório trocado for novamente necessário, é 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 isto como "s3" para ativar o job de swap.                                                                                                                      |
| `GIT_BRIDGE_SWAPSTORE_AWS_ACCESS_KEY` | A sua chave de acesso AWS                                                                                                                                             |
| `GIT_BRIDGE_SWAPSTORE_AWS_SECRET`     | O seu segredo AWS                                                                                                                                                     |
| `GIT_BRIDGE_SWAPSTORE_S3_BUCKET_NAME` | Este bucket conterá os repositórios git comprimidos                                                                                                                   |
| `GIT_BRIDGE_SWAPSTORE_AWS_REGION`     | A região do bucket                                                                                                                                                    |
| `GIT_BRIDGE_SWAPJOB_MIN_PROJECTS`     | <p>Quantos projetos manter no disco, no mínimo.<br><br><strong>- Predefinição:</strong> 50</p>                                                                        |
| `GIT_BRIDGE_SWAPJOB_LOW_GIB`          | <p>Limiar inferior para a troca. O job de swap moverá projetos até a utilização do disco ficar abaixo deste valor.<br><br><strong>- Predefinição:</strong> 128 GB</p> |
| `GIT_BRIDGE_SWAPJOB_HIGH_GIB`         | <p>Limiar superior para a troca. O job de swap começará a trocar quando a utilização do disco atingir este valor.<br><br><strong>- Predefinição:</strong> 256 GB</p>  |
| `GIT_BRIDGE_SWAPJOB_INTERVAL_MILLIS`  | <p>A quantidade de tempo entre verificar a utilização do disco e executar o job de swap.<br><br><strong>- Predefinição:</strong> 3600000 ms = 1 hora</p>              |

### Perguntas e Respostas

<details>

<summary>Se eu partilhar o meu projeto com outra pessoa, como funciona o modelo de permissões do Git Bridge?</summary>

Os utilizadores com acesso só de leitura só podem clonar este projeto; os utilizadores com acesso de leitura e escrita podem clonar e fazer push de projetos. Nota: os utilizadores precisam de ter sessão iniciada para aderir a este projeto.

</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://ayakaleaf-pro.ayaka.space/on-premises/pt/configuracao/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.
