通过


将 GitHub 提交、拉取请求、分支和问题关联到 Azure Boards 的工作项中

Azure DevOps 服务 |Azure DevOps Server |Azure DevOps Server 2022

在本文中,了解如何在将 Azure Boards 项目与 GitHub 存储库连接后,将工作项链接到 GitHub 提交、拉取请求、分支和构建。 可以使用#mention语法用于提交和分支,使用! 提及可以从工作项讨论中引用GitHub的拉取请求,或者直接从Azure Boards工作项中添加GitHub提交、拉取请求或分支的链接。

Note

GitHub集成支持:

  • Azure DevOps Services:通过用于GitHub的 Azure Boards 应用与 GitHub.com 和 GitHub Enterprise Server 存储库集成。
  • Azure DevOps Server 2020 及更高版本:仅支持与 GitHub Enterprise Server 存储库集成。
  • 其他 Git 存储库:不支持集成。

Prerequisites

Category Requirements
权限 Contributor至Azure Boards项目和GitHub存储库的贡献者。
项目连接 Azure Boards项目已连接至 GitHub 存储库,其中有您想要链接的提交、拉取请求和分支。 有关详细信息,请参阅 Azure Boards-GitHub 集成

Note

若要查看“开发”部分和GitHub链接类型,使用托管 XML 进程模型的项目需要更新工作项类型。 有关详细信息,请参阅 用于选择工作项类型的更新 XML 定义

在GitHub提交、拉取请求或问题中,使用以下语法创建指向Azure Boards工作项的链接。 在提交消息的文本中输入 AB#ID。 或者,对于拉取请求或问题,请在说明中输入 AB#ID。 在注释或拉取请求标题中使用 AB#ID 不会在工作项上生成链接。

AB#{ID}

例如,AB#125 链接到工作项 ID 125。

还可以输入提交或拉取请求消息以转换工作项。 系统识别{state}{state category},以及fixfixesfixed,并将其应用于后续的#-mention项目。

例如,当拉取请求说明包含有效的状态名称时, Closed AB#1234系统将引用的工作项更新为该特定状态。 如果无法直接识别状态名称,Azure Boards尝试将其与工作流类别(如 ResolvedCompleted)匹配。 如果找到匹配项,则工作项将转换为在该类别下定义的第一个可用状态。

默认情况下,使用 fixfixesfixed 引用的工作项会转换为与 已解析 类别关联的第一个状态。 如果当前进程中不存在此类状态,系统将工作项转换为 “已完成 ”类别中的第一个状态。

Important

你仍然可以链接工作项并指向其他分支,但状态转换规则只有在合并请求被合并到默认分支后才适用。

有关详细信息,请参阅工作流类别状态在 Azure Boards 积压和看板中的使用方式

请查看下表中的示例:

提交或拉取请求消息 Action
Fixed AB#123 链接并将工作项转换为 “已解决 的工作流状态”类别;如果未定义,则为 “已完成 ”工作流状态类别。
Closed AB#123 链接并将工作项转换为 “已关闭 ”工作流状态。 如果没有定义,则不进行转换。
Adds a new feature, fixes AB#123. 链接并将工作项转换为 “已解决 的工作流状态”类别;如果未定义,则为 “已完成 ”工作流状态类别。
Fixes AB#123, AB#124, and AB#126 指向 Azure Boards 的工作项 123、124 和 126 的链接。 仅将第一项(123)转换为 “已解析 的工作流状态”类别;如果未定义,则转换 “已完成 ”工作流状态类别。
Fixes AB#123, Fixes AB#124, Fixes AB#125 指向 Azure Boards 工作项 123、124 和 126 的链接。 将所有项转换为“已解析”工作流状态类别;如果未定义任何工作流状态类别,则转换为“已完成”工作流状态类别。
Fixing multiple bugs: issue #123 and user story AB#234 GitHub问题123和Azure Boards工作项234的链接。 不进行转换。

Note

如果将同一GitHub存储库连接到两个或多个Azure DevOps组织中定义的项目,则可能会看到意外的 AB# 提及链接。 有关详细信息,请参阅 解决连接问题。 因此,建议仅将GitHub存储库连接到单个Azure DevOps组织中定义的项目。

在拉取请求说明中使用 AB# 添加指向工作项的链接时,这些链接将显示在GitHub拉取请求的 Development 节中。 只有在拉取请求说明中使用 AB# 时,这些链接才可用。 如果直接从工作项链接到拉取请求,它们不会出现。 从说明中删除 AB# 引用也会从“开发”部分删除该引用。

 GitHub 拉取请求开发部分的 AB# 链接截图。

从工作项创建GitHub分支

