> ## 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. Користувачі можуть керувати своїми Personal Access Token через інтерфейс застосунку (див. документацію):

    <Frame caption="Personal Access Token для інтеграції з 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, яке переміщуватиме рідше використовувані репозиторії до AWS S3. Якщо перенесений репозиторій знову знадобиться, його буде повернено на диск. Завдання swap керується такими змінними середовища:

| Назва | Опис |
| - | - |
| `GIT_BRIDGE_SWAPSTORE_TYPE` | Установіть значення "s3", щоб активувати завдання swap. |
| `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>Нижній поріг для swap. Завдання переміщуватиме проєкти, доки використання диска не опуститься нижче цього значення.<br /><br /><strong>- За замовчуванням:</strong> 128 GB</p> |
| `GIT_BRIDGE_SWAPJOB_HIGH_GIB` | <p>Верхній поріг для swap. Завдання почне переміщення, коли використання диска досягне цього значення.<br /><br /><strong>- За замовчуванням:</strong> 256 GB</p> |
| `GIT_BRIDGE_SWAPJOB_INTERVAL_MILLIS` | <p>Інтервал між перевірками використання диска та запусками завдання swap.<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.