GitLab Duo の機能と仕組みを解説:触ってわかったポイントも紹介
はじめに
こんにちは、クラウドエースの岸本です。
今回は、GitLab Duo についての概要をご紹介します。
最後には、GitLab Duo を使って、IDE 内でのチャット、Merge Request のレビューを行ってみます。
GitLab Duo とは
GitLab Duo は、GitLab 上で開発を進める際に活用できる AI 機能群です。
ソフトウェア開発の計画立案からコーディング、セキュリティ対策、デプロイまで、あらゆる工程を包括的にサポートします。
以下では、GitLab Duo のサービス群と機能の概要についてご紹介します。
出典:GitLab Japan Partner Team
GitLab Duo のサービス群
GitLab Duo には複数のサービスが用意されており、組織のニーズに応じて適切なプランを選択できます。
以下の画像をもとに、GitLab Duo のサービス群についてご紹介します。
大きく、「GitLab Duo Core」と「Add-Ons」の 2 つに分けられます。
出典:GitLab Japan Partner Team
GitLab Duo Core
GitLab Duo Core とは、GitLab の Premium と Ultimate ライセンスに標準で含まれている GitLab Duo のことを指します。
出典:GitLab Japan Partner Team
GitLab Duo Core でできること
GitLab Duo Core では、以下の機能を利用できます。
【GitLab Duo Core でできること】
ソリューション | サブカテゴリ | GitLab Duo Core |
---|---|---|
コード提案 | コード補完 | 〇 |
コード生成 | 〇 | |
チャット | コードの説明 | IDE only |
コードのリファクタリング | IDE only | |
テスト生成 | IDE only | |
コードの修正 | IDE only | |
アクセス制御 | グループ/プロジェクト制御 | × |
シート割り当て | × | |
セキュリティ | 脆弱性の説明 | × |
脆弱性の解決 | × | |
コラボレーション | AI インパクトダッシュボード | × |
議論の要約 | × | |
コードレビューの要約 | × | |
マージリクエストの要約 | × | |
高度なトラブルシューティング | 根本原因分析 | × |
デプロイメント | セルフホスト型モデル | × |
[1]
GitLab Duo Core の注意点利用条件
- GitLab 18.0 以降が必要
- Premium または Ultimate サブスクリプションが必要
- 新規で GitLab 18.0 以降を利用する場合: IDE 機能は自動的に有効化され、追加の設定は不要
- 既存で GitLab 17.11 以前を利用している場合: IDE 機能を手動で有効化する必要があります
アクセス権限
以下のロールを持つユーザーが GitLab Duo Core にアクセスできます。
- Reporter
- Developer
- Maintainer
- Owner
利用制限
Premium と Ultimate ライセンスを持つユーザーのコード提案とチャット機能には利用制限が適用されます。
【GitLab Duo Core の利用制限】
機能 | 月間リクエスト数(ユーザーあたり) |
---|---|
コード提案 | 2,000 |
チャット | 100 |
Add-Ons
Add-Ons は、GitLab Duo Core で提供されている機能を拡張するためのサービスです。
大きく、AI を道具として活用する「Generative AI」と自律的に開発を進める「Agentic AI」の 2 つに分けられます。
出典:GitLab Japan Partner Team
Add-Ons でできること
Add-Ons でできることは以下の通りです。
先ほど紹介した GitLab Duo Core も含めて、以下の表にまとめました。
【GitLab Duo のアドオンでできること[2]】
ソリューション | サブカテゴリ | Duo Core | Duo Pro | Duo Enterprise | Duo with Amazon Q |
---|---|---|---|---|---|
コード提案 | コード補完 | 〇 | 〇 | 〇 | 〇 |
コード生成 | 〇 | 〇 | 〇 | 〇 | |
チャット | IDE 内でのチャット | 〇 | 〇 | 〇 | 〇 |
GitLab UI 内でのチャット | × | 〇 | 〇 | 〇 | |
IDE 内でのコード説明 | 〇 | 〇 | 〇 | 〇 | |
GitLab UI 内でのコード説明 | × | 〇 | 〇 | 〇 | |
IDE 内でのコードリファクタリング | 〇 | 〇 | 〇 | 〇 | |
IDE 内でのテスト生成 | 〇 | 〇 | 〇 | 〇 | |
IDE 内でのコード修正 | 〇 | 〇 | 〇 | 〇 | |
コードレビュー | コードレビュー | × | × | 〇 | 〇 |
アクセス制御 | グループ/プロジェクト制御(※1) | × | 〇 | 〇 | 〇 |
シート割り当て | × | 〇 | 〇 | 〇 | |
セキュリティ | 脆弱性の説明 | × | × | 〇 | 〇 |
脆弱性の解決 | × | × | 〇 | 〇 | |
コラボレーション | AI インパクトダッシュボード | × | × | 〇 | 〇 |
議論の要約 | × | × | 〇 | 〇 | |
コードレビューの要約 | × | × | 〇 | 〇 | |
マージリクエストの要約 | × | × | 〇 | 〇 | |
マージコミットメッセージ生成 | × | × | 〇 | 〇 | |
高度なトラブルシューティング | 根本原因分析 | × | × | 〇 | 〇 |
デプロイメント | セルフホスト型モデル | × | × | 〇 | × |
CLI | GitLab Duo for the CLI | × | × | 〇 | × |
※1 プロジェクト、グループのアクセス制御は、今後のリリースで提供予定です
Generative AI には以下のサービスが用意されています。
- GitLab Duo Pro
- GitLab Duo Enterprise
- GitLab Self-Hosted
- GitLab Duo with Amazon Q
Agentic AI には以下のサービスが用意されています。
- Duo Agent Platform
出典:GitLab Japan Partner Team
Add-Ons の利用条件
各 Add-Ons にはそれぞれ利用条件があります。
条件は以下の通りです。
【アドオンの利用条件】
サービス名 | 前提ティア | 必須アドオン | 利用形態 |
---|---|---|---|
GitLab Duo Pro | Premium, or Ultimate | GitLab Duo Pro | GitLab.com, Self-Managed, Dedicated |
GitLab Duo Enterprise | Premium, or Ultimate | GitLab Duo Enterprise | GitLab.com, Self-Managed, Dedicated |
GitLab Duo Self-Hosted | Premium, or Ultimate | GitLab Duo Enterprise | Self-Managed |
GitLab Duo with Amazon Q | Ultimate | GitLab Duo with Amazon Q | Self-Managed |
Duo Agent Platform | Premium, or Ultimate | GitLab Duo Core, Pro, or Enterprise | GitLab.com, Self-Managed, Dedicated |
組織の要件に応じて、GitLab Duo Pro、Duo Enterprise、または Duo with Amazon Q の各ライセンスを取得しましょう。
GitLab Duo の料金
GitLab Duo の料金は以下の通りです。
【GitLab Duo の料金[3]】
サービス名 | 料金 |
---|---|
GitLab Duo Core | GitLab の Premium または Ultimate ライセンスに標準で含まれています |
GitLab Duo Pro | $19/ユーザー/月 |
GitLab Duo Enterprise | GitLab へ要相談 |
GitLab Duo with Amazon Q | GitLab へ要相談 |
GitLab Duo を使ってみる
それでは、GitLab Duo を使って、IDE 内でのチャット[4]、Merge Request のレビュー[5]を行ってみます。
IDE 内でのチャット
今回は、ソースコードの説明をしてもらいます。
以前執筆したこちらの記事で作成したソースコードを使用します。
内容としては、Google Cloud 環境に VPC ネットワークや Compute Engine などのリソースを作成するシンプルなコードです。
リポジトリからWeb IDE を開くと、以下のような画面が表示されます。
赤枠をクリックし、チャットできる準備をします。
入力欄で/
を入力すると、「会話履歴のリセット」などいくつか定型的なコマンドが表示されます。
詳細はこちらをご覧ください。
今回は、定型コマンドを使用せず、シンプルに Terraform のソースコードの説明をしてもらいます。
「main.tf で作成されるリソースを日本語で説明してください」と入力します。
作成されるリソース名まで表示されました。
次に、GitLab Duo を使用し、Merge Request のレビューをしてみます。
Merge Request のレビュー
GitLab Duo のレビュー機能では、Merge Request(MR)のソースコードを自動で読み取り、AI によるコードレビューを実行できます。
この際、レビューの方針を制御する「システムプロンプト」を設定することが可能です。
まずは、そのシステムプロンプトの設定から始めます。
.gitlab/duo/
ディレクトリにmr-review-instructions.yaml
ファイルを作成し、そこにプロンプト内容を記述します。
今回は、以下のような内容を設定してみます。
【システムプロンプトの設定】
instructions:
- name: "システムプロンプト"
fileFilters:
- "**/*"
instructions: |
1. **言語**: 全ての応答は、必ず日本語で行ってください。
main ブランチに対して、以下のような Merge Request を作成します。
Merge Request のレビュアーに、GitLab Duo を指定します。
GitLab Duo を指定すると、以下のようなレビューが表示されます。
無事日本語でレビューしてくれました。
まとめ
今回は、GitLab Duo の概要と、GitLab Duo を使って、IDE 内でのチャット、Merge Request のレビューを行ってみました。
数多くの機能があるので、今後もご紹介していきます。
おわりに
弊社は、Google Cloud だけでなく、GitLab の導入、運用サポートを行っております。
ご不明な点、質問等ございましたら、お気軽にお尋ねください。
Discussion