若要直接从工作项创建GitHub分支,请使用以下步骤:

  1. 在开发板中,找到要用于创建GitHub分支的工作项。

  2. 选择 工作项操作>新建 GitHub 分支

    工作项的截图中,选择了“更多操作”并突出显示了“新建GitHub分支”选项。

  3. 创建GitHub分支对话框中,输入分支名称。 选择GitHub存储库和基分支。

  4. 选择 创建

    “创建 GitHub 分支”对话框的截图。

    Azure Boards在指定的GitHub存储库中创建分支,并将其链接到工作项。 有关详细信息,请参阅 Azure Boards-GitHub 集成

  1. 打开工作项并转到 “开发 ”区域。

  2. 选择“添加链接”。 从每个下拉菜单中,选择link 类型GitHub存储库GitHub拉取请求。 可以在存储库中搜索和向下钻取,以查找并选择特定的拉取请求或提交,而无需复制和粘贴 URL。

  3. 选择“添加链接”。

    显示用于向工作项添加拉取请求链接的五步序列的屏幕截图。

    Azure Boards检查以确认您输入的是有效的链接。 链接到的GitHub存储库必须连接到Azure Boards项目,否则验证将失败。

Note

如果使用 Azure DevOps Server 和 GitHub Enterprise Server,则完成 AB# 链接时存在延迟。 此过程使用“推送和拉取”设计,每小时从GitHub事件中拉取提交、PR 和问题上的增量更改。

多个事件自动更新工作项窗体上的链接,因此无需手动创建它们。 这些事件包括:

GitHub事件 Action
链接到分支 从分支创建拉取请求时,它会自动链接到工作项。
合并提交 合并拉取请求后,生成的合并提交会自动链接到工作项。
删除分支 如果删除分支(通常在合并后),则其链接会自动从工作项中删除。

工作项窗体中的“开发”部分列出了使用 GitHub 图标创建 GitHub 提交和拉取请求的链接。

工作项窗体的截图中,“开发”部分显示 GitHub 链接。

选择链接以在 GitHub 中打开提交或拉取请求。

GitHub拉取请求洞察

“开发”部分中的链接GitHub拉取请求显示额外的状态详细信息,因此无需在GitHub中打开拉取请求即可评估进度。

拉取请求洞见的先决条件

若要查看拉取请求的分析,请转到 GitHub 中的 Azure Boards 应用,并接受更新后的对检查功能的读取和写入访问权限。

Azure Boards GitHub 应用权限对话框的截图,显示了更新的检查权限。

查看拉取请求状态详细信息

  1. 打开一个与 GitHub 拉取请求相关联的工作项。

  2. “开发 ”部分中,找到链接的拉取请求。 拉取请求链接旁边会显示以下状态详细信息:

    • 草稿状态:显示拉取请求是否仍然是草稿。
    • 评审状态:显示拉取请求需要评审、已批准还是已请求更改。
    • 检查状态:显示 CI 检查是通过、失败还是挂起。

    “开发”部分的截图,其中显示了一个关联的GitHub拉取请求,并带有关闭、审阅和检查状态的详细信息指示器。

  3. 将鼠标悬停在状态指示器上以查看更多详细信息,或选择拉取请求链接以直接在GitHub中打开它。

使用 ! 提及GitHub拉取请求

使用 ! 提及来直接从任何工作项的富文本栏目或讨论注释中引用和讨论 GitHub 的拉取请求。 在文本字段中键入 ! 时,将显示一个选取器,可用于从连接的存储库中搜索并选择GitHub拉取请求。 所选拉取请求作为可单击链接插入。

使用此功能可以轻松地在工作项说明、验收条件或讨论线程中引用相关的拉取请求,而无需手动复制 URL。

Gif 显示如何使用 !提及从工作项讨论中引用GitHub拉取请求

查看 YAML 管道的生成状态(在生成中集成)

使用 Azure Pipelines YAML 构建托管在 GitHub 存储库中的代码时,可以在关联的工作项上自动生成 在生成时集成 链接。 此功能为GitHub存储库提供构建可追溯性,实现与Azure Repos相同的使用体验。

启用此功能:

  1. 打开 YAML 管道,选择“ 更多操作”,然后选择“ 设置”。

  2. 管道设置对话框中,启用自动链接此生成中的新工作项

    YAML 管道设置对话框的屏幕截图,其中显示了此生成选项中的“自动链接新工作项”。

生成完成后,每个关联的工作项的“开发”部分会自动显示集成生成链接,使团队能够完全跟踪工作项的生成。

工作项的屏幕截图,其中显示了“开发”部分中的“集成生成”链接。

有关配置此设置的详细信息,请参阅 配置管道以支持工作跟踪

在板上查看GitHub对象

通过在面板上启用GitHub批注功能,您可以快速打开已链接的GitHub提交、拉取请求或问题,以获取更多详细信息。 有关详细信息,请参阅 自定义卡片

工作项卡片上显示 GitHub 链接的板的截图。

后续步骤