> ## 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 を使用している場合は、`config/overleaf.rc` で次のように設定して `git-bridge` を有効にします。

    ```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 コンテナの設定を更新する">
    また、`sharelatex` コンテナで `git-bridge` コンテナをリンクし、次の環境変数を定義する必要があります。`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 クライアントを認証する際、ユーザーにはパーソナルアクセストークンが必要です。ユーザーはアプリケーションの UI からパーソナルアクセストークンを管理できます（ドキュメントを参照してください）。

    <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 リポジトリがディスク上に保存されます。ディスク容量が限られている場合は、あまり使用されていないリポジトリを 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> |

### Q\&A

<Accordion title="プロジェクトを他の人と共有した場合、Git Bridge の権限モデルはどのように機能しますか？">
  読み取り専用アクセス権を持つユーザーはこのプロジェクトをクローンすることしかできません。読み書きアクセス権を持つユーザーはプロジェクトをクローンおよびプッシュできます。注：このプロジェクトに参加するには、ユーザーがログインしている必要があります。
</Accordion>


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