Skip to main content

GitHub Copilot クラウド エージェントを使用してプロジェクトを改善する

          Copilot クラウド エージェントを使用してプロジェクトの問題を見つけて修正します。

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

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

メモ

          Copilot クラウド エージェントの概要については、[AUTOTITLE](/copilot/concepts/about-copilot-coding-agent) を参照してください。

イントロダクション

最新の開発は、多くの場合、良い意図から始まります。クイック スクリプト、プロトタイプ、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 クラウド エージェントが作成する pull request を確認します。 
           `.github/copilot-instructions.md` ファイルが、このプロジェクトで作業するために知る必要があるすべての情報をCopilotに提供していることを確認します。
    

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

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

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

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

          `copilot-setup-steps.yml`
          GitHub Actionsワークフロー ファイルは、プロジェクトで使用される依存関係を事前にインストールすることで、タスクをより迅速に開始Copilot クラウド エージェントするのに役立ちます。

このファイルの作成は省略可能ですが、リポジトリで定期的に Copilot クラウド エージェント を使用する場合に適しています。

  1.        GitHubのリポジトリで、次のファイルが存在することを確認します。
    
    Text
    .github/workflows/copilot-setup-steps.yml
    

    ヒント

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

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

  3.        `copilot-setup-steps.yml` ファイルがまだない場合は、次の手順に従ってCopilot クラウド エージェントを取得して作成します。
    
  4.        GitHub Web サイトのリポジトリの任意のページの上部にある [**<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>**] をクリックします。
    
  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. [ ] をクリックするか 、Enter キーを押します。

  7. [最近使用したエージェント セッション] の一覧で、開始した新しいエージェント セッションをクリックします。

    タスクを< c0 /> が進める間、アクティビティログが表示されます。 Copilotが完了すると、実行内容の概要が生成されます。

  8. 概要を読み、プル要求の表示 クリックします。

  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/workflows/copilot-setup-steps.yml`のリポジトリで、新しく追加したGitHub ファイルを開きます。
    
  14. ページの右上近くにある「実行の表示」をクリックします。

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

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

3. 技術的負債をCopilot見つける

          Copilotに適切なコンテキストと (必要に応じて) すぐに使用できる環境が用意されたので、それを使用してリポジトリ内の技術的負債を表面化し、優先順位を付けることができます。
  1. 次のプロンプト ボックスの [] ボタンをクリックして、このプロンプトをCopilot チャットにGitHub.comします。

    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.
    
  2.        **
           <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>確認**モードが選択されていることを確認します。
    
  3.        <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>[**すべてのリポジトリ**] ドロップダウンを使用して、リポジトリを選択します。
    
  4. [ ] をクリックするか 、Enter キーを押します。

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

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

  9. [ ] をクリックするか 、Enter キーを押します。

  10.        Copilot生成された下書きの問題を確認し、必要に応じて編集します。
    
  11.        Copilotがサブ問題を作成する必要があることを示す 1 つの下書き問題を作成した場合は、Copilotにこの作業を依頼してください。
    
    Copilot prompt
    Go ahead and create sub-issues that chunk this work into manageable pieces.
    
  12. 下書きされた問題の数に応じて、[ 作成] または [ 確認と作成] をクリックします。

           Copilot は、ユーザーに代わって 1 つ以上の新しい問題を作成します。 問題の作成者として表示されます。
    

4. 問題を解決するための Copilot を取得する

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

  1. 前のセクションでCopilotがあなたのために作成した課題のいずれかを開いてください。

  2. 問題に、タスクが完了したことを確認するために使用できる受け入れ基準 Copilot 含まれていることを確認します。

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

  4. [Copilot割り当てる] をクリックします。

  5. 「Copilot にイシューを割り当てる」で、[割り当てる] をクリックします。

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

    プルリクエスト Copilot の作業が終わると、そのタイトルから「[WIP]」が削除され、あなたがレビュー担当者として追加されます。

           Copilotを残して pull request を非同期的に処理し、レビュー担当者として追加された pull request を再び確認できます。
    
  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のクラウド エージェントを使用して技術的負債を継続的に削減する方法](https://github.blog/ai-and-ml/github-copilot/how-the-github-billing-team-uses-the-coding-agent-in-github-copilot-to-continuously-burn-down-technical-debt/)。