Skip to main content

GitHub Copilot コーディング エージェントを使用してプロジェクトを改善する

Copilot コーディング エージェント を使用してプロジェクトの問題を見つけて修正します。

この機能を使用できるユーザーについて

Copilot コーディング エージェント は、GitHub Copilot Pro、GitHub Copilot Pro+、GitHub Copilot Business、GitHub Copilot Enterprise プランで使用できます。 エージェントは、マネージド ユーザー アカウント によって所有されて明示的に無効になっているリポジトリを除き、GitHub に格納されているすべてのリポジトリで使用できます。
Sign up for Copilot

メモ

Copilot コーディング エージェント の概要については、「GitHub Copilot コーディング エージェントについて」を参照してください。

イントロダクション

最新の開発は、多くの場合、良い意図から始まります。クイック スクリプト、プロトタイプ、1 つの小さな作業を自動化するためのアクションなどです。 しかし、プロジェクトが進化するにつれて、これらの初期の取り組みは脆弱になる可能性があります。

このチュートリアルでは、Copilot コーディング エージェント を使用して、勢いを遅くすることなく、成熟したプロジェクトを改善する方法について説明します。

次のセクションでは、次の手順を実行します。

  • プロジェクトが、Copilot によってプロジェクトに合わせた応答を生成するために利用することのできるカスタム命令を含んでいることを確認してください。
  • Copilot コーディング エージェント 用の環境セットアップ ファイルがあることを確認します。プロジェクトの依存関係を事前にインストールすることで、タスクをより迅速に開始できるようにします。
  • Copilot を取得して、コードに対して行える改善点を探し、その作業に関する問題を作成します。
  • 問題に割り当てることで、コーディング作業を Copilot に委任します。

1. カスタム手順を確認する

  1. GitHub のリポジトリに移動します。

  2. 次のカスタム命令ファイルの少なくとも 1 つが存在することを確認します。

    • .github/copilot-instructions.md
    • .github/instructions/**/*-instructions.md
    • AGENTS.md
  3. これらのファイルのいずれかが存在する場合は、ファイルを表示し、手順が適切で最新であることを確認します。

    詳細については、 GitHub Copilot 応答のカスタマイズについて の「効果的なカスタム命令の記述」セクションと、 カスタム指示 の例のライブラリを参照してください。

  4. リポジトリにカスタム命令ファイルがない場合は、Copilot コーディング エージェント を使用して、.github/copilot-instructions.md の手順に従って ファイルを作成します。

  5. Copilot コーディング エージェント が作成したプルリクエストを確認します。 .github/copilot-instructions.md ファイルが、Copilot にこのプロジェクトを進めるために必要なすべての情報を提供していることを確認してください。

    ファイルには次のものが含まれている必要があります。

    • コードベースとソフトウェアの動作の明確な概要。
    • プロジェクト構造の概要。
    • 投稿のガイドライン。 たとえば、コードベースをビルド、書式設定、lint、テストする方法や、プル要求をマージする前に満たす必要がある要件などです。
    • 主要な技術原則。
  6. 必要に応じてファイルを編集します。

  7. pull request の [会話] タブの下部にある [ 確認の準備完了 ] をクリックし、プル要求をマージするための通常のプロセスを完了します。

2. 環境セットアップ ファイルを確認する

          `copilot-setup-steps.yml` GitHub Actions ワークフロー ファイルは、Copilot コーディング エージェント がタスクをより迅速に開始できるよう支援します。これは、プロジェクトで使用される依存関係を事前にインストールすることで可能になります。

