ChatGPT と Codex の GitLab 機能は現在ベータ版です。
概要
GitLab プラグインを使用すると、ChatGPT と Codex は最新の GitLab データを取得し、許可されている場合は、接続したユーザーがアクセスできるプロジェクトでアクションを実行できます。プロジェクト、グループ、リポジトリファイル、ブランチ、コミット、マージリクエスト、イシュー、パイプライン、ジョブ、および関連するディスカッションに対応しています。
GitLab プラグインには、GitLab.com 向けの GitLab アプリと、GitLab Self-Managed アプリテンプレートが含まれています。プラグインはユーザーがインストールするパッケージで、アプリは GitLab のデータやアクションにアクセスするための接続機能です。
GitLab Self-Managed または GitLab Dedicated では、メンバーが接続する前に、ワークスペース管理者がテンプレートからそのワークスペース専用のアプリを作成して公開する必要があります。詳しくは、アプリテンプレートと、GitLab アプリテンプレートの設定方法をご覧ください。
個別同期に対応していた従来の GitLab Issues アプリは、現在利用できません。この記事の設定手順に従って、現在の GitLab アプリに接続してください。このアプリは、プロンプトに関連する API リクエストを通じてデータを取得します。
利用可否
利用可否は、プランやワークスペースの設定によって異なる場合があります。ワークスペース管理者は、ChatGPT で GitLab プラグインを設定し、その利用可否、利用できるユーザー、有効にするアクション、承認が必要となる条件を管理します。
GitLab プラグインでできること
GitLab からの読み取り
ChatGPT と Codex では次のことができます。
プロジェクトとグループの調査
リポジトリツリーの参照とファイルの読み取り
ブランチ、コミット、差分の比較
マージリクエスト、承認、イシュー、ノート、ディスカッションの確認
パイプライン、ジョブ、ログ、テストレポートの確認
GitLab での操作
ワークスペースの設定と GitLab の権限に応じて、ChatGPT と Codex では次のことができます。
ブランチとコミットの作成
リポジトリファイルの作成、更新、削除
マージリクエストとイシューの作成または更新
ノートまたはディスカッションの追加
マージリクエストの承認、リベース、マージ
提案の適用
パイプラインの作成、ジョブやパイプラインの実行と再試行
利用できる操作は、ワークスペースのロールアクセス、操作を設定、承認を設定の各設定に加え、付与された OAuth スコープと接続ユーザーの GitLab 権限によって決まります。
ChatGPT で GitLab を設定
GitLab.com への接続
ChatGPT を開きます。
プラグインディレクトリを開きます。
GitLab を検索します。
プラグインをインストールを選択します。
GitLab で接続を選択します。
確認を求められた場合は、GitLab で ChatGPT を承認します。GitLab プラグインは、付与された OAuth スコープの範囲内でユーザーの代理として動作するため、ChatGPT と Codex がアクセスできるのは、そのユーザーがアクセス可能な GitLab のプロジェクトとグループだけです。
接続後は、ChatGPT または Codex で GitLab を使用して、プロジェクト、ファイル、マージリクエスト、イシュー、パイプラインを調査したり、許可された操作を依頼したりできます。
プラグインのインストールと管理については、ChatGPT と Codex のプラグインをご覧ください。
GitLab Self-Managed または GitLab Dedicated への接続
ユーザーが接続する前に、ワークスペース管理者が GitLab Self-Managed アプリテンプレートを設定して公開する必要があります。手順については、ChatGPT と Codex 向け GitLab Self-Managed アプリテンプレートの設定をご覧ください。
GitLab の接続解除
ChatGPT を開きます。
設定 > プラグインに移動します。
GitLab を開きます。
アンインストールを選択します。
データとプライバシー
ChatGPT と Codex による GitLab の利用方法
ChatGPT と Codex は GitLab プラグインを使用し、プロンプトに関連する API リクエストを行います。たとえば、リポジトリツリーの一覧表示、特定ファイルの取得、マージリクエストの差分やディスカッションの確認、イシューの調査、パイプラインやジョブログの確認などを行います。有効な操作によって GitLab の内容が変更される場合、ChatGPT または Codex がその操作を実行できるのは、ワークスペース設定、必要な承認、接続ユーザーの GitLab 権限のすべてで許可されている場合に限られます。
モデルのトレーニングと GitLab のコンテンツ
デフォルトでは、ChatGPT Business、Enterprise、Edu、API などのビジネス向けサービスを利用するお客様から送信されたコンテンツは、OpenAI のモデル改善には使用されません。OpenAI によるビジネスデータの利用方法について詳しくは、エンタープライズプライバシーをご覧ください。
個人向けサブスクリプションの利用時にすべての人のためにモデルを改善するがオンになっている場合、OpenAI はお客様のコンテンツをモデルのトレーニングに使用することがあります。データの保存方法と利用方法について詳しくは、データコントロールに関するよくある質問をご覧ください。
ChatGPT と Codex のどちらでアプリを使用しても、GitLab のコンテンツには同じワークスペースのデータコントロールが適用されます。
よくある質問
GitLab プラグインは何を読み取れますか?
接続したユーザーが利用できる GitLab データを取得できます。対象には、プロジェクトとグループ、リポジトリツリー、ファイル、ブランチ、コミット、差分、マージリクエスト、イシュー、ノート、ディスカッション、CI/CD パイプライン、ジョブ、ログ、テストレポートが含まれます。実際に利用できる機能は、有効なアクションと GitLab の権限によって異なります。
ChatGPT と Codex は GitLab でアクションを実行できますか?
はい。ワークスペース管理者が該当するアクションを有効にし、必要な承認が得られている場合に実行できます。設定と GitLab の権限に応じて、ChatGPT と Codex は、ブランチやコミットの作成、リポジトリファイルの作成・更新・削除、マージリクエストやイシューの作成・更新、ノートやディスカッションの追加、マージリクエストの承認やマージ、提案の適用、パイプラインの作成、ジョブやパイプラインの手動実行と再試行を行えます。
管理者はプラグインの機能をどのように制限できますか?
ChatGPT では、ワークスペース管理者がロールアクセスでアプリを利用できるユーザーを管理し、アクションを設定でアクションを有効または無効にし、承認を設定で選択したアクションに確認を必須とすることができます。GitLab 独自のプロジェクト権限とグループ権限も引き続き適用されます。
ChatGPT または Codex は、特定のファイルやマージリクエストの差分を読み取れますか?
はい。プロジェクトとファイル名またはパス、ブランチまたは ref、マージリクエストの URL または内部 ID(IID)、あるいは確認したいコードの挙動を指定してください。プラグインのアクションが有効で、ユーザーにアクセス権がある場合、ChatGPT または Codex は、関連するファイル、リポジトリツリー、コミット、差分、マージリクエストの詳細を取得できます。
プロジェクトが表示されないのはなぜですか?
ChatGPT と Codex がアクセスできるのは、接続した GitLab ユーザーに表示されるプロジェクトだけです。目的の GitLab アカウントに接続していること、GitLab で対象のプロジェクトまたはグループへのアクセス権があること、GitLab.com、GitLab Self-Managed、GitLab Dedicated のいずれかに適したアプリを選択していることを確認してください。
GitLab プラグインは GitLab Self-Managed または GitLab Dedicated に対応していますか?
標準の GitLab アプリは GitLab.com に接続し、ChatGPT と Codex で利用できます。GitLab Self-Managed または GitLab Dedicated では、ユーザーが接続する前に、ワークスペース管理者が GitLab Self-Managed アプリテンプレートを設定して公開する必要があります。手順については、ChatGPT と Codex 向け GitLab Self-Managed アプリテンプレートの設定をご覧ください。
GitLab インスタンスがネットワークトラフィックをブロックしている場合はどうすればよいですか?
GitLab Self-Managed または GitLab Dedicated インスタンスでネットワークトラフィックが制限されている場合:
GitLab プラグインが GitLab の HTTPS ホストと API に接続できるよう、OpenAI の ChatGPT インテグレーション用送信元 IP アドレス範囲を許可リストに追加するようネットワーク管理者に依頼してください。
Codex プロジェクト環境を使用する場合は、Codex クラウドの送信元 IP アドレス範囲も許可リストに追加してください。
Codex のコードレビューでは、Codex への送信 HTTPS Webhook リクエストを許可してください。Webhook の配信に失敗する場合は、GitLab の送信リクエストのフィルタリング設定を確認してください。
許可リストに追加するアドレスについては、OpenAI の送信元 IP アドレス範囲をご覧ください。
