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

# Tích hợp Git

Hiện tại, tích hợp Git chỉ có trên [ayaka-notes/overleaf](https://github.com/ayaka-notes/overleaf).

<Info>
  Tính năng này ban đầu được phát triển bởi [ayaka-notes/overleaf-pro](https://github.com/ayaka-notes/overleaf-pro).
</Info>

<Steps>
  <Step title="Bật git-bridge (chỉ dành cho người dùng Toolkit)">
    Nếu bạn đang dùng Toolkit, hãy bật `git-bridge` bằng cách đặt giá trị sau trong `config/overleaf.rc`:

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

  <Step title="Thêm container git-bridge (chỉ dành cho người dùng Docker-compose)">
    Đối với người dùng chạy tệp `docker-compose.yml` tùy chỉnh, hãy thêm cấu hình container sau vào tệp compose của bạn:

    ```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="Cập nhật cấu hình container sharelatex">
    Bạn cũng cần liên kết container `git-bridge` trong container `sharelatex` và định nghĩa các biến môi trường sau; hãy đặc biệt chú ý đến `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="Xác thực">
    Khi xác thực một git client, người dùng cần có Personal Access Token. Người dùng có thể quản lý Personal Access Token thông qua giao diện ứng dụng (xem tài liệu):

    <Frame caption="Personal Access Token cho tích hợp 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="Giám sát và lưu ý về tài nguyên">
    Chúng tôi khuyên bạn nên giám sát tài nguyên của máy chủ host sau khi bật `git-bridge`. Mức tải tăng thêm sẽ phụ thuộc vào:

    * số lượng người dùng sử dụng tính năng này
    * loại dự án được lưu trữ trên phiên bản của bạn (các dự án lớn hơn thường tiêu tốn nhiều tài nguyên hơn)
  </Step>
</Steps>

### Chuyển (swap) dự án sang S3

Tích hợp Git lưu trữ một kho git hoàn chỉnh trên đĩa cho mỗi dự án được người dùng clone. Nếu dung lượng đĩa có hạn, bạn có thể kích hoạt một tác vụ swap để chuyển các kho ít được sử dụng sang AWS S3. Nếu một kho đã bị swap được cần đến lần nữa, nó sẽ được chuyển trở lại đĩa. Các biến môi trường sau điều khiển tác vụ swap:

| Tên | Mô tả |
| - | - |
| `GIT_BRIDGE_SWAPSTORE_TYPE` | Đặt giá trị này thành "s3" để kích hoạt tác vụ swap. |
| `GIT_BRIDGE_SWAPSTORE_AWS_ACCESS_KEY` | AWS access key của bạn |
| `GIT_BRIDGE_SWAPSTORE_AWS_SECRET` | AWS secret của bạn |
| `GIT_BRIDGE_SWAPSTORE_S3_BUCKET_NAME` | Bucket này sẽ chứa các kho git đã được nén zip |
| `GIT_BRIDGE_SWAPSTORE_AWS_REGION` | Region của bucket |
| `GIT_BRIDGE_SWAPJOB_MIN_PROJECTS` | <p>Số lượng dự án tối thiểu cần giữ trên đĩa.<br /><br /><strong>- Mặc định:</strong> 50</p> |
| `GIT_BRIDGE_SWAPJOB_LOW_GIB` | <p>Ngưỡng thấp cho việc swap. Tác vụ swap sẽ chuyển dự án cho đến khi dung lượng đĩa sử dụng thấp hơn giá trị này.<br /><br /><strong>- Mặc định:</strong> 128 GB</p> |
| `GIT_BRIDGE_SWAPJOB_HIGH_GIB` | <p>Ngưỡng cao cho việc swap. Tác vụ swap sẽ bắt đầu khi dung lượng đĩa sử dụng đạt đến giá trị này.<br /><br /><strong>- Mặc định:</strong> 256 GB</p> |
| `GIT_BRIDGE_SWAPJOB_INTERVAL_MILLIS` | <p>Khoảng thời gian giữa các lần kiểm tra dung lượng đĩa và chạy tác vụ swap.<br /><br /><strong>- Mặc định:</strong> 3600000 ms = 1 giờ</p> |

### Hỏi & Đáp

<Accordion title="Nếu tôi chia sẻ dự án với người khác, mô hình phân quyền của Git Bridge hoạt động như thế nào?">
  Người dùng chỉ có quyền đọc chỉ có thể clone dự án; người dùng có quyền đọc-ghi có thể clone và push dự án. Lưu ý: Người dùng cần đăng nhập để tham gia dự án này.
</Accordion>


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