使用模板改进拉取请求说明

Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022 |Azure DevOps Server 2020

编写良好的拉取请求说明是帮助审阅者了解审阅代码时预期情况的好方法。 它们也是帮助跟踪每个更改应执行的作的好方法,例如测试、添加单元测试以及更新文档。 拉取请求模板可帮助开发人员创建符合组织标准的出色拉取请求说明。

本文介绍如何开始使用拉取请求模板。

注释

拉取请求模板可以提供指导,但仅供参考。 使用分支策略强制实施最佳做法,例如要求请求密钥分支(例如 main、需要成功生成)并强制实施所需的审阅者。 有关详细信息,请参阅 分支策略

先决条件

类别 要求
项目访问权限 项目的成员。
权限 - 查看专用项目中的代码:至少 是基本 访问权限。
- 克隆或参与专用项目中的代码: 参与者 安全组的成员或项目中的相应权限。
- 设置分支或存储库权限: 管理 分支或存储库的权限。
- 更改默认分支: 编辑存储库的策略 权限。
- 导入存储库: 项目管理员 安全组的成员或 Git 项目级 “创建存储库 ”权限设置为 “允许”。 有关详细信息,请参阅 “设置 Git 存储库权限”。
Services 已启用存储库
工具 可选。 使用 az repos 命令: Azure DevOps CLI

注释

在公共项目中,具有 利益干系人 访问权限的用户具有对 Azure Repos 的完全访问权限,包括查看、克隆和参与代码。

类别 要求
项目访问权限 项目的成员。
权限 - 查看代码:至少 基本 访问权限。
- 克隆或参与代码: 参与者 安全组的成员或项目中的相应权限。
Services 已启用存储库

什么是拉取请求模板?

拉取请求模板是一个文件,其中包含在创建拉取请求时添加到拉取请求说明中的 Markdown 文本。

Thank you for your contribution to the Fabrikam Fiber repo. 
Before submitting this PR, please make sure:

- [ ] Your code builds clean without any errors or warnings
- [ ] You are using approved terminology
- [ ] You have added unit tests

Azure Repos 允许创建以下类型的拉取请求模板:

  • 默认拉取请求模板,该模板会自动应用于存储库中的所有新拉取请求,除非由特定于分支的拉取请求模板重写
  • 自动应用于针对特定分支的拉取请求的特定于分支的拉取请求模板
  • 拉取请求创建者可以选择添加的其他拉取请求模板

拉取请求模板的类型由其文件名和文件夹位置确定,如以下部分所述。 文件名和文件夹位置不区分大小写,但它们必须位于存储库的默认分支中。

注释

所有拉取请求模板文件都必须位于存储库的默认分支(通常为 main)。 仅使用默认分支中的拉取请求模板文件。

默认拉取请求模板

创建新的拉取请求时,默认拉取请求模板会自动应用于说明字段。 若要使用默认拉取请求模板配置存储库,请创建一个命名 pull_request_template.md 文件,并将其 pull_request_template.txt 保存在存储库的默认分支中,并将其保存在以下文件夹之一。

  • 一个名为 .azuredevops 存储库根文件夹中的文件夹
  • 一个名为 .vsts 存储库根文件夹中的文件夹
  • 一个名为 docs 存储库根文件夹中的文件夹
  • 存储库的根文件夹

提供了多个位置,以便灵活地存储拉取请求模板。 创建拉取请求时,Azure Repos 按给定的顺序搜索指定文件夹,并使用它找到的第一个默认拉取请求模板。

在存储库中创建新的拉取请求时,除非应用 特定于分支的拉取请求模板 ,否则默认拉取请求模板的内容用于预填充拉取请求中的说明字段。

默认拉取请求模板

如果需要,可以通过从“添加模板”下拉列表中选择这些模板来编辑或添加到此说明,并追加其他拉取请求模板

注释

自动应用默认或分支特定的拉取请求模板时,它将替换通常用于默认说明的标准提交消息。 可以通过选择“ 添加提交消息”来添加它们。

分支特定的拉取请求模板

可以为面向特定分支的拉取请求配置分支特定的拉取请求模板。 若要使用特定于分支的拉取请求模板配置存储库,请创建一个 .txt.md 以分支命名的文件。 该名称必须与分支名称的第一个级别匹配,例如maindevreleasefeature。 每当拉取请求面向分支或其包含的任何分支时,都会应用每个分支特定的拉取请求模板。 例如,如果拉取请求面向分支或任何feature.md分支,feature则应用命名feature/*的拉取请求模板。

分支特定的拉取请求模板必须使用以下文件夹层次结构保存在存储库的默认分支中: pull_request_template/branches/ 这些文件夹必须基于存储库中的以下文件夹之一。

  • 一个名为 .azuredevops 存储库根文件夹中的文件夹
  • 一个名为 .vsts 存储库根文件夹中的文件夹
  • 一个名为 docs 存储库根文件夹中的文件夹
  • 存储库的根文件夹

例如,应用于分支中所有拉取请求的 dev 分支特定拉取请求模板将命名 dev.mddev.txt 位于以下位置之一。

  • <repository root>/.azuredevops/pull_request_template/branches/
  • <repository root>/.vsts/pull_request_template/branches/
  • <repository root>/docs/pull_request_template/branches/
  • <repository root>/pull_request_template/branches/

与默认拉取请求模板一样,提供了多个位置,以便灵活地存储特定于分支的拉取请求模板。 创建拉取请求时,Azure Repos 按给定的分支特定拉取请求模板的顺序搜索指定的文件夹,并使用它找到与分支名称匹配的第一个文件夹。 如果未找到特定于分支的拉取请求模板,Azure Repos 将搜索默认拉取请求模板,如前面的 默认拉取请求模板 部分所述。

分支特定的拉取请求模板

其他拉取请求模板

除了默认请求和分支特定的拉取请求模板,还可以配置其他拉取请求模板。 这些可以是 .md.txt 文件,位于默认分支中的以下文件夹之一。

  • <repository root>/.azuredevops/pull_request_template/
  • <repository root>/.vsts/pull_request_template/
  • <repository root>/docs/pull_request_template/
  • <repository root>/pull_request_template/

创建拉取请求后,可以通过从 “添加模板 ”下拉列表中选择任何可用的拉取请求模板来追加这些模板。 下拉列表中的名称基于模板的文件名。

在以下示例中列出了三个模板。

  • dev.md - 这是默认情况下应用于此拉取请求的分支特定模板,如文件名后列出的 默认 消息所示。
  • additional.md - 这是一个额外的模板。
  • pull_request_template.md - 这通常是默认模板,但它是由 dev.md 此拉取请求中的分支特定模板重写的。 尽管它默认未添加,但仍可以通过从列表中选择它来应用它。

其他拉取请求模板

选择所需附加模板的名称,将其内容追加到当前拉取请求说明。

追加了其他拉取请求模板

注释

可以通过追加 ?template=name.md 到 querystring 来指定拉取请求模板来替代任何匹配的默认或分支特定的拉取请求。

另请参阅