OpenAI
このページは機械翻訳されています。元の英語の記事を表示

ChatGPT での GitHub Enterprise アプリテンプレート設定

ワークスペース管理者が、organization 独自の GitHub App を使用して ChatGPT で GitHub Enterprise アプリテンプレートを設定する方法を説明します。

更新日: 7 days ago

概要

ChatGPT ワークスペース管理者として、organization 向けに GitHub Enterprise アプリテンプレートを設定する場合は、このガイドを使用してください。テンプレートは、メンバーが使用する最終的なアプリではありません。必要な GitHub Enterprise 設定を指定した後、ワークスペース固有のドラフトアプリを作成する設定フローです。

GitHub Enterprise では、設定により ChatGPT が organization の GitHub Enterprise ホストに接続されます。GitHub App を作成し、ChatGPT コールバック URL を登録して認証情報を生成してから、それらの値を ChatGPT テンプレート設定フローに貼り付けます。ChatGPT がドラフトアプリを作成した後は、他のワークスペースアプリと同様に公開、管理できます。

設定する内容

ChatGPT で、ワークスペース固有の GitHub Enterprise アプリを作成します。アプリは以下を使用します。

  • GitHub Enterprise ホストに登録された GitHub App

  • ユーザーの OAuth 承認に使用する GitHub App のクライアント ID とクライアントシークレット

  • ChatGPT がリポジトリ操作用のインストールトークンを発行できるようにする GitHub App の秘密鍵

  • GitHub Enterprise がインストールイベントとリポジトリイベントを ChatGPT に返送できるようにする webhook シークレットと webhook URL

  • github.example.com などの GitHub Enterprise ホスト名

スタンドアロンの GitHub OAuth App ではなく、GitHub App を作成してください。ChatGPT テンプレート設定には、GitHub App の認証情報、秘密鍵、webhook 設定が必要です。

始める前に

必要なもの:

  • ChatGPT ワークスペース管理者またはオーナーのアクセス権

  • GitHub Apps を作成およびインストールできる GitHub Enterprise 管理者または organization オーナーのアクセス権

  • https:// やパスを含まない GitHub Enterprise ホスト名のみ

  • 読み取り専用のリポジトリ検索、プルリクエストワークフロー、issue ワークフロー、ファイル編集、GitHub Actions、より広範な Codex ワークフローなど、ChatGPT がサポートすべきリポジトリアクションに関する決定

  • GitHub App の秘密鍵とクライアントシークレットを扱う安全な場所

ChatGPT と GitHub Enterprise を別々のタブで開いたままにします。コールバック URL を独自に作成しないでください。ChatGPT に表示される正確なコールバック URL をコピーします。

準備する値

  • GitHub Enterprise ホスト名: 例: github.example.com

  • コールバック URL: ChatGPT テンプレート設定フローからコピーします。

  • GitHub App クライアント ID

  • GitHub App クライアントシークレット

  • GitHub App 秘密鍵 PEM

  • ChatGPT が生成した webhook シークレット

  • ChatGPT でドラフトアプリが作成された後に生成される webhook URL

ChatGPT でのテンプレート設定開始

  1. ChatGPT で、アプリを利用可能にするワークスペースに切り替えます。

  2. ワークスペース設定 > アプリを開きます。

  3. ディレクトリを選択します。

  4. GitHub Enterprise を検索します。

  5. GitHub Enterprise アプリテンプレートを選択し、設定を開始します。

  6. GitHub Enterprise や GitHub Enterprise - Engineering など、わかりやすいアプリ名と説明を入力します。

  7. github.example.com などの GitHub Enterprise ホスト名を入力します。

  8. ChatGPT に表示されるコールバック URL をコピーします。このタブは開いたままにします。

  9. 設定中に生成された webhook シークレットが表示された場合はコピーします。

コールバック URL の例: https://chatgpt.com/connector/oauth/<callback_id>

コールバック ID を削除したり、末尾にスラッシュを追加したり、汎用的な ChatGPT URL に置き換えたりしないでください。

GitHub Enterprise での GitHub App 作成

  1. https://github.example.com など、自分の GitHub Enterprise ホストを開きます。

  2. アプリの所有者となる organization またはアカウントに移動します。

  3. Settings > Developer settings > GitHub Apps を開きます。

  4. New GitHub App を選択します。

  5. ChatGPT GitHub Enterprise Connector など、わかりやすいアプリ名を入力します。

  6. ホームページ URL を入力します。専用の社内ページがない場合は、GitHub Enterprise organization の URL を使用します。

  7. Callback URL に、ChatGPT からコピーした正確なコールバック URL を貼り付けます。

  8. セキュリティチームに変更する明確な理由がない限り、Expire user authorization tokens は有効のままにします。

  9. インストールまたは接続フロー中にユーザーがアプリを承認できるよう、Request user authorization during installation を有効にします。

  10. Where can this GitHub App be installed? の項目で、展開範囲に合う最も限定的なオプションを選択します。

  11. GitHub App を作成します。

権限とイベントの設定

有効にする予定の ChatGPT アクションに必要な最小限の権限を選択します。

読み取り専用のリポジトリ検出と Q&A では、次のような読み取り権限から始めます。

  • Metadata: 読み取り専用。GitHub Apps では GitHub が metadata を必要とします。

  • Contents: ファイルとリポジトリのコンテンツアクセス用に読み取り専用。

  • Issues: issue 検索または issue の読み取りが必要な場合は読み取り専用。

  • Pull requests: プルリクエスト検索またはレビューコンテキストが必要な場合は読み取り専用。

  • Actions: workflow run のステータス、ジョブ、ログ、artifact が必要な場合は読み取り専用。

書き込みワークフローでは、Contents、Pull requests、Issues、Actions、Workflows など、必要な箇所にのみ書き込み権限を追加します。意図した ChatGPT アクションをサポートできる最小限の権限を使用します。

Webhook イベントは、サポートするワークフローと一致させる必要があります。一般的なイベントには、Installation、Installation repositories、Push、Pull request、Issues、Issue comment、Workflow run、Workflow job があります。

GitHub App 認証情報の生成とコピー

  1. GitHub App 設定で Client ID をコピーします。

  2. Client secret を生成し、すぐにコピーします。

  3. Private keys で秘密鍵を生成します。

  4. .pem ファイルをダウンロードし、安全に保管します。

  5. .pem ファイルをローカルで開き、開始行と終了行を含む完全な PEM テキストをコピーします。

秘密鍵は機密情報です。認証情報として扱います。漏えいした場合は、新しい秘密鍵を生成し、ChatGPT アプリ設定を更新して、漏えいした鍵を GitHub Enterprise で削除します。

ChatGPT での設定完了

  1. ChatGPT テンプレート設定タブに戻ります。

  2. GitHub App の Client ID を OAuth client ID に貼り付けます。

  3. GitHub App の Client secret を OAuth client secret に貼り付けます。

  4. organization がテンプレートの既定値を意図的に上書きする必要がない限り、Scopes は変更しません。

  5. GitHub Enterprise ホスト名が github.example.com のようにホスト名のみであることを確認します。

  6. GitHub App private key に GitHub App の秘密鍵 PEM を貼り付けるかアップロードします。

  7. 生成された webhook シークレットが存在することを確認します。

  8. ドラフトアプリを作成します。

  9. ChatGPT で作成済みのドラフトアプリの詳細を開き、生成された webhook URL をコピーします。

webhook URL は次のような形式です: https://connectors.api.openai.org/connectors/<connector_id>/webhook

GitHub Enterprise での webhook 設定完了

  1. GitHub Enterprise の GitHub App 設定に戻ります。

  2. GitHub App の General settings を開きます。

  3. Active webhooks がまだ有効でない場合は有効にします。

  4. ChatGPT webhook URL を Webhook URL に貼り付けます。

  5. ChatGPT webhook シークレットを Webhook secret に貼り付けます。

  6. SSL verification は有効のままにします。

  7. 購読済みの webhook イベントが、有効にした権限とアクションに一致していることを確認します。

  8. 変更を保存します。

ChatGPT でのアプリの公開と管理

ドラフトアプリを作成しても、メンバーが自動的に利用できるようにはなりません。ドラフトの確認後:

  1. ドラフトアプリを公開します。

  2. アプリが ワークスペース設定 > アプリ > 有効 に表示されることを確認します。

  3. 使用すべきロール向けに User access を設定します。

  4. 読み取りアクションと書き込みアクションについて Action control を確認します。

  5. ChatGPT がアプリを使用する前にメンバーへ確認するタイミングを選ぶため、App permissions を確認します。

  6. 許可されたテストユーザーに ChatGPT のアプリ を開いてもらい、アプリが表示されることを確認します。

これらのアプリ権限は ChatGPT の会話に適用されます。ワークスペースエージェントでは、エージェントのビルダーが設定したエージェントごとの制御を使用して、利用可能なアプリアクションと、エンドユーザーに承認を求めるタイミングを決定します。エージェントの動作については、Enterprise および Business 向け ChatGPT ワークスペースエージェント を参照してください。

GitHub App のインストールとテスト

  1. GitHub Enterprise で、organization またはアカウントに GitHub app をインストールします。

  2. ワークスペースのポリシーに従って、すべてのリポジトリまたは選択したリポジトリを選択します。

  3. 許可されたユーザーとして ChatGPT から接続フローを開始します。

  4. プロンプトが表示されたら GitHub app を承認します。

  5. まず、アクセス可能なリポジトリの一覧表示や既知のプルリクエストの取得など、小さな読み取りアクションを実行します。

  6. 書き込みアクションを有効にしている場合は、広範に展開する前に低リスクのリポジトリでテストします。

ホスト名と OAuth の動作

ChatGPT はホスト名を使用して GitHub Enterprise エンドポイントを導出します。github.example.com または octocorp.ghe.com など、ホストのみを入力します。

このアプリの正確な GitHub Enterprise ホストでない限り、API パス、リポジトリパス、または github.com は入力しないでください。

トラブルシューティング

  • Redirect URI mismatch: GitHub App のコールバック URL が ChatGPT に表示されるコールバック URL と完全に一致していることを確認します。

  • ChatGPT cannot create or save the draft app: ホスト名、OAuth client IDOAuth client secret、秘密鍵、webhook シークレットなど、すべての必須フィールドが入力されていることを確認します。

  • Authentication succeeds but repository calls fail: GitHub App がインストールされ、リポジトリにアクセスできることを確認します。

  • API returns 403 or insufficient permissions: 不足している GitHub App 権限を追加し、求められた場合はインストール所有者に更新後の権限を承認してもらいます。

  • No repositories appear: アプリのインストールに想定されるリポジトリが含まれ、ChatGPT で承認するユーザーがそれらにアクセスできることを確認します。

  • Webhook deliveries fail: webhook URL と webhook シークレットが ChatGPT の値と一致していることを確認し、SSL verification を有効のままにして、GitHub Enterprise ホストが connectors.api.openai.org に到達できることを確認します。

  • Private key errors: 開始行と終了行を含む完全な PEM コンテンツがコピーされていることを確認します。

参考資料

この記事は役に立ちましたか?