Amazon Web Services ブログ

Amazon Q での GitLab Duo のご紹介

Amazon Q Developer は、開発者が作業する環境内に幅広い生成 AI 機能を統合することで、従来の開発ワークフローを変革しました。このシームレスな統合により、集中力を維持しながら、コーディング以外の幅広い開発タスクを加速して生産性を向上させることができます。

GitLab は開発者コミュニティが広く、人気の DevSecOps プラットフォームであり、多くの開発チームがプロジェクトの構築や共同作業に時間を費やしています。だからこそ、Amazon Q で GitLab Duo を導入できることをとても嬉しく思います。これは、GitLab Duo を使用して GitLab に Amazon Q Developer エージェント機能のパワーをもたらす新しい統合であり、AI 主導の DevSecOps を強化する統合開発エクスペリエンスへと変化させます。GitLab Duo with Amazon Q は AI エージェントを活用して、Java 8 と 11 の新機能開発やコードベースのアップグレードなど、複雑で複数のステップからなるタスクを支援します。また、使い慣れた同じ GitLab プラットフォーム内で、コードレビューやユニットテストの機能も強化されています。

Amazon Q Developer とのやりとりは、GitLab のクイックアクションを通じて簡単に行えます。問題の説明、一般的なコメント、またはマージリクエストのコメントの中に /q を直接入力すれば、日常業務の迅速化やより複雑なワークフローへの取り組みに役立てることができます。

簡単に内容を見てみましょう。

機能開発
まず、新しい機能を開発したり既存の機能を改善したりするときに、GitLab 環境で Amazon Q Developer を使い始めるのがいかに簡単かをお見せしましょう。

ウェブアプリケーションを開発していて、完全な登録フローを作成するタスクが割り当てられているとします。コメントとして /q dev コマンドを追加することで、問題の内容に基づいてコード全体を生成するよう Amazon Q Developer に依頼できます。

q dev を呼び出します

Amazon Q Developer は、既存のファイルの更新という形であれ、まったく新しいファイルの更新であれ、コードベース全体を分析して新しいコードを生成します。完了すると、自動的にマージリクエストが作成され、確認できるようにリンク付きのエントリがアクティビティ履歴に追加されます。

q がマージリクエストでソリューションを生成しました

マージリクエストレビューページには、2 つの興味深い点があります。1 つ目は、Amazon Q Developer がリクエストの背景を説明するコメントを追加し、繰り返し処理を続けたい場合の変更のリクエスト方法を説明したことです。2 つ目はフォローアップコメントで、生成されたコードにはサードパーティーのソース資料が含まれていると Amazon Q Developer が警告しています。このファイルをダウンロードすることで、元のコードを調べることができ、これがあなたのコードベースに含まれてもいいものかどうか、自分で判断することができます。これにより、トレーサビリティと監査のために記録を残しながら、オープンソースを責任を持って利用することが容易になります。

マージリクエスト

先に進む前に、他のマージリクエストと同じように、コードを調べてインラインコメントを作成できます。その後、コメントに基づいてコードを変更するように Amazon Q Developer に指示し、満足のいく結果が得られるまで同じ手順を繰り返すことができます。会社のコーディング標準に、コード内の主要な操作のロギングを実装するという要件が含まれているとしましょう。残念ながら、これは /q dev コマンドを実行する前の問題の説明の初期要件には含まれていませんでした。ただし、Amazon Q Developer を使用してレビュープロセス中にそのコードをシームレスに追加することはできます。

これを行うには、開発者のマージリクエストを確認するときと同じように、[変更] タブに移動して関連するコード行を見つけ、インラインコメントを追加します。たとえば、39 行目の下には、サインアップ API を呼び出すときにエラーを処理するコードの一部が強調表示される「ログを追加」というコメントが追加されています。その下に、/q dev のみをテキストとするコメントがもう 1 つ追加されています。この独立したコメントは Amazon Q Developer を呼び出すクイックアクションをトリガーするので、別のコメントにしておくことが不可欠です。その後、Amazon Q Developer は提供されたすべてのコメントに基づいて新しいリビジョンを生成します。

/q dev コマンドは、コメントがサポートされている GitLab のどこからでも実行できることに注目してください。ここに 39 行目に追加しておくと便利ですが、コマンドが概要ページのコメントとして発行された場合や、マージリクエストページの他のコード行に対して発行された場合も、結果は同じになります。

完了後、Amazon Q Developer はマージリクエスト履歴に別のコメントを追加して通知します。また、生成されたコンテンツには詳細情報を提供するオープンソースコードが含まれていることも通知されるため、マージを受け入れる前に確認することができます。よく調べてみると、ロガーライブラリを使用していることは明らかです。これは、リクエストを考えると完全に理にかなっています。

コードを見直してみると、Amazon Q Developer が、発生した操作をログに記録する呼び出しを追加しただけでなく、コンテキストを使用して情報や警告などの関連するログレベルを追加しているのが印象的です。さらに、ビルドが壊れないように他の場所のコードも変更しました。たとえば、ファイルの先頭に import ステートメントを追加し、ロガー変数を開始しました。

この新しい開発フローを使用すれば、Amazon Q Developer に GitLab 環境の都合の良い場所からタスクを実行してもらうことで、要件からコードへの移行をはるかに迅速に行うことができます。ただし、マージリクエストを送信したら、コードレビューを行います。繰り返しになりますが、GitLab Duo と Amazon Q Developer を組み合わせて使用することで、そのプロセスを加速し、品質を向上させることもできます。

コードレビューの実行
別のコードベース (この場合は Java アプリケーション) を使って作業してみましょう。アシストコードレビュープロセスを開始するには、マージリクエストの概要ページで、/q review というテキストを含むコメントを送信できます。Amazon Q Developer は、マージのレビューが開始されたことを通知するコメントを履歴に自動的に追加します。すべての変更をスキャンして、セキュリティの脆弱性、ベストプラクティスに従わないコードなどの品質上の問題、およびコードに関するその他の潜在的な問題を探します。

終了すると、見つかった問題のあるコードの抜粋、問題の説明、および重要度評価を含むコメントとして各結果が追加されます。

その後、さらに一歩進んで Amazon Q Developer に修正を依頼してください。 /q fix コマンドを入力して結果コメントに返信すると、問題の修正が生成されていることが通知されます。その後、同じスレッドで確認できる解決策でフォローアップします。これにより、変更点を異なる視点で見ることができ、変更を受け入れてコミットする機会が得られます。

レガシーコードのアップグレード
GitLab Duo with Amazon Q Developer は、新しいコードや機能を提供するだけでなく、Java 8 または 11 から Java 17 へのコードベースの移行を自動化および迅速化するのにも役立ちます。まず、新しい問題を作成し、「プロジェクトを Java 17 にアップグレード」などのわかりやすいタイトルを付けます。次に、[説明] フィールドに /q transform コマンドを追加します。

課題を作成すると、Amazon Q Developer は以前と同じパターンに従い、課題の履歴にコメントを追加して、コードベースの移行に取り組んでいることを通知します。このコメントは Amazon Q Developer の終了後に更新され、以前と同じようにマージリクエストへのリンクが含まれます。また、移行計画も生成され、待っている間に確認できます。計画には、実行すべきアクションのステップバイステップリストと、詳細情報に加えて、さらに読み進めるために使用できるリンクが含まれています。

生成されたマージリクエストには詳細も豊富です。移行されたコードの行数や合計所要時間などの一般的な統計情報が含まれています。また、リンク付きの完全なレポートも用意されており、これを使用してさまざまなセクションに移動できるため、ビルドログの概要を読んだり、依存関係の変更を確認したり、すべてのファイルの変更を確認したりできます。

コードを確認する準備ができたら、他のマージリクエストと同様に、変更の一部または全部を受け入れることができます。

まとめ
GitLab Duo と Amazon Q は、最も包括的な DevSecOps プラットフォームと、ソフトウェア開発のための最も有能な生成 AI 搭載アシスタントを組み合わせたものです。GitLab Duo と Amazon Q を組み合わせることで、開発者が慣れ親しんでいるのと同じ使い慣れた GitLab 環境内で、機能開発を加速し、ワークロードを変革するための新機能を備えたシームレスな開発者エクスペリエンスが提供されます。

知っておくべきこと

  • はじめに – GitLab Duo with Amazon Q は、アルティメットのサブスクリプションをお持ちの GitLab セルフマネージド型のお客様向けにプレビュー版でご利用いただけます。詳しくは、[始め方] をご覧ください。
  • 可用性 – GitLab Duo with Amazon Q は、現在プレビュー段階にあり、最終階層のサブスクリプションをお持ちのすべての GitLab セルフマネージド型のお客様向けに提供されています。

Matheus Guimaraes | @codingmatheus

原文はこちらです。