Skip to main content

使用 GitHub Copilot 加速处理公司中的拉取请求

了解功能、赋能开发人员并衡量 Copilot 的影响。

谁可以使用此功能?

GitHub Copilot Business or GitHub Copilot Enterprise

本指南的灵感来自 GitHub 的工程系统成功 playbook (ESSP),其中推荐了推动工程系统改进的策略和指标。

如果你要启动 Copilot 的推出,我们建议定义目标、相应地规划推出,并向员工明确传达目标。 请参阅“使用 GitHub Copilot 实现公司工程目标”。

1.确定阻碍成功的因素

ESSP 建议的第一步是充分了解阻碍公司取得进步的障碍。 通过了解当前的基线、所需的未来状态以及阻碍进步的障碍,可确保更改具有针对性且有效。

在合并拉取请求时,团队通常会因审查周期冗长而遇到延迟。 这些延迟通常源于:

  • 难以理解的复杂代码更改
  • 使审查具有挑战性的不一致代码格式
  • 代码更改普遍缺乏上下文
  • 导致审查缓慢或难以解决的社会因素

审阅者还可能轻易忽视可能导致生产问题的细微错误。

这会导致开发流程出现瓶颈,拖慢整体交付速度并降低功能质量。

2.评估你的选项

下一步是评估并商定解决方案,以解决在第一步中确定的障碍。 在本指南中,我们将重点关注 GitHub Copilot 对已确定目标的影响。 请记住,新工具的成功推出还需要文化和流程的变更。

你将与试点小组一起试用新工具和流程,以收集反馈并衡量成功与否。 有关试用期间使用的培训资源和指标,可提前查看 3.实施变更要监视的指标部分。

注册 Copilot

Copilot 如何提供帮助

GitHub Copilot 提供一套功能,它们旨在加速拉取请求审查过程、提高代码质量并提高协作,最终缩短合并时间。

通过利用 Copilot 的功能,团队可以简化工作流、减少摩擦并确保一致的高质量代码。

生成完整且有用的拉取请求摘要

Copilot 可以自动生成清晰简洁的拉取请求摘要,从而节省开发人员的时间,并确保审阅者能够轻松理解拉取请求的目的和更改。 这可减少误解的可能性,并加快审查流程。

在审查过程中协助审阅者

GitHub Copilot 可用作功能强大的拉取请求审查助手。

  • Copilot 可以帮助解释复杂的代码更改,让审阅者能够更快地了解拉取请求正在参与的内容。
  • Copilot 可以直接在 GitHub 的拉取请求审查界面内提供存储库范围、上下文感知的建议和潜在代码改进,帮助审阅者捕获潜在问题并更有效地提供建设性反馈。
  • Copilot 可帮助审阅者起草和编写清晰、一致且有效的审查注释。

根据组织指南进行审查

  • Copilot 可在你打开拉取请求前在 IDE 中审查代码更改,或者指定为拉取请求的审阅者。
  • 借助规则集,你可以设置 Copilot,使其根据自定义标准系统化地审查拉取请求。
  • 按照审查的编码指南(仅限 Copilot Enterprise),Copilot 可以强制实施组织编码标准和最佳做法,自动标记潜在的冲突和推荐修补程序。

这些功能可确保整个代码库的一致性,并帮助你在开发过程中尽早捕获错误,减少手动审查代码的需求,为开发人员和审阅者节省时间。

推荐代码修补程序

根据拉取请求审查注释,Copilot 可帮助拉取请求作者快速实现所需的代码更改来解决审查。

文化考量

在推出 GitHub Copilot 的同时,还应解决任何可能阻碍目标实现的社会或文化因素。

以下示例取自 ESSP 中的“反模式”部分。

  • 团队可能存在发布周期过长的问题,导致一次性部署大批量代码。**** 这可能是由担心频繁发布导致不稳定性、CI/CD 管道成熟度不足或严格的合规性要求所致。
  • 开发人员可能花太多时间来完善代码或添加不需要的功能。**** 这可能是完美主义文化或缺乏有效的优先级排序所致。
  • 开发人员可能为简单的问题构建过度复杂的解决方案。**** 这可能是由于不必要的追求“面向未来”,或是为通过复杂性来增加价值而承受的压力所致。

3.在生产中

确定克服障碍的正确方法后,可缩放已确定的解决方案。 要成功推出新工具或新流程,请务必为推出的每个部分指定负责人、就目标进行透明沟通、提供有效的培训并衡量成果。

本部分为开发人员提供了示例场景、最佳做法和资源。 我们建议使用本部分来规划沟通和培训课程,以帮助员工以符合目标的方式使用 Copilot。****

创建有用的拉取请求摘要

  1. 创建拉取请求时,单击“Add a description”字段中的 Copilot 图标,然后单击“Summary”。****
  2. Copilot 将扫描拉取请求,并以自然语言概述所做更改,在项目符号列表中显示更改及其影响的文件。
  3. 确认你对 Copilot 的描述是否感到满意。
  4. 当审阅者处理你的拉取请求时,他们将拥有进行审查所需的一切上下文。

将 Copilot 用作审查助手

作为审阅者处理拉取请求时,你可以使用 Copilot 加快审查速度。

  1. 使用 Copilot 理解拉取请求中的更改。****

    • 要求 Copilot 汇总对文件所做的更改,尤其适用于处理冗长的差异对比。 可以单击文件右上角的 ,从差异对比中选择特定文件。

      拉取请求的“files changed”选项卡的屏幕截图。“Ask Copilot about this diff”选项卡以红色突出显示。

    • 对于特定行中的更改,突出显示你想要更好了解的行,并要求 Copilot 向你解释这些更改。 你可以先单击起始行号,按住 Shift 键,然后单击差异对比的结束行号来突出显示一组行。

      拉取请求的“files changed”选项卡的屏幕截图。所选的行会突出显示,下拉列表中出现“Explain”选项。

  2. 使用 Copilot 协作处理拉取请求审查。**** 在提示 Copilot 之前,不要忘记将特定的文件差异对比附加到对话中。

    • 可通过提出以下问题,让 Copilot 对拉取请求更改给出评估意见:Provide your judgement as a PR Reviewer, both for functional and non-functional aspects that these changes bring。 请注意,该提示要求 Copilot 同时考虑代码的功能和非功能方面。

    • 对于你自己的拉取请求审查注释,请要求 Copilot 提供二次评估:As my peer reviewer on this pull request, give me your feedback on my own review: YOUR-REVIEW-COMMENT. Do you think it's pertinent? Am I missing something?

  3. 与 Copilot 协作来起草和优化你的审查注释。****

    • 在使用 Copilot 规划审查后,你可以要求列出你应提供的注释:Make a list of review comments to add to the PR and tell me exactly in which file diff and lines each comment should be added
    • 你还可以要求 Copilot 根据你的思路创建审查注释初稿,或者在发布前优化注释:Help me draft review comments as discussedRefine this review comment to make it clear, concise, and actionable

添加 Copilot 作为审阅者

要缩短审查时间并加快拉取请求的合并速度,请系统性地使用 Copilot 代码评审:先在打开拉取请求之前于 IDE 中进行,然后在 GitHub 中于拉取请求上进行。

即使使用 Copilot 代码评审,也需要人工代码评审。 不过,执行上述步骤可帮助提高人工审查速度。

  • 在打开拉取请求之前,开发人员应请求使用 Copilot 代码评审来审查其所有更改。****
  • 管理员应设置存储库或组织规则集,以将 Copilot 自动添加为审阅者来审查任何面向受保护分支的拉取请求。****
  • 团队主管应提炼其团队的标准风格和规则,并将其设定为组织的编码指南,以便 Copilot 可在审查中利用它们。****
    • 请确保编码指南包含至少一套提高代码可读性的样式建议,这将在拉取请求审查流程中提供帮助。
    • 为了减少因样式问题而导致的拉取请求审查注释量,请在存储库和组织级别的 Copilot 说明中设置相同的建议。 这样,Copilot 生成的代码将遵循这些指南。

在实施审查注释时获取帮助

拉取请求作者可在 Copilot 的帮助下快速实施修补程序,加速解决拉取请求审查注释。

  • 对于 Copilot 本身留下的任何审查注释,请直接提交建议的修补程序,或者在提交之前,在 Copilot 工作区中进行编辑。
  • 对于同事留下的任何审查注释,请导航到与拉取请求审查注释相关的文件差异对比,并将差异对比附加到 Copilot 对话助手 对话中。 然后,复制粘贴带有如下所示提示的审查注释:Suggest a fix for this review comment:
  • 如果使用的是 VS Code,请在代理模式下要求 GitHub Copilot 实现审查注释中要求的更改。

适用于开发人员的最佳做法

开发人员应该:****

  • 在推送之前,在 IDE 中请求 Copilot 审查以尽早捕获和解决问题。
  • 使用 Copilot 规划和优化自己的拉取请求审查注释,帮助拉取请求作者了解和解决问题。
  • 将相关的差异对比上下文(包括特定代码行)附加到与 Copilot 的对话中。

开发人员不得:****

  • 在未测试的情况下应用 Copilot 的建议。
  • 只依靠 Copilot 进行审查。
  • 忽视代码的可读性。

资源

要监视的指标

若要评估新工具的试用情况,并确保全面推出后提供一致的改进,应监视结果并在需要时进行调整。 一般来说,建议考虑质量、速度和开发人员满意度这三大关键领域,并评估这些领域如何协同作用,共同推动业务成果的实现。****

下面是为评估 Copilot 对该特定目标的影响而建议查看的一些指标。

  • 开发人员满意度:通过开发人员调查来衡量对工程工具的满意度。
  • 每个开发人员合并的拉取请求:可以使用 GitHub 的 pull request Webhook,确保 actionclosed,而 pull request 对象中的 mergedtrue
  • 拉取请求提前期:衡量从创建拉取请求到合并之间的平均时长。