🦊

GitLab Duo の機能と仕組みを解説:触ってわかったポイントも紹介

に公開

はじめに

こんにちは、クラウドエースの岸本です。
今回は、GitLab Duo についての概要をご紹介します。
最後には、GitLab Duo を使って、IDE 内でのチャット、Merge Request のレビューを行ってみます。

GitLab Duo とは

GitLab Duo は、GitLab 上で開発を進める際に活用できる AI 機能群です。
ソフトウェア開発の計画立案からコーディング、セキュリティ対策、デプロイまで、あらゆる工程を包括的にサポートします。

以下では、GitLab Duo のサービス群と機能の概要についてご紹介します。
GitLab Duo のサービス群
出典:GitLab Japan Partner Team

GitLab Duo のサービス群

GitLab Duo には複数のサービスが用意されており、組織のニーズに応じて適切なプランを選択できます。
以下の画像をもとに、GitLab Duo のサービス群についてご紹介します。
大きく、「GitLab Duo Core」と「Add-Ons」の 2 つに分けられます。

GitLab Duoのサービス群
出典:GitLab Japan Partner Team

GitLab Duo Core

GitLab Duo Core とは、GitLab の Premium と Ultimate ライセンスに標準で含まれている GitLab Duo のことを指します。

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 インパクトダッシュボード ×
議論の要約 ×
コードレビューの要約 ×
マージリクエストの要約 ×
高度なトラブルシューティング 根本原因分析 ×
デプロイメント セルフホスト型モデル ×

GitLab Duo Core の注意点[1]

利用条件

  • 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 Duo のサービス群
出典: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 Duo のサービス群
出典: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 を開くと、以下のような画面が表示されます。
赤枠をクリックし、チャットできる準備をします。

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 の作成

Merge Request のレビュアーに、GitLab Duo を指定します。
Merge Request のレビュー

GitLab Duo を指定すると、以下のようなレビューが表示されます。
Merge Request のレビュー

無事日本語でレビューしてくれました。

まとめ

今回は、GitLab Duo の概要と、GitLab Duo を使って、IDE 内でのチャット、Merge Request のレビューを行ってみました。
数多くの機能があるので、今後もご紹介していきます。

おわりに

弊社は、Google Cloud だけでなく、GitLab の導入、運用サポートを行っております。
ご不明な点、質問等ございましたら、お気軽にお尋ねください。

脚注
  1. https://docs.gitlab.com/subscriptions/subscription-add-ons/#gitlab-duo-core ↩︎

  2. https://docs.gitlab.com/user/gitlab_duo/feature_summary/ ↩︎

  3. https://about.gitlab.com/gitlab-duo/#addons ↩︎

  4. https://www.youtube.com/watch?v=jygdsxzBC4Y ↩︎

  5. https://www.youtube.com/watch?v=FiDdn9N1Igg ↩︎

Discussion