> 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/ru/konfiguraciya/overleaf-toolkit/git-integration.md).

# Интеграция с Git

Интеграция с Git доступна только в [ayaka-notes/overleaf](https://github.com/ayaka-notes/overleaf) сейчас.

{% hint style="info" %}
Эта функция изначально разработана [ayaka-notes/overleaf-pro](https://github.com/ayaka-notes/overleaf-pro).
{% endhint %}

{% stepper %}
{% step %}

### Включите git-bridge (только для пользователей Toolkit)

Если вы используете Toolkit, включите `git-bridge` задав следующее в вашем `config/overleaf.rc`:

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

```
GIT_BRIDGE_ENABLED=true
```

{% endcode %}
{% endstep %}

{% step %}

### Добавьте контейнер git-bridge (только для пользователей Docker Compose)

Для пользователей, использующих собственный `docker-compose.yml`, добавьте следующую конфигурацию контейнера в ваш compose-файл:

{% code title="docker-compose.yml (сервис git-bridge)" overflow="wrap" %}

```yaml
git-bridge:
    restart: always
    image: quay.io/sharelatex/git-bridge:4.0.0 # тег должен совпадать с тегом контейнера `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/" для версии 4.1.6 и более ранних
        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 %}

### Обновите конфигурацию контейнера sharelatex

Вам также нужно будет подключить `git-bridge` контейнер в `sharelatex` контейнере и задать следующие переменные окружения; пожалуйста, обратите внимание на `V1_HISTORY_URL`:

<pre class="language-yaml" data-title="docker-compose.yml (сервис sharelatex)"><code class="lang-yaml">sharelatex:
    links:
        - git-bridge
    environment:
         GIT_BRIDGE_ENABLED: true
         GIT_BRIDGE_HOST: "git-bridge"
         GIT_BRIDGE_PORT: "8000"
<strong>         # Сейчас мы используем v1; если вы ранее задавали V1_HISTORY_URL, пожалуйста, обновите это сейчас
</strong><strong>         V1_HISTORY_URL: "http://sharelatex:3054"
</strong></code></pre>

{% endstep %}

{% step %}

### Аутентификация

При аутентификации Git-клиента пользователям нужен персональный токен доступа. Пользователи могут управлять персональными токенами доступа через интерфейс приложения (см. документацию):

<figure><img src="/files/084648ec595a9abd56f6fc0fbbf97c62d19211ae" alt=""><figcaption><p>Персональный токен доступа для интеграции Git</p></figcaption></figure>
{% endstep %}

{% step %}

### Мониторинг и вопросы ресурсов

Мы рекомендуем вам отслеживать ресурсы хоста после включения `git-bridge`. Увеличение нагрузки будет зависеть от:

* количества пользователей, обращающихся к этой функции
* типов проектов, размещённых в вашем экземпляре (более крупные проекты, как правило, требуют больше ресурсов)
  {% endstep %}
  {% endstepper %}

### Перенос проектов в S3

Интеграция с Git хранит на диске полный git-репозиторий для каждого проекта, который клонирует пользователь. Если у вас мало дискового пространства, вы можете включить задачу переноса, которая будет перемещать менее используемые репозитории в AWS S3. Если перенесённый репозиторий снова понадобится, он будет возвращён на диск. Следующие переменные окружения управляют задачей переноса:

| Имя                                   | Описание                                                                                                                                                                           |
| ------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `GIT_BRIDGE_SWAPSTORE_TYPE`           | Установите значение "s3", чтобы включить задачу переноса.                                                                                                                          |
| `GIT_BRIDGE_SWAPSTORE_AWS_ACCESS_KEY` | Ваш ключ доступа AWS                                                                                                                                                               |
| `GIT_BRIDGE_SWAPSTORE_AWS_SECRET`     | Ваш секретный ключ AWS                                                                                                                                                             |
| `GIT_BRIDGE_SWAPSTORE_S3_BUCKET_NAME` | В этом бакете будут храниться архивированные git-репозитории                                                                                                                       |
| `GIT_BRIDGE_SWAPSTORE_AWS_REGION`     | Регион бакета                                                                                                                                                                      |
| `GIT_BRIDGE_SWAPJOB_MIN_PROJECTS`     | <p>Минимальное количество проектов, которое нужно хранить на диске.<br><br><strong>- По умолчанию:</strong> 50</p>                                                                 |
| `GIT_BRIDGE_SWAPJOB_LOW_GIB`          | <p>Нижний порог для переноса. Задача переноса будет перемещать проекты, пока использование диска не станет ниже этого значения.<br><br><strong>- По умолчанию:</strong> 128 ГБ</p> |
| `GIT_BRIDGE_SWAPJOB_HIGH_GIB`         | <p>Верхний порог для переноса. Задача переноса начнёт перемещение, когда использование диска достигнет этого значения.<br><br><strong>- По умолчанию:</strong> 256 ГБ</p>          |
| `GIT_BRIDGE_SWAPJOB_INTERVAL_MILLIS`  | <p>Интервал времени между проверкой использования диска и запуском задачи переноса.<br><br><strong>- По умолчанию:</strong> 3600000 мс = 1 час</p>                                 |

### Вопросы и ответы

<details>

<summary>Если я делюсь своим проектом с кем-то ещё, как работает модель прав Git Bridge?</summary>

Пользователи с доступом только для чтения могут только клонировать этот проект; пользователи с доступом на чтение и запись могут клонировать проекты и отправлять изменения. Примечание: пользователи должны войти в систему, чтобы присоединиться к этому проекту.

</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/ru/konfiguraciya/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.
