菜单

拉取请求管理

相关源文件

目的与范围

本文档详细介绍了 Apollo-11 仓库中实现的拉取请求(PR)管理系统。它涵盖了自动化标签流程、PR 工作流以及 PR 处理的最佳实践。本文档专门关注用于跟踪、标记和处理代码库贡献的技术机制。有关贡献指南和标准的信息,请参阅贡献到仓库格式标准

自动化 PR 标签系统

Apollo-11 仓库采用自动化标签系统,根据修改的文件类型对拉取请求进行分类。该系统有助于维护者快速识别贡献的性质并适当优先安排审查。

标签类型和定义

该仓库使用一个包含两种主要标签类型的分类系统

标签应用于目的
类型:Proof任何 .agc 文件识别对原始 AGC 汇编代码文件的更改
类型:MetaMAIN.agc 文件和任何 .md 文件识别对文档或主程序结构文件的更改

这些标签在标签器配置文件中定义。

来源:.github/labeler.yml1-6

自动化标签工作流

拉取请求通过计划的 GitHub Actions 工作流自动添加标签

此工作流每 3 小时运行一次,检查所有开放的拉取请求,并根据配置文件中定义的文件模式应用标签。

来源:.github/workflows/label.yml1-14

PR 工作流

下图说明了拉取请求在 Apollo-11 仓库中的完整生命周期

来源:.github/workflows/label.yml1-14 .github/labeler.yml1-6

按文件类型处理 PR

在审查过程中,仓库对不同类型的文件采用不同程度的审查力度

来源:.github/labeler.yml1-6

拉取请求审查标准

拉取请求根据特定标准进行评估,这些标准与仓库高保真度保留原始阿波罗11号代码的目标一致

对于代码文件(类型:Proof)

  • 与原始 AGC 汇编代码进行精确的逐字符匹配
  • 保留原始注释和格式
  • 不对代码的逻辑或结构进行修改

对于文档文件(类型:Meta)

  • 历史和技术信息的准确性
  • 翻译之间的一致性
  • 正确的 Markdown 格式和结构

PR 标签实现详情

自动化 PR 标签系统是使用 GitHub Actions 和一个定期标签器实现的。该系统的核心组件是

  1. 标签配置文件:位于 .github/labeler.yml,此文件定义了文件模式和标签名称之间的映射关系。

  2. 标签工作流:位于 .github/workflows/label.yml,此 GitHub Actions 工作流文件配置了定期标签流程。

该工作流配置为每 3 小时运行一次(由 cron 表达式 0 */3 * * * 定义),并根据配置文件中定义的模式,将标签应用于所有开放的拉取请求。

来源:.github/workflows/label.yml1-14 .github/labeler.yml1-6

PR 管理最佳实践

针对贡献者

  1. 了解标签系统:请注意,您的 PR 将根据您修改的文件类型自动添加标签。
  2. 按类型划分 PR:如果可能,请将对代码文件(.agc)和文档文件(.md)的更改分离到不同的拉取请求中。
  3. 遵循适当的指南:请参阅贡献到仓库页面,了解详细的贡献指南。

针对维护者

  1. 监控标签应用:验证 PR 是否已由自动化系统正确添加标签。
  2. 根据类型审查:根据 PR 标签(Proof 与 Meta)应用不同的审查标准。
  3. 管理审查工作量:使用标签来优先处理审查并分配维护者之间的工作。

PR 管理系统与其他仓库维护系统交互

  1. CI/CD 工作流:请参阅CI/CD 工作流,了解自动化测试和检查如何应用于拉取请求的详细信息。
  2. 国际化:有关与翻译相关的 PR 管理,请参阅翻译贡献

来源:.github/workflows/label.yml1-14 .github/labeler.yml1-6