メモ
Copilotコーディングエージェント の概要については、「Copilot コーディング エージェントGitHubについて」を参照してください。
イントロダクション
最新の開発は、多くの場合、良い意図から始まります。クイック スクリプト、プロトタイプ、1 つの小さな作業を自動化するためのアクションなどです。 しかし、プロジェクトが進化するにつれて、これらの初期の取り組みは脆弱になる可能性があります。
このチュートリアルでは、Copilotコーディングエージェント を使用して、勢いを失うことなく成熟したプロジェクトを改善する方法について説明します。
次のセクションでは、次の手順を実行します。
- Copilot がプロジェクトに対する応答を調整するために使用できるカスタム命令が含まれていることを確認してください。
- プロジェクトの依存関係を事前にインストールしてタスクをより迅速に開始できるように、Copilotコーディングエージェントの環境セットアップファイルがあることを確認してください。
- Copilot を取得して、コードに対して行える改善点を見つけ、その作業に関するイシューを作成します。
- Copilot にイシューを割り当てて、コーディング作業を委任します。
1. カスタム手順を確認する
-
GitHub のリポジトリに移動します。
-
次のカスタム命令ファイルの少なくとも 1 つが存在することを確認します。
.github/copilot-instructions.md.github/instructions/**/*-instructions.mdAGENTS.md
-
これらのファイルのいずれかが存在する場合は、ファイルを表示し、手順が適切で最新であることを確認します。
詳細については、 GitHub Copilotの応答をカスタマイズする方法 の「効果的なカスタム命令の記述」セクションと、 カスタム指示 の例のライブラリを参照してください。
-
リポジトリにカスタム命令ファイルがない場合は、Copilotコーディングエージェント を使用して、
.github/copilot-instructions.mdの手順に従って、 ファイルを作成します。 -
Copilotコーディングエージェント が作成したプルリクエストを確認します。
.github/copilot-instructions.mdファイルがCopilot に、このプロジェクトで作業するために必要なすべての情報を提供していることを確認してください。ファイルには次のものが含まれている必要があります。
- コードベースとソフトウェアの動作の明確な概要。
- project構造の概要。
- 投稿のガイドライン。 たとえば、コードベースをビルド、書式設定、lint、テストする方法や、プル要求をマージする前に満たす必要がある要件などです。
- 主要な技術原則。
-
必要に応じてファイルを編集します。
-
pull request の [会話] タブの下部にある [ 確認の準備完了 ] をクリックし、プル要求をマージするための通常のプロセスを完了します。
2. 環境セットアップ ファイルを確認する
`copilot-setup-steps.yml` GitHub Actions ワークフロー ファイルを使用すると、Copilotコーディングエージェント は、Copilotコーディングエージェント をプロジェクトで使用される依存関係を事前にインストールしておくことで、タスクをより迅速に始めることができます。
このファイルの作成は省略可能ですが、Copilotコーディングエージェント をリポジトリで定期的に使用する場合は、お勧めします。
-
GitHub のリポジトリで、次のファイルが存在することを確認します。
Text .github/workflows/copilot-setup-steps.yml
.github/workflows/copilot-setup-steps.ymlヒント
これを簡単に行うには、上記のパスをコピーし、リポジトリのメインページに移動して、「ファイルを見つける」フィールドにパスを貼り付けます。
-
ファイルが存在する場合は、ファイルを開き、ワークフローの手順でprojectの正しい依存関係がインストールされていることを確認します。 これを確認したら、このセクションの残りの手順をスキップできます。
-
`copilot-setup-steps.yml` ファイルがまだない場合は、次の手順に従ってCopilotコーディングエージェント を取得して作成します。 -
GitHub Web サイトのどのページでも、ページの上部にある をクリックしてください。
-
次のプロンプトをコピーして[エージェント]ダイアログボックスに貼り付けます。
Text Analyze this repository to understand the dependencies that need to be installed on the development environment to work on the code in this repository. Using this information, and the details about the `copilot-setup-steps.yml` file that are given in https://docs.github.com/copilot/how-tos/use-copilot-agents/coding-agent/customize-the-agent-environment, add a `.github/workflows/copilot-setup-steps.yml` to this repository. This Actions workflow file should install, in the development environment for Copilotコーディングエージェント, all of the dependencies necessary to work on the code in this repository. Make sure that the workflow job is named `copilot-setup-steps`.
Analyze this repository to understand the dependencies that need to be installed on the development environment to work on the code in this repository. Using this information, and the details about the `copilot-setup-steps.yml` file that are given in https://docs.github.com/copilot/how-tos/use-copilot-agents/coding-agent/customize-the-agent-environment, add a `.github/workflows/copilot-setup-steps.yml` to this repository. This Actions workflow file should install, in the development environment for Copilotコーディングエージェント, all of the dependencies necessary to work on the code in this repository. Make sure that the workflow job is named `copilot-setup-steps`. -
**<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-paper-airplane" aria-label="Start task" role="img"><path d="M.989 8 .064 2.68a1.342 1.342 0 0 1 1.85-1.462l13.402 5.744a1.13 1.13 0 0 1 0 2.076L1.913 14.782a1.343 1.343 0 0 1-1.85-1.463L.99 8Zm.603-5.288L2.38 7.25h4.87a.75.75 0 0 1 0 1.5H2.38l-.788 4.538L13.929 8Z"></path></svg>** をクリックするか、<kbd>Enter キー</kbd>を押します。 -
[最近使用したエージェント セッション] の一覧で、開始した新しいエージェント セッションをクリックします。
アクティビティログは、Copilot がタスクを進行中に表示されます。 Copilot が完了すると、その作業内容の概要が生成されます。
-
概要を読み、 View pull request をクリックします。
-
レビュー担当者として Copilot を追加することも選択できます。 詳しくは、「GitHub Copilot を使ったコードレビュー」をご覧ください。 Copilot がレビューコメントを追加するのを待ち、コメントに応じて必要な変更を加えます。
-
pull request を自分で確認し、新しい
copilot-setup-steps.ymlファイルのセットアップ手順が正しいことを確認します。Copilot が作成したワークフロー ファイルには、ワークフローを手動で実行できるように、
on: workflow_dispatchトリガーが含まれている必要があります。また、この抽出で示すように、ジョブにcopilot-setup-stepsという名前を付ける必要があります。on: workflow_dispatch: push: paths: - .github/workflows/copilot-setup-steps.yml pull_request: paths: - .github/workflows/copilot-setup-steps.yml jobs: copilot-setup-steps: runs-on: ubuntu-latest -
pull request の
copilot-setup-steps.ymlファイルに必要な変更を加えます。Copilot に、レビュー コメントで
@copilotを使用して変更を行うよう依頼できます。 例えば次が挙げられます。@copilot - comment the file more thoroughly -
pull request の [会話] タブの下部にある [ 確認の準備完了 ] をクリックし、プル要求をマージするための通常のプロセスを完了します。
-
GitHub で、リポジトリに新しく追加した
.github/workflows/copilot-setup-steps.ymlファイルを開きます。 -
ページの右上近くにある「実行の表示」をクリックします。
-
[ ワークフローの実行 ] をクリックし、ダイアログで [ワークフローの実行 ] をクリックして、新しいワークフローをテストします。
-
ワークフローが正しく実行され、依存関係がインストールされていることを確認します。
.github/workflows/copilot-setup-steps.ymlファイルを編集して、エラーを修正します。
3. Copilot に技術的負債の発見を任せる
Copilot に適切なコンテキストと (必要に応じて) すぐに使用できる環境が用意されたので、それを使用してリポジトリ内の技術的負債を明らかにし、優先順位を設定することができます。
-
次のプロンプト ボックスで ボタンをクリックして、GitHub.com の Copilot チャット にこのプロンプトを送信します。
Copilot prompt What technical debt exists in this project? Give me a prioritized list of up to 5 areas we need to focus on. For each, describe the problem and its consequences.
What technical debt exists in this project? Give me a prioritized list of up to 5 areas we need to focus on. For each, describe the problem and its consequences.
What technical debt exists in this project? Give me a prioritized list of up to 5 areas we need to focus on. For each, describe the problem and its consequences. -
**<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-comment" aria-label="comment" role="img"><path d="M1 2.75C1 1.784 1.784 1 2.75 1h10.5c.966 0 1.75.784 1.75 1.75v7.5A1.75 1.75 0 0 1 13.25 12H9.06l-2.573 2.573A1.458 1.458 0 0 1 4 13.543V12H2.75A1.75 1.75 0 0 1 1 10.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h4.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg> Ask** モードが選択されていることを確認します。 -
**<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-globe" aria-label="globe" role="img"><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM5.78 8.75a9.64 9.64 0 0 0 1.363 4.177c.255.426.542.832.857 1.215.245-.296.551-.705.857-1.215A9.64 9.64 0 0 0 10.22 8.75Zm4.44-1.5a9.64 9.64 0 0 0-1.363-4.177c-.307-.51-.612-.919-.857-1.215a9.927 9.927 0 0 0-.857 1.215A9.64 9.64 0 0 0 5.78 7.25Zm-5.944 1.5H1.543a6.507 6.507 0 0 0 4.666 5.5c-.123-.181-.24-.365-.352-.552-.715-1.192-1.437-2.874-1.581-4.948Zm-2.733-1.5h2.733c.144-2.074.866-3.756 1.58-4.948.12-.197.237-.381.353-.552a6.507 6.507 0 0 0-4.666 5.5Zm10.181 1.5c-.144 2.074-.866 3.756-1.58 4.948-.12.197-.237.381-.353.552a6.507 6.507 0 0 0 4.666-5.5Zm2.733-1.5a6.507 6.507 0 0 0-4.666-5.5c.123.181.24.365.353.552.714 1.192 1.436 2.874 1.58 4.948Z"></path></svg> [すべてのリポジトリ**] ドロップダウンを使用して、リポジトリを選択します。 -
**<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-paper-airplane" aria-label="Start task" role="img"><path d="M.989 8 .064 2.68a1.342 1.342 0 0 1 1.85-1.462l13.402 5.744a1.13 1.13 0 0 1 0 2.076L1.913 14.782a1.343 1.343 0 0 1-1.85-1.463L.99 8Zm.603-5.288L2.38 7.25h4.87a.75.75 0 0 1 0 1.5H2.38l-.788 4.538L13.929 8Z"></path></svg>** をクリックするか、<kbd>Enter キー</kbd>を押します。 -
Copilotの応答の詳細を確認します。
-
Copilot が改善のために少なくとも 1 つの領域を特定した場合は、次のプロンプトを同じ会話にコピーします。
Copilot prompt /create-issue Create a GitHub issue to address the first of the problem areas that you identified. If the problem area requires substantial work, create one main issue for the entire problem area and then sub-issues that allow the work to be split up into manageable chunks, which will be tackled in separate pull requests that can be easily reviewed. For a large body of work, do not create a single issue that attempts to address the entire problem. The issue, or each sub-issue if these are created, must include a description of the problem, a set of acceptance criteria, and pointers on what files need to be added/updated.
/create-issue Create a GitHub issue to address the first of the problem areas that you identified. If the problem area requires substantial work, create one main issue for the entire problem area and then sub-issues that allow the work to be split up into manageable chunks, which will be tackled in separate pull requests that can be easily reviewed. For a large body of work, do not create a single issue that attempts to address the entire problem. The issue, or each sub-issue if these are created, must include a description of the problem, a set of acceptance criteria, and pointers on what files need to be added/updated. -
必要に応じて、このプロンプトを編集します。 たとえば、Copilot が生成した応答によっては、Copilot が特定した問題領域のうち、最初の領域ではなく別の問題領域に取り組む必要がある場合があります。
-
Ask モードがまだ選択されていることを確認します ()。
-
**<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-paper-airplane" aria-label="Start task" role="img"><path d="M.989 8 .064 2.68a1.342 1.342 0 0 1 1.85-1.462l13.402 5.744a1.13 1.13 0 0 1 0 2.076L1.913 14.782a1.343 1.343 0 0 1-1.85-1.463L.99 8Zm.603-5.288L2.38 7.25h4.87a.75.75 0 0 1 0 1.5H2.38l-.788 4.538L13.929 8Z"></path></svg>** をクリックするか、<kbd>Enter キー</kbd>を押します。 -
Copilot が生成する作成中のイシューを確認し、必要に応じて編集します。
-
Copilot がサブ課題を作成する必要があることを示す 1 つの下書き問題を作成した場合、Copilot にサブ課題の作成を促してください。
Copilot prompt Go ahead and create sub-issues that chunk this work into manageable pieces.
Go ahead and create sub-issues that chunk this work into manageable pieces. -
下書きされた問題の数に応じて、[ 作成] または [ 確認と作成] をクリックします。
Copilot は、あなたの代わりに 1 つ以上の新しいイシューを作成します。 問題の作成者として表示されます。
4. Copilot を取得してイシューを解決する
問題が作成されたので、次の手順では、Copilot に問題を委任し、結果のプル要求を確認します。
-
Copilot が前のセクションで自動的に作成したイシューのいずれかを開きます。
-
タスクを完了したことを確認するために Copilot が使用できる受け入れ条件がその問題に含まれていることを確認してください。
-
修正する必要がある問題と、この問題に対する作業の予想される結果を正確に記述するために必要と思われる変更を加えます。
-
[ Copilot に割り当てる] をクリックします。
-
「Copilot にイシューを割り当てる」で、[割り当てる] をクリックします。
Copilot がイシューに対する作業を開始します。 しばらくすると、下書きプルリクエストへのリンクがイシューに追加されます。
-
下書きのプルリクエストへのリンクをクリックしてください。
Copilot がプルリクエストの処理を完了すると、"[WIP]" がプルリクエストのタイトルから削除され、あなたがレビュー担当者に追加されます。
Copilot にプル リクエストを非同期的に扱う作業を任せ、レビュー担当者として追加されたユーザーは、プル リクエストを確認しに戻ります。
-
必要に応じて、Copilot が数分間動作した後、プルリクエストでセッションの表示をクリックすると、Copilot が実行している内容のログを表示できます。
-
必要に応じて、pull request の [会話] タブで、レビュー担当者として Copilot を追加します。
-
レビュー担当者として追加されたら、自分で変更を確認し、必要な変更を加えます。
Copilot に、レビュー コメントで
@copilotを使用して変更を行うよう依頼できます。 -
pull request の [会話] タブの下部にある [ 確認の準備完了 ] をクリックし、プル要求をマージするための通常のプロセスを完了します。
5. このプロセスを反復処理する
- Copilot が複数の問題を作成した場合は、セクション 4 を繰り返し、Copilot を他のいずれかの問題に割り当てます。
- Copilot が作成したすべての問題を閉じた後、セクション 3 を繰り返し、別の問題領域を選択し、セクション 4 を繰り返して問題を Copilot に割り当て、変更を確認してマージします。
Conclusion
Copilotコーディングエージェント は、あらゆるprojectのコードの品質を向上するのに役立ちますが、数か月または数年にわたって有機的に成長したprojectの技術的負債を減らすのに特に役立ちます。 Copilotコーディングエージェント を使用すると、AIアシスタントがユーザーの代わりに作業することで、時間がなくて行き届かなかった改善を行うことができます。
Copilot は、開発者の代わりになるものではありません。このプロセスの各段階で、開発者としてCopilot に何をしてほしいかを指定し、変更または追加されるコードを慎重に確認する必要がありますが、それと同時に他の重要なタスクに取り組みながら、改善を実装することができます。
次のステップ
GitHub ブログでこのケース スタディを読む: GitHub 課金チームが GitHub Copilot のコーディング エージェントを使用して技術的負債を継続的にバーンダウンする方法。