概要
このガイドは、組織向けに GitHub Enterprise アプリテンプレートを設定する ChatGPT ワークスペース管理者向けです。テンプレートは、メンバーが利用する最終的なアプリではありません。必要な GitHub Enterprise の設定情報を入力すると、ワークスペース専用の下書きアプリを作成する設定フローです。
GitHub Enterprise の設定では、ChatGPT を組織の 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 管理者または組織所有者の権限
https://やパスを含まない、GitHub Enterprise のホスト名のみChatGPT で対応するリポジトリアクションの決定(読み取り専用のリポジトリ検索、pull request のワークフロー、課題のワークフロー、ファイル編集、GitHub Actions、より広範な Codex ワークフローなど)
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 でのテンプレート設定の開始
ChatGPT で、アプリを利用可能にするワークスペースに切り替えます。
ワークスペースの設定 > アプリを開きます。管理コンソールで対象の ChatGPT ワークスペースを選択し、プラグインを開くこともできます。レガシーアプリの管理を選択して、引き続き利用できる従来のアプリページを開きます。
ディレクトリを選択します。
GitHub Enterprise を検索します。
GitHub Enterprise アプリテンプレートを選択して設定を開始します。
「GitHub Enterprise」や「GitHub Enterprise - エンジニアリング」など、わかりやすいアプリ名と説明を入力します。
github.example.comなど、GitHub Enterprise のホスト名を入力します。ChatGPT に表示されるコールバック URL をコピーします。このタブは開いたままにします。
設定中に生成された Webhook シークレットが表示された場合は、コピーします。
コールバック URL の例:https://chatgpt.com/connector/oauth/<callback_id>
コールバック ID の削除、末尾へのスラッシュの追加、汎用的な ChatGPT URL への置き換えはしないでください。
GitHub Enterprise での GitHub App の作成
https://github.example.comなど、GitHub Enterprise ホストを開きます。アプリの所有者となる組織またはアカウントに移動します。
「設定 > 開発者設定 > GitHub Apps」を開きます。
新しい GitHub App を選択します。
「ChatGPT GitHub Enterprise コネクター」など、わかりやすいアプリ名を入力します。
ホームページの URL を入力します。専用の社内ページがない場合は、GitHub Enterprise の組織 URL を使用します。
「コールバック URL」に、ChatGPT からコピーしたコールバック URL をそのまま貼り付けます。
セキュリティチームに変更すべき具体的な理由がない限り、「ユーザー認可トークンの有効期限を設定」は有効にしたままにします。
「インストール時にユーザー認可を要求」を有効にして、インストールまたは接続フロー中にユーザーがアプリを認可できるようにします。
「この GitHub App をインストールできる場所」の項目で、展開計画に合う最も範囲の狭い選択肢を選びます。
GitHub App を作成します。
権限とイベントの設定
有効にする予定の ChatGPT アクションに必要な最小限の権限を選択します。
読み取り専用でのリポジトリ検索や質疑応答には、まず次のような読み取り権限を設定します。
メタデータ:読み取り専用GitHub では、GitHub Apps にメタデータの権限が必須です。
コンテンツ:読み取り専用。ファイルやリポジトリのコンテンツへのアクセスに使用
課題:読み取り専用。課題の検索や閲覧が必要な場合に設定
Pull requests:読み取り専用。pull request の検索やレビューに関する情報が必要な場合に設定
アクション:読み取り専用。ワークフローの実行状況、ジョブ、ログ、成果物が必要な場合に設定
書き込みを伴うワークフローでは、コンテンツ、Pull requests、課題、アクション、ワークフローなど、必要な項目にのみ書き込み権限を追加します。目的の ChatGPT アクションを実行できる範囲で、権限を最小限に絞ってください。
Webhook イベントは、対応するワークフローに合わせて設定します。一般的なイベントには、インストール、インストール対象リポジトリ、プッシュ、Pull request、課題、課題のコメント、ワークフローの実行、ワークフローのジョブがあります。
GitHub App の認証情報の生成とコピー
GitHub App の設定で、クライアント ID をコピーします。
クライアントシークレットを生成し、すぐにコピーします。
秘密鍵の項目で、秘密鍵を生成します。
.pem ファイルをダウンロードし、安全に保管します。
ローカル環境で .pem ファイルを開き、開始行と終了行を含む PEM テキスト全体をコピーします。
秘密鍵は機密情報です。認証情報と同様に慎重に取り扱ってください。漏えいした場合は、新しい秘密鍵を生成して ChatGPT アプリの設定を更新し、GitHub Enterprise で漏えいした鍵を削除してください。
ChatGPT での設定の完了
ChatGPT のテンプレート設定タブに戻ります。
GitHub App のクライアント ID を OAuth クライアント ID に貼り付けます。
GitHub App のクライアントシークレットを OAuth クライアントシークレットに貼り付けます。
組織としてテンプレートの既定値を意図的に変更する必要がない限り、スコープは変更しません。
GitHub Enterprise のホスト名に、
github.example.comのようにホスト名だけが入力されていることを確認します。GitHub App の秘密鍵を PEM 形式で「GitHub App の秘密鍵」に貼り付けるか、アップロードします。
生成された Webhook シークレットが入力されていることを確認します。
下書きアプリを作成します。
ChatGPT で作成した下書きアプリの詳細を開き、生成された Webhook URL をコピーします。
Webhook URL は次の形式になります:https://connectors.api.openai.org/connectors/<connector_id>/webhook
GitHub Enterprise での Webhook 設定の完了
GitHub Enterprise の GitHub App 設定に戻ります。
GitHub App の一般設定を開きます。
Webhook がまだ有効になっていない場合は、「有効」をオンにします。
ChatGPT の Webhook URL を「Webhook URL」に貼り付けます。
ChatGPT の Webhook シークレットを「Webhook シークレット」に貼り付けます。
SSL 検証は有効にしたままにします。
購読対象の Webhook イベントが、有効にした権限とアクションに対応していることを確認します。
変更を保存します。
ChatGPT でのアプリの公開と管理
下書きアプリを作成しただけでは、メンバーが自動的に利用できるようにはなりません。下書きを確認したら、以下の手順を進めます。
下書きアプリを公開します。
ワークスペースの設定でアプリページを開き、有効を開いてアプリが表示されることを確認します。「管理コンソール > プラグイン」の「レガシーアプリの管理」からアプリページを開くこともできます。
アプリを利用するロールに対してユーザーアクセスを設定します。
読み取りと書き込みのアクションについて、アクション制御を確認します。
アプリの権限を確認し、ChatGPT がアプリを使用する前にメンバーに確認を求めるタイミングを選択します。
利用が許可されたテストユーザーに、ChatGPT のアプリを開き、アプリが表示されることを確認してもらいます。
これらのアプリの権限は、ChatGPT の会話に適用されます。ワークスペースエージェントでは、作成者がエージェントごとに設定した制御に基づいて、利用できるアプリのアクションと、エンドユーザーに承認を求めるタイミングが決まります。エージェントの動作については、Enterprise および Business 向けの ChatGPT ワークスペースエージェントをご覧ください。
GitHub App のインストールとテスト
GitHub Enterprise で、組織またはアカウントに GitHub アプリをインストールします。
ワークスペースのポリシーに従い、すべてのリポジトリ、または選択したリポジトリを対象にします。
利用が許可されたユーザーとして、ChatGPT から接続フローを開始します。
認可を求められたら、GitHub アプリを認可します。
まず、アクセス可能なリポジトリの一覧表示や既知の pull request の取得など、簡単な読み取りアクションを実行します。
書き込みアクションを有効にした場合は、広く展開する前に、リスクの低いリポジトリでテストします。
ホスト名と OAuth の動作
ChatGPT は、ホスト名をもとに GitHub Enterprise のエンドポイントを決定します。github.example.com や octocorp.ghe.com のように、ホスト名だけを入力してください。
API パスやリポジトリのパスは入力しないでください。また、github.com は、このアプリの GitHub Enterprise ホストが実際にそのホスト名である場合にのみ入力してください。
トラブルシューティング
リダイレクト URI の不一致:GitHub App のコールバック URL が、ChatGPT に表示されるコールバック URL と完全に一致していることを確認してください。
ChatGPT で下書きアプリを作成または保存できない:ホスト名、OAuth クライアント ID、OAuth クライアントシークレット、秘密鍵、Webhook シークレットなど、すべての必須項目が入力されていることを確認してください。
認証は成功するが、リポジトリの呼び出しに失敗する:GitHub App がインストールされ、リポジトリへのアクセス権を持っていることを確認してください。
API が 403 または権限不足を返す:不足している GitHub App の権限を追加し、承認を求められた場合は、インストールの所有者に更新後の権限を承認してもらってください。
リポジトリが表示されない:アプリのインストール対象に目的のリポジトリが含まれており、ChatGPT で認可するユーザーがそれらにアクセスできることを確認してください。
Webhook の配信に失敗する:Webhook URL と Webhook シークレットが ChatGPT の値と一致していることを確認してください。また、SSL 検証を有効にしたまま、GitHub Enterprise ホストから
connectors.api.openai.orgに接続できることを確認してください。秘密鍵のエラー:開始行と終了行を含め、PEM の内容全体がコピーされていることを確認してください。
