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

# Integrasi Git

Integrasi Git saat ini hanya tersedia di [ayaka-notes/overleaf](https://github.com/ayaka-notes/overleaf).

<Info>
  Fitur ini awalnya dikembangkan oleh [ayaka-notes/overleaf-pro](https://github.com/ayaka-notes/overleaf-pro).
</Info>

<Steps>
  <Step title="Aktifkan git-bridge (Hanya untuk pengguna Toolkit)">
    Jika Anda menggunakan Toolkit, aktifkan `git-bridge` dengan mengatur hal berikut di `config/overleaf.rc` Anda:

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

  <Step title="Tambahkan container git-bridge (Hanya untuk pengguna Docker-compose)">
    Bagi pengguna yang menjalankan `docker-compose.yml` kustom, tambahkan konfigurasi container berikut ke file compose Anda:

    ```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="Perbarui konfigurasi container sharelatex">
    Anda juga perlu menautkan container `git-bridge` di container `sharelatex` dan mendefinisikan variabel lingkungan berikut, harap perhatikan `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="Autentikasi">
    Saat mengautentikasi klien git, pengguna memerlukan Personal Access Token. Pengguna dapat mengelola Personal Access Token melalui UI aplikasi (lihat dokumentasi):

    <Frame caption="Personal Access Token Integrasi 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="Pemantauan dan pertimbangan sumber daya">
    Kami menyarankan Anda memantau sumber daya host setelah mengaktifkan `git-bridge`. Peningkatan beban akan bergantung pada:

    * jumlah pengguna yang mengakses fitur ini
    * jenis proyek yang di-host di instans Anda (proyek yang lebih besar umumnya lebih banyak menggunakan sumber daya)
  </Step>
</Steps>

### Memindahkan (swap) proyek ke S3

Integrasi Git menyimpan repositori git lengkap di disk untuk setiap proyek yang di-clone oleh pengguna. Jika ruang disk Anda terbatas, Anda dapat mengaktifkan swap job yang akan memindahkan repositori yang jarang digunakan ke AWS S3. Jika repositori yang telah di-swap dibutuhkan lagi, repositori tersebut akan dipindahkan kembali ke disk. Variabel lingkungan berikut mengontrol swap job:

| Nama | Deskripsi |
| - | - |
| `GIT_BRIDGE_SWAPSTORE_TYPE` | Atur ke "s3" untuk mengaktifkan swap job. |
| `GIT_BRIDGE_SWAPSTORE_AWS_ACCESS_KEY` | Access key AWS Anda |
| `GIT_BRIDGE_SWAPSTORE_AWS_SECRET` | Secret AWS Anda |
| `GIT_BRIDGE_SWAPSTORE_S3_BUCKET_NAME` | Bucket ini akan berisi repositori git yang telah di-zip |
| `GIT_BRIDGE_SWAPSTORE_AWS_REGION` | Region bucket |
| `GIT_BRIDGE_SWAPJOB_MIN_PROJECTS` | <p>Jumlah minimum proyek yang disimpan di disk.<br /><br /><strong>- Default:</strong> 50</p> |
| `GIT_BRIDGE_SWAPJOB_LOW_GIB` | <p>Batas bawah untuk swapping. Swap job akan memindahkan proyek hingga penggunaan disk berada di bawah nilai ini.<br /><br /><strong>- Default:</strong> 128 GB</p> |
| `GIT_BRIDGE_SWAPJOB_HIGH_GIB` | <p>Batas atas untuk swapping. Swap job akan mulai melakukan swapping saat penggunaan disk mencapai nilai ini.<br /><br /><strong>- Default:</strong> 256 GB</p> |
| `GIT_BRIDGE_SWAPJOB_INTERVAL_MILLIS` | <p>Jeda waktu antara pemeriksaan penggunaan disk dan menjalankan swap job.<br /><br /><strong>- Default:</strong> 3600000 ms = 1 jam</p> |

### Tanya Jawab

<Accordion title="Jika saya membagikan proyek saya kepada orang lain, bagaimana model izin Git Bridge bekerja?">
  Pengguna dengan akses baca saja hanya dapat melakukan clone proyek ini; pengguna dengan akses baca-tulis dapat melakukan clone dan push proyek. Catatan: Pengguna harus login untuk bergabung ke proyek ini.
</Accordion>


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