> 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/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-клиента пользователям нужен Personal Access Token. Пользователи могут управлять Personal Access Token через интерфейс приложения (см. документацию):

<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 GB</p> |
| `GIT_BRIDGE_SWAPJOB_HIGH_GIB`         | <p>Верхний порог для перемещения. Задача перемещения начнёт переносить проекты, когда использование диска достигнет этого значения.<br><br><strong>- По умолчанию:</strong> 256 GB</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://ayakaleaf-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.
