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 云代理的介绍,请查看关于 GitHub Copilot 云代理

介绍

现代开发通常始于良好的意图:一个快速的脚本、一个原型,也许是自动化一个小事情的操作。 但随着项目的发展,这些早期努力可能会变得脆弱。

本教程介绍如何使用 Copilot 云代理 来完善已有项目,而不会影响进度。

在以下部分中,我们将:

  • 确保项目包含可用于定制项目响应的自定义说明 Copilot 。
  • 确保有一个环境安装程序文件 Copilot 云代理,以便它可以通过预安装项目的依赖项更快地开始执行任务。
  • 让 Copilot 寻找代码可以进行的改进,并为这些工作创建待办事项。
  • 通过将编码工作委托给Copilot,并将其分配为一个任务。

1.检查自定义说明

  1. 转到您的存储库 GitHub。

  2. 检查是否存在以下至少一个自定义说明文件:

    • .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. 在拉取请求的“对话”选项卡底部单击“准备审核”****,然后完成你通常的拉取请求合并流程。

2.检查环境设置文件

工作流 copilot-setup-steps.ymlGitHub Actions 文件有助于 Copilot 云代理 通过预安装项目使用的依赖项来更快地开始执行任务。

创建此文件是可选的,但如果在存储库中经常使用 Copilot 云代理 ,则这是一个好主意。

  1. 在存储库 GitHub中,检查是否存在以下文件:

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

    提示

    一种快速的方法是复制上述路径,转到存储库的主页,然后将路径粘贴到“转到文件”字段中。

  2. 如果文件存在,打开它,并检查工作流步骤是否为项目安装正确的依赖项。 验证后,可以跳过本部分中的剩余步骤。

  3. 如果还没有 copilot-setup-steps.yml 文件,请按照以下步骤让 Copilot 云代理 为你创建该文件。

  4. 在网站存储库 GitHub 的任何页面顶部,单击

  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. 在“最近代理会话”列表中,单击已启动的新代理会话。

    这会显示一个活动日志,当Copilot执行任务时。 完成后 Copilot ,它将生成它所执行的操作的摘要。

  8. 阅读摘要,然后单击“ 查看拉取请求”。

  9. (可选)添加 Copilot 为审阅者。 有关详细信息,请参阅“使用 GitHub Copilot 进行代码审查”。 等待 Copilot 添加评论,然后根据评论做出你认为必要的更改。

  10. 自行查看拉取请求,确保新 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. 对拉取请求中的 copilot-setup-steps.yml 文件进行任何所需的更改。

    可以在评论批注中通过使用 @copilot 来要求 Copilot 为你进行更改。 例如:

    @copilot - comment the file more thoroughly

  12. 在拉取请求的“对话”选项卡底部单击“准备审核”****,然后完成你通常的拉取请求合并流程。

  13. 在GitHub的存储库中打开新添加的.github/workflows/copilot-setup-steps.yml文件。

  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. 确保 已选择“询问 ”模式。

  3. 使用 所有存储库”下拉列表选择存储库。

  4. 单击 或按 Enter

  5. 查看响应中 Copilot的详细信息。

  6. 假设 Copilot 至少识别了一个改进区域,请将以下提示复制到同一对话中:

    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. 确保“询问”模式仍处于选中状态()。

  9. 单击 或按 Enter

  10. 查看 Copilot 生成的草稿问题,并根据需要对其进行编辑。

  11. 如果 Copilot 创建一个单个草稿问题,表明需要创建子问题,请提示 Copilot 为你执行此操作:

    Copilot prompt
    Go ahead and create sub-issues that chunk this work into manageable pieces.
    
  12. 单击“创建”或“审查和创建”,这取决于草拟了多少问题。

           Copilot 代表你创建一个或多个新问题。 你将被显示为问题的作者。
    

4.获取 Copilot 修复问题

创建问题后,下一步是将问题委托给Copilot,然后查看生成的拉取请求。

  1. 打开上一部分中Copilot为你创建的其中一个问题。

  2. 请检查问题是否包含验收条件,以便 Copilot 验证任务已完成。

  3. 做出任何你认为必要的更改来准确描述需要修复的问题,以及此问题工作的预期结果。

  4. 单击**分配到Copilot**。

  5. 在“将 Copilot 分配给问题”中,单击“分配”****。

           Copilot 将开始处理该问题。 片刻后,问题中会添加指向草稿拉取请求的链接。
    
  6. 单击草稿拉取请求的链接。

    一旦 Copilot 完成了对拉取请求的处理,它将从拉取请求标题中删除“[WIP]”,并将你添加为审阅者。

    可以暂时离开Copilot以异步的方式处理Pull Request,在被添加为审阅者后可返回检查请求。

  7. 在Copilot工作了几分钟后,您可以选择单击拉取请求上的 “查看会话”,以查看Copilot执行操作的日志。

  8. (可选)在拉取请求的“对话”选项卡上,添加 Copilot 为审阅者。

  9. 被添加为审阅者后,亲自查看更改并进行任何必要的修改。

    可以通过在评论批注中使用 @copilot 来要求 Copilot 为你进行更改。

  10. 在拉取请求的“对话”选项卡底部单击“准备审核”****,然后完成你通常的拉取请求合并流程。

5. 迭代此过程

  1. 如果 Copilot 创建了多个问题,请重复第 4 节,分配给 Copilot 其他问题之一。
  2. 关闭 Copilot 创建的所有问题后,重复第 3 节,选择另一个问题区域,重复第 4 部分,将问题分配给 Copilot,然后查看并合并其更改。

结论

          Copilot 云代理 可以帮助你提高任何项目中的代码质量,但对于在几个月或几年内有机增长的项目中减少技术债务尤其有用。 通过使用 Copilot 云代理,在 AI 助手帮助你的情况下,你可以进行改进,而这些改进可能是在没有 AI 帮助时你很难找到时间去完成的。

          Copilot 不会取代你作为开发人员,你仍需要在此过程的每个步骤中参与其中,指定要 Copilot 执行的操作,并仔细查看它更改或添加的代码,但它确实允许你在处理其他重要任务的同时实现改进。

后续步骤

阅读GitHub博客上的此案例研究:计费团队如何在GitHub Copilot使用云代理持续降低技术债务