GitLab Duo の概念 - Amazon Q Developer

GitLab Duo の概念

GitLab Duo with Amazon Q を使用する際に知っておくべき概念と用語をいくつか紹介します。

GitLab Duo with Amazon Q のセットアップ

GitLab Duo で Amazon Q の AI 機能を使用するには、前提条件を満たし、AWS リソースを作成する必要があります。詳細については、「GitLab documentation」の「Set up GitLab Duo with Amazon Q」を参照してください。

AWS リソースとアクセス許可ポリシーを使用したオンボーディング

GitLab Duo のオンボーディングプロセスの一環として、Amazon Q Developer コンソールを使用して Amazon Q Developer プロファイルを作成する必要があります。プロファイルを使用すると、ID プロバイダーのユーザー全体またはサブセットのカスタマイズおよびコントロール設定を作成できます。プロファイルを作成したら、OpenID Connect (OIDC) ID プロバイダー (IdP) と IAM サービスロールを使用して、GitLab Duo と AWS アカウント間の信頼関係を確立する必要があります。必要なリソースを作成し、GitLab Duo with Amazon Q をセットアップする方法については、「GitLab documentation」の「Set up GitLab Duo with Amazon Q」を参照してください。

新しい IAM ロールが作成されると、必要なアクセス許可を持つ必要な信頼ポリシーも作成されます。ロール信頼ポリシーは、IAM のロールに関連付けられている必須のリソースベースのポリシーです。

アクセス許可ポリシーを追加する必要があります。これにより、Amazon Q に接続し、GitLab Duo with Amazon Q 統合で機能を利用できるようになります。IAM ロールを作成する際は、ポリシーを追加する必要があります。アクセス許可ポリシーによって提供されるアクセス許可の詳細については、「GitLabDuoWithAmazonQPermissionsPolicy」を参照してください。

または、インラインポリシーを作成し、必要なアクセス許可を追加することもできます。アクセスコントロールをカスタマイズする場合は、インラインポリシーの作成を選択できます。詳細については、「IAM ユーザーガイド」の「管理ポリシーとインラインポリシー」および「AWS Identity and Access Management でのポリシーとアクセス許可」を参照してください。

信頼ポリシー

JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRoleWithWebIdentity", "Principal": { "Federated": "arn:aws:iam::111122223333:oidc-provider/auth.token.gitlab.com/cc/oidc/{{Instance_ID}}" }, "Condition": { "StringEquals": { "auth.token.gitlab.com/cc/oidc/{{Instance_ID}}:aud": "gitlab-cc-{{Instance_ID}}" } } } ] }

アクセス許可ポリシー

JSON
{ "Version": "2012-10-17", "Statement": [ { "Sid": "GitLabDuoUsagePermissions", "Effect": "Allow", "Action": [ "q:SendEvent", "q:CreateAuthGrant", "q:UpdateAuthGrant", "q:GenerateCodeRecommendations", "q:SendMessage", "q:ListPlugins", "q:VerifyOAuthAppConnection" ], "Resource": "*" }, { "Sid": "GitLabDuoManagementPermissions", "Effect": "Allow", "Action": [ "q:CreateOAuthAppConnection", "q:DeleteOAuthAppConnection" ], "Resource": "*" }, { "Sid": "GitLabDuoPluginPermissions", "Effect": "Allow", "Action": [ "q:CreatePlugin", "q:DeletePlugin", "q:GetPlugin" ], "Resource": "arn:aws:qdeveloper:*:*:plugin/GitLabDuoWithAmazonQ/*" } ] }

キーのライフサイクルと使用状況を完全にコントロールする場合は、オプションで、カスタマーマネージドキー (CMK) を使用してリソースを暗号化することもできます。kms:ViaService 条件キーは、コンテンツの暗号化と復号化において、どのユーザーが CMK を使用できるかを制限します。詳細については、「サードパーティー統合のための Amazon Q Developer へのアクセスを管理する」を参照してください。

GitLab のクイックアクション

クイックアクションが呼び出されると、GitLab の問題とマージリクエストでタスクを実行します。GitLab のクイックアクションを呼び出す方法については、「GitLab documentation」を参照してください。

マージリクエストの生成とイテレーション

  • /q dev – GitLab の問題でキャプチャされた大まかなアイデアから、Amazon Q にレビュー準備完了マージリクエストを生成させることができます。これにより、概念を作業コードに変換するプロセスを合理化できます。マージリクエストは新しいブランチに作成され、Amazon Q は問題作成者をマージリクエストレビューワーとして割り当てます。また、マージリクエストの概要も表示されます。詳細については、「Turn an idea into a merge request」を参照してください。

  • /q dev (改訂) – 問題からやり直すのではなく、Amazon Q が提供する提案されたコードの実装を繰り返し実行します。Amazon Q はフィードバックを確認し、最初に生成されたコードを更新します。また、変更が行われるたびにコミットメッセージも提供されます。各イテレーション後の説明が更新され、フィードバックを説明するコメントがイテレーションに組み込まれます。その後、提案を確認してコードにマージできます。詳細については、「Make code changes based on feedback」を参照してください。

コード変換

  • /q transform – Java Maven 8 または Java Maven 11 から Java Maven 17 プロジェクトへのアップグレードプロセスを開始できます。GitLab の問題から、Amazon Q はコードを分析して必要な Java のアップグレードまたはモダナイゼーションを決定し、問題を更新して、提案された変更で新しいマージリクエストを自動的に開き、問題作成者をレビューワーとして割り当てます。コードをビルドするには GitLab Runner のセットアップが必要で、コード変換用にカスタマイズする必要があります。詳細については、「コード変換用の CI/CD パイプラインのカスタマイズ」および「Upgrade Java」を参照してください。

    注記

    Maven プロジェクトのソースバージョンは、コードを変換する前に特定する必要があるため、コンパイラの設定は pom.xml ファイルで設定する必要があります。そのため、pom.xml ファイルにはソースとターゲットが必要です。

ユニットテストの生成

  • /q test – マージリクエストで新しく追加されたソースコード行のユニットテストを生成できます。テストファイルに追加できるユニットテスト提案を含む Amazon Q コメント。生成されたテストを一度に適用することも、適用する前に各テストを個別に確認することもできます。マージリクエストにテストファイルが見つからない場合、Amazon Q はテストファイルに手動で追加できるユニットテストを提供します。詳細については、「Create test coverage」を参照してください。

コードレビュー

  • /q review – GitLab Duo with Amazon Q を使用してマージリクエストのレビューを開始できます。新しいマージリクエストに対して自動コードレビューが開始されます。GitLab 管理者は、自動レビューを無効にするように Amazon Q を設定することもできます。自動コードレビューは、Amazon Q がマージリクエストに対してコード修正を生成して提案する際に、潜在的な問題を特定して修正します。品質チェック、問題の分析、論理エラー、アンチパターン、コードの重複などを提供します。

    Amazon Q は、コメントを含むコード分析を提供し、各コメントは個別の検出結果を提供します。このクイックアクションは、すべての言語で使用できます。自動コードレビューは、新しいマージリクエストを開くか、以前に閉じたリクエストを再度開くと開始されます。ただし、既存のマージリクエスト内で行われた後続のコミットによって自動コードレビューがトリガーされることはありません。/q review のクイックアクションを使用して、コードレビューを手動でトリガーできます。

    GitLab インスタンスまたはグループ内の新しいマージリクエストごとに自動的に実行されるようにコードレビューを設定できます。詳細については、「Review a merge request」を参照してください。

ウェブ UI と IDE のチャットセッション

  • GitLab Duo チャットおよびコード提案は Amazon Q と連携して、CI/CD 構成、エラーの説明、質問への対処をサポートします。チャットセッションでスラッシュコマンドを使用して、GitLab Duo with Amazon Q チャット機能を呼び出すことができます。詳細については、「Ask GitLab Duo Chat」を参照してください。