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

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

本文介绍如何在将 Azure Boards 项目与 GitHub 存储库连接后,将工作项链接到 GitHub 提交、拉取请求和分支。 可以使用 #mention 语法用于提交和分支,也可以直接从 Azure Boards 工作项中添加 GitHub 提交、拉取请求或分支链接。

注意

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

先决条件

类别 要求
权限 Azure Boards 项目和 GitHub 存储库的参与者
项目连接 Azure Boards 项目与 GitHub 存储库相连接,而要链接的提交、拉取请求和分支就在 GitHub 存储库中。 有关详细信息,请参阅 Azure Boards-GitHub 集成

注意

使用托管 XML 流程模型的项目需要更新工作项类型才能查看“开发”部分和 GitHub 链接类型。 有关详细信息,请参阅 用于选择工作项类型的更新 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的工作项将转换到与“已解决”类别相关联的第一个状态。 如果当前进程中不存在此类状态,系统将工作项转换为 “已完成 ”类别中的第一个状态。

有关详细信息,请参阅 在 Azure Boards 的待办事项和板中如何使用工作流类别状态

请查看下表中的示例:

提交或拉取请求消息 行动
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 的链接。 不进行转换。

注意

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

使用 AB# 向工作项添加链接时,这些链接将显示在拉取请求的 “开发 ”部分中。

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

从工作项创建 GitHub 分支

要直接从工作项创建 GitHub 分支,请执行以下步骤:

  1. 在面板中,查找要从中创建 GitHub 分支的工作项。

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

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

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

  4. 选择“ 创建”。

    “创建 GitHub Branch”对话框的屏幕截图。

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

  1. 打开工作项并转到 “链接 ”选项卡。

    工作项窗体的屏幕截图,“链接”选项卡,“添加指向问题的链接”。

  2. “添加链接 ”对话框中,选择其中一种 GitHub 链接类型,选择 GitHub 存储库,输入 GitHub 分支的 URL、提交或拉取请求,然后选择“ 添加链接”。

    在下面的示例中,我们添加了一个指向 GitHub 拉取请求的链接。

    “工作项”窗体的屏幕截图,“链接”选项卡,“添加链接”对话框,“GitHub 拉取请求”链接类型处于选中状态。

    Azure Boards 将完成检查,可以确保你输入了有效的链接。 链接到 GitHub 存储库 必须连接到 Azure Boards 项目 ,否则验证将失败。

注意

如果使用 Azure DevOps Sever 和 GitHub Enterprise Server,则完成 AB# 链接时会出现延迟。 我们采用“推送和拉取”设计,每小时从 GitHub 事件中拉取有关对提交、PR 和问题的增量更改的信息。

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

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

工作项窗体中的“开发”部分列出了已创建的链接,这些链接指向带有 GitHub 图标的 GitHub 提交和拉取请求。

工作项表单的屏幕截图,“开发”部分显示了 GitHub 链接。

选择所提供的链接,可以打开 GitHub 中的提交或拉取请求。

在看板上查看 GitHub 对象

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

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

后续步骤