> For the complete documentation index, see [llms.txt](https://help.genesis.autify.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.genesis.autify.com/features-ja/resources-context/github-integration.md).

# GitHub連携

本記事では、**GitHub連携** 機能について説明します。GitHub リポジトリを接続することで、選択したリポジトリのコードを自動または手動で同期し、AI がコードの内容を参照しながら質問への回答やワークフローを実行できるようになります。

## 前提条件

| 操作                                | 必要な権限                   |
| --------------------------------- | ----------------------- |
| 組織の GitHub アカウントを接続・切断する          | 管理者 / オーナー              |
| このワークスペースで使う GitHub アカウントを選択・変更する | 管理者 / オーナー              |
| 承認済みリポジトリを選択・変更する                 | ワークスペース管理者 / 管理者 / オーナー |
| 同期対象ブランチを変更する                     | ワークスペース管理者 / 管理者 / オーナー |
| 手動同期を実行する                         | ワークスペース管理者 / 管理者 / オーナー |
| 同期設定を変更する                         | ワークスペース管理者 / 管理者 / オーナー |

GitHub アカウントの接続は **設定** > **アプリ** で行います。管理者またはオーナーがアカウントを接続し、GitHub 側でリポジトリを承認すると、各ワークスペースはその承認済みリストから選択できます。

## GitHub リポジトリを接続する

<figure><img src="/files/gcgLiVQrdCKyIbRP9tjP" alt="GitHub リポジトリの接続画面のスクリーンショット"><figcaption><p>GitHub リポジトリの接続画面</p></figcaption></figure>

1. 組織でまだ GitHub を接続していない場合は、管理者またはオーナーに **設定** > **アプリ** で GitHub アカウントを接続してもらいます。
2. ワークスペースページで **リソース** を選択します。
3. **コードベース** を選択します。
4. 利用可能な接続済みアカウントが複数あり、あなたが管理者またはオーナーである場合は、 **GitHub アカウント** で使用するアカウントを選択します。
5. **リポジトリを選択** をクリックします。
6. 承認済みリストから同期するリポジトリを選択します。
7. **変更を保存** をクリックします。

## リポジトリを選択・変更する

管理者またはオーナーがワークスペースの **GitHub アカウント** を選択した後は、ワークスペース管理者も承認済みリポジトリの追加・変更ができます。リポジトリの選択を外すと、そのリポジトリに対応するコードベースは自動的に削除されます。

<figure><img src="/files/ljw3a0ROwJ7vlQcJGPnG" alt="リポジトリ選択画面のスクリーンショット"><figcaption><p>リポジトリ選択画面</p></figcaption></figure>

1. ワークスペースページで **リソース** を選択します。
2. **コードベース** を選択します。
3. このワークスペースで別の GitHub アカウントが必要な場合は、先に管理者またはオーナーに **GitHub アカウント** を変更してもらいます。
4. **選択されたリポジトリ** セクションの **編集** をクリックします。
5. 承認済みリストから同期するリポジトリを選択または選択解除します。
6. **変更を保存** をクリックします。

必要なリポジトリが一覧に表示されない場合は、管理者またはオーナーに **設定** > **アプリ** で追加してもらってください。

## 同期対象のブランチを変更する

接続済みのリポジトリごとに、同期するブランチを変更できます。指定しない場合はリポジトリのデフォルトブランチが同期されます。

<figure><img src="/files/3PWLq3ZQr6JQcGwAA510" alt="ブランチセレクターのスクリーンショット"><figcaption><p>ブランチセレクター</p></figcaption></figure>

1. ワークスペースページで **リソース** を選択します。
2. **コードベース** を選択します。
3. **選択されたリポジトリ** セクションで、対象リポジトリの行に表示されている現在のブランチ名のボタンをクリックします。
4. 一覧から同期したいブランチを選択します。検索ボックスにブランチ名を入力して絞り込めます。

## 手動で同期する

GitHub リポジトリの内容を手動で最新状態に更新します。

<figure><img src="/files/A49yWNPkz51ny9BmEGrA" alt="手動同期ボタンのスクリーンショット"><figcaption><p>手動同期ボタン</p></figcaption></figure>

1. ワークスペースページで **リソース** を選択します。
2. **コードベース** を選択します。
3. GitHub カードの **同期** をクリックします。

## 同期設定を変更する

手動同期に加え、プッシュ / コミットイベントに連動した同期や、スケジュールに沿った定期同期を設定できます。

<figure><img src="/files/hmlPHJZ7Bb4yE4SPADRC" alt="同期設定ダイアログのスクリーンショット"><figcaption><p>同期設定ダイアログ</p></figcaption></figure>

1. ワークスペースページで **リソース** を選択します。
2. **コードベース** を選択します。
3. **同期設定** セクションの **設定** をクリックします。
4. 同期タイミングを選択します。
   * **手動同期**: 手動でトリガーした場合のみ同期します。
   * **プッシュ / コミット時に同期をトリガー**: 選択したブランチにコードがプッシュされたときに自動的に同期します。
   * **自動同期を有効にする**: 指定した頻度・時刻で定期的に同期します。**頻度**（毎日 / 毎週 / 毎月）と **時刻** を指定し、**毎週** の場合は **曜日**、**毎月** の場合は **日付** も合わせて指定します。
5. **保存** をクリックします。

## GitHub を切断する

GitHub を切断すると、組織で接続している GitHub アカウントが削除されます。そのアカウントを使っているすべてのワークスペースで選択済みリポジトリへのアクセスが失われ、同期済みコードベースも削除されます。1 つのワークスペースだけで利用を止めたい場合は、 **選択されたリポジトリ** から対象リポジトリを外してください。

1. **設定** > **アプリ** を開きます。
2. 接続を解除したい GitHub アカウントの行で **接続を解除** をクリックします。
3. 確認ダイアログで **接続を解除** をクリックして実行します。

## トラブルシューティング

### GitHub 連携のエラー

| 状況                                      | 原因                                                 | 対処方法                                                                                                       |
| --------------------------------------- | -------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
| ワークスペースに GitHub が未接続と表示される              | 組織レベルで GitHub アカウントが接続されていない                       | 管理者またはオーナーに **設定** > **アプリ** で GitHub を接続してもらってください                                                        |
| コードベースに **GitHub へのアクセスが失効しました** と表示される | GitHub App がアンインストールされた、停止された、または接続アカウントを参照できなくなった | 最後に成功した同期内容は **古い可能性** ラベル付きで引き続き表示されます。管理者またはオーナーに **設定** > **アプリ** で再接続してもらい、その後 **同期** を実行してください        |
| **このリポジトリへの GitHub アクセスが失効しました** と表示される | リポジトリがリネーム・移管・削除された、または GitHub App や承認済みリストから外れた   | 最後に成功した同期内容は **古い可能性** ラベル付きで引き続き参照できます。管理者またはオーナーにリポジトリの再承認またはアカウント見直しを依頼し、改めてリポジトリを選択して **同期** を実行してください |
| **GitHubを接続** からの認証でエラーになる              | GitHub アカウントの権限不足、またはアクセスが拒否された                    | GitHub アカウントの権限を確認し、再度接続を試みてください                                                                           |
| **リクエストが GitHub に到達していません** と表示される      | プロキシやファイアウォールなどのネットワーク機器が GitHub の代わりに応答した         | アクセス失効ではない可能性があります。GitHub API への外向き通信を確認し、ネットワーク設定を見直してから **同期** を再実行してください                                |
| 「リポジトリの同期に失敗しました」と表示される                 | ネットワークエラーまたは GitHub API の一時的な障害                    | **同期** を再度クリックして手動同期を試みてください                                                                               |
| 同期が既に進行中というメッセージが表示される                  | 別の同期処理が実行中                                         | 現在の同期が完了するまで待ってから再試行してください                                                                                 |
| 「GitHub インストールの読み込みに失敗しました」と表示される       | GitHub 連携情報の取得に失敗した                                | ページを再読み込みしてください。解消しない場合は、管理者またはオーナーに **設定** > **アプリ** で GitHub の再接続を依頼してください                               |
| 「コードアーカイブの削除に失敗しました」と表示される              | 削除処理中にエラーが発生した                                     | ページを再読み込みして再度試みてください                                                                                       |
| 「ブランチを読み込めませんでした」と表示される                 | リポジトリのブランチ一覧の取得に失敗した                               | ページを再読み込みしてください。解消しない場合は GitHub を一度切断して再接続してください                                                           |
| 「ブランチを変更できませんでした」と表示される                 | ネットワークエラーまたはサーバーの一時的な障害                            | しばらく待ってから再度試みてください                                                                                         |