このファイルの作成は省略可能ですが、Copilot コーディング エージェント をリポジトリで定期的に使用する場合は、お勧めします。

  1. GitHub のリポジトリで、次のファイルが存在することを確認します。

    Text
    .github/workflows/copilot-setup-steps.yml
    

    ヒント

    これを簡単に行うには、上記のパスをコピーし、リポジトリのメイン ページに移動し、パスを [ファイルに移動] フィールドに貼り付けます。

  2. ファイルが存在する場合は、ファイルを開き、ワークフローの手順でプロジェクトの正しい依存関係がインストールされていることを確認します。 これを確認したら、このセクションの残りの手順をスキップできます。

  3.        `copilot-setup-steps.yml` ファイルがまだない場合は、次の手順に従ってCopilot コーディング エージェント を取得して作成します。
    
  4. GitHub Web サイトのリポジトリの任意のページの上部にある { % octicon "agent" aria-label="Open agents panel" %} をクリックします。

  5. 次のプロンプトをコピーして[エージェント]ダイアログボックスに貼り付けます。

    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`.
    
  6.        **<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>を押します。
    
  7. [最近使用したエージェント セッション] の一覧で、開始した新しいエージェント セッションをクリックします。

    アクティビティログは、Copilot がタスクを進行中に表示されます。 Copilot が完了すると、その作業内容の概要が生成されます。

  8. 概要を読み、 View pull request をクリックします。

  9. 必要に応じて、Copilotをレビュー担当者として追加します。 詳しくは、「GitHub Copilot コード レビューの使用」をご覧ください。 Copilot がレビューコメントを追加するのを待ち、コメントに応じて必要な変更を加えます。

  10. 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
    
  11. pull request の copilot-setup-steps.yml ファイルに必要な変更を加えます。

    Copilot に、レビュー コメントで @copilot を使用して変更を行うよう依頼できます。 例えば次が挙げられます。

    @copilot - comment the file more thoroughly

  12. pull request の [会話] タブの下部にある [ 確認の準備完了 ] をクリックし、プル要求をマージするための通常のプロセスを完了します。

  13. GitHub で、リポジトリに新しく追加した .github/workflows/copilot-setup-steps.yml ファイルを開きます。

  14. ページの右上近くにある「実行の表示」をクリックします。

  15. [ ワークフローの実行 ] をクリックし、ダイアログで [ワークフローの実行 ] をクリックして、新しいワークフローをテストします。

  16. ワークフローが正しく実行され、依存関係がインストールされていることを確認します。 .github/workflows/copilot-setup-steps.yml ファイルを編集してエラーを修正します。

3. Copilot に技術的負債の発見を任せる

Copilot に適切なコンテキストと (必要に応じて) すぐに使用できる環境が用意されたので、それを使用してリポジトリ内の技術的負債を表面化し、優先順位を付けることができます。 1. 次のプロンプト ボックスの ボタンをクリックして、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.
  1.        **<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** モードが選択されていることを確認します。
    
  2.        **<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> [すべてのリポジトリ**] ドロップダウンを使用して、リポジトリを選択します。
    
  3.        **<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>を押します。
    
  4. Copilotの応答の詳細を確認します。

  5. 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.
    
  6. 必要に応じて、このプロンプトを編集します。 たとえば、Copilot が生成した応答によっては、Copilot が特定した問題領域のうち、最初の領域ではなく別の問題領域に取り組む必要がある場合があります。

  7. Ask モードがまだ選択されていることを確認します ()。

  8.        **<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>を押します。
    
  9. Copilot が生成する作成中のイシューを確認し、必要に応じて編集します。

  10. Copilot が、サブ課題を作成する必要があることを示す単一のドラフトの課題を作成する場合は、Copilot にこれを行うように指示を出してください。

    Copilot prompt
    Go ahead and create sub-issues that chunk this work into manageable pieces.
    
  11. 下書きされた問題の数に応じて、[ 作成] または [ 確認と作成] をクリックします。

    Copilot は、あなたの代わりに 1 つ以上の新しいイシューを作成します。 問題の作成者として表示されます。

4. Copilot を取得して問題を解決する

問題が作成されたので、次の手順では、Copilot に問題を委任し、結果のプル要求を確認します。

  1. Copilot が前のセクションで自動的に作成した問題のいずれかを開きます。

  2. タスクを完了したことを確認するために Copilot が使用できる受け入れ条件がその問題に含まれていることを確認してください。

  3. 修正する必要がある問題と、この問題に対する作業の予想される結果を正確に記述するために必要と思われる変更を加えます。

  4.        **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-agent" aria-label="Open agents panel" role="img"><path d="M14.5 8.9v-.052A2.956 2.956 0 0 0 11.542 5.9a.815.815 0 0 1-.751-.501l-.145-.348A3.496 3.496 0 0 0 7.421 2.9h-.206a3.754 3.754 0 0 0-3.736 4.118l.011.121a.822.822 0 0 1-.619.879A1.81 1.81 0 0 0 1.5 9.773v.14c0 1.097.89 1.987 1.987 1.987H4.5a.75.75 0 0 1 0 1.5H3.487A3.487 3.487 0 0 1 0 9.913v-.14C0 8.449.785 7.274 1.963 6.75A5.253 5.253 0 0 1 7.215 1.4h.206a4.992 4.992 0 0 1 4.586 3.024A4.455 4.455 0 0 1 16 8.848V8.9a.75.75 0 0 1-1.5 0Z"></path><path d="m8.38 7.67 2.25 2.25a.749.749 0 0 1 0 1.061L8.38 13.23a.749.749 0 1 1-1.06-1.06l1.719-1.72L7.32 8.731A.75.75 0 0 1 8.38 7.67ZM15 13.45h-3a.75.75 0 0 1 0-1.5h3a.75.75 0 0 1 0 1.5Z"></path></svg> Copilot に割り当てを開く** をクリックしてください。
    
  5. 「Copilot の割り当てを設定」画面で、割り当て をクリックします。

    Copilot が問題に対する作業を開始します。 しばらくすると、下書きプルリクエストへのリンクがイシューに追加されます。

  6. 下書きのプルリクエストへのリンクをクリックしてください。

    Copilot がプルリクエストの処理を完了すると、"[WIP]" がプルリクエストのタイトルから削除され、あなたがレビュー担当者に追加されます。

    Copilot に処理を任せて、プルリクエストを非同期的に扱い、レビュー担当者に追加されてから、プルリクエストを確認しに戻れます。

  7. 必要に応じて、Copilot が数分間動作した後、プルリクエストでセッションの表示をクリックすると、Copilot が実行している内容のログを表示できます。

  8. 必要に応じて、pull request の [会話] タブで、レビュー担当者として Copilot を追加します。

  9. レビュー担当者として追加されたら、自分で変更を確認し、必要な変更を加えます。

    Copilot に、レビュー コメントで @copilot を使用して変更を行うよう依頼できます。

  10. pull request の [会話] タブの下部にある [ 確認の準備完了 ] をクリックし、プル要求をマージするための通常のプロセスを完了します。

5. このプロセスを反復処理する

  1. Copilot が複数の問題を作成した場合は、セクション 4 を繰り返し、Copilot を他のいずれかの問題に割り当てます。
  2. Copilot が作成したすべての問題を閉じた後、セクション 3 を繰り返し、別の問題領域を選択し、セクション 4 を繰り返して問題を Copilot に割り当て、変更を確認してマージします。

Conclusion

Copilot コーディング エージェント は、どのプロジェクトでもコードの品質を向上するのに役立ちますが、数か月または数年にわたって有機的に成長しているプロジェクトの技術的負債を減らすのに特に役立ちます。 Copilot コーディング エージェント を使用すると、AIアシスタントがあなたの代わりに作業することで、時間を見つけるのに苦労していた改善を行うことができます。

Copilot は開発者に代わるものではありません。このプロセスのすべての手順で、Copilot で行う内容を指定し、変更または追加するコードを慎重に確認する必要がありますが、他の重要なタスクで作業する場合と同時に改善を実装できます。

次のステップ

GitHub ブログでこのケース スタディを読む: GitHub 課金チームが GitHub Copilot のコーディング エージェントを使用して技術的負債を継続的にバーンダウンする方法