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

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

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

<Info>
  Эта функция изначально разработана [ayaka-notes/overleaf-pro](https://github.com/ayaka-notes/overleaf-pro).
</Info>

<Steps>
  <Step title="Включение git-bridge (только для пользователей Toolkit)">
    Если вы используете Toolkit, включите `git-bridge`, задав следующий параметр в файле `config/overleaf.rc`:

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

  <Step title="Добавление контейнера git-bridge (только для пользователей Docker-compose)">
    Если вы используете собственный `docker-compose.yml`, добавьте в 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="Обновление конфигурации контейнера sharelatex">
    Также необходимо связать контейнер `git-bridge` с контейнером `sharelatex` и задать следующие переменные окружения. Обратите особое внимание на `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="Аутентификация">
    Для аутентификации git-клиента пользователям нужен персональный токен доступа (Personal Access Token). Пользователи могут управлять персональными токенами доступа через интерфейс приложения (см. документацию):

    <Frame caption="Персональный токен доступа для интеграции с 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="Мониторинг и потребление ресурсов">
    После включения `git-bridge` рекомендуем отслеживать ресурсы хоста. Рост нагрузки будет зависеть от:

    * количества пользователей, использующих эту функцию
    * типов проектов, размещённых в вашем экземпляре (более крупные проекты, как правило, требуют больше ресурсов)
  </Step>
</Steps>

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

Интеграция с Git хранит на диске полный git-репозиторий для каждого проекта, который клонирует пользователь. Если место на диске ограничено, можно включить задание подкачки (swap job), которое будет переносить редко используемые репозитории в 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 ms = 1 час</p> |

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

<Accordion title="Если я поделюсь проектом с другим пользователем, как работает модель прав доступа Git Bridge?">
  Пользователи с доступом только для чтения могут лишь клонировать проект; пользователи с доступом на чтение и запись могут клонировать проект и отправлять в него изменения (push). Примечание: чтобы присоединиться к проекту, пользователям необходимо войти в систему.
</Accordion>


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