第三方集成

如果您已经习惯了像 Jira 或 Azure Boards 这样的成熟解决方案,您也可以继续使用这些工具。GitHub 与几乎所有现有的产品都有很好的集成。我将在这里展示如何与 Jira 和 Azure Boards 集成——但在 GitHub 市场上还有许多其他解决方案。

它简单吗?

Jira 和 Azure Boards 是很棒的产品,具有高度可定制性。如果您想继续使用当前的工具,确保它符合我在本章中描述的所有要求。它简单吗?您能将所有工作都集中在其中吗?您是否从队列中拉取工作?您是否设置了 WIP 限制?流程效率如何?

您可能想考虑调整您的流程和项目模板,采用更精简的工作方式。迁移到新平台始终是减少负担的好机会。如果您进行集成,请确保不会继承拖慢进度的债务。

Jira

GitHub 和 Jira 都在它们的市场中提供了连接这两个应用的插件。如果您创建一个新的 Jira 项目,可以直接在流程中添加 GitHub(见图 2.23)。您也可以稍后在 Jira 的 Apps | Find new Apps 中添加它。

image 2024 12 26 20 08 58 909
Figure 1. 图 2.23 – 将 GitHub 添加到您的 Jira 项目中

安装过程非常简单,具体说明可以在这里找到: https://github.com/marketplace/jira-software-github。

您需要安装这两个应用并在 Jira 中连接到 GitHub 组织。在 GitHub 中,您可以选择连接整个组织中的所有仓库,或者仅选择特定的仓库。如果您的组织有许多仓库,同步可能需要一些时间!

您可以在 Jira 中通过 Apps | Manage your apps | GitHub | Get started 来检查您的配置和同步状态(见图 2.24):

image 2024 12 26 20 09 35 236
Figure 2. 图 2.24 – 在 Jira 中查看 GitHub 配置和同步状态

一旦同步激活,您就可以通过提及 Jira 问题的 ID 来将问题、拉取请求和提交与 Jira 问题链接。该 ID 始终由项目关键字和表示项目项的整数组成(例如,GI-666)。

如果您在 GitHub 问题中指定了 Jira 问题 [GI-1] 和 [GI-2],文本会自动链接到相应的 Jira 问题(见图 2.25):

image 2024 12 26 20 09 59 984
Figure 3. 图 2.25 – 将 GitHub 问题链接到 Jira 问题

如果您在提交消息中提到 Jira 问题,它们会自动链接到 Jira 问题下的 Development 部分(见图 2.26)。您还可以深入查看提交,查看更改的文件以及每个提交中的更改数量。

image 2024 12 26 20 10 26 661
Figure 4. 图 2.26 – 在 Jira 中链接 GitHub 工件

您还可以使用智能提交(smart commits)在提交消息中执行 Jira 问题的操作。智能提交的语法如下:

<ignored text> <ISSUE_KEY> <ignored text> #<COMMAND> <optional
COMMAND_ARGUMENTS>

目前,支持三种命令:

  • comment:向 Jira 问题添加评论。

  • time:添加您在 Jira 问题上工作的时间。

  • transition:更改 Jira 问题的状态。

以下是智能提交的几个示例:

  • 以下提交消息会向问题 GI-34 添加评论“corrected indent issue”:

    GI-34 #comment corrected indent issue
  • 此提交消息会向 GI-34 添加时间:

    GI-34 #time 1w 2d 4h 30m Total work logged
  • 此提交消息会向 GI-66 添加评论并关闭该问题:

    GI-66 #close #comment Fixed this today

智能提交仅在您提交消息中使用的电子邮件地址在 Jira 中具有足够权限时才能生效!

Jira 和 GitHub 有着紧密的集成。如果您的团队已经习惯使用 Jira,最好继续使用它并通过集成与 GitHub 进行配合。

Azure Boards

Azure Boards 也与 GitHub 紧密集成,设置起来非常简单。您只需从 GitHub 市场安装 Azure Boards 应用(请参见 https://github.com/marketplace/azure-boards ),然后按照指示进行操作。

您可以直接在 Azure Boards 问题(或任何其他工作项类型)的 “开发” 部分链接 GitHub 提交和 GitHub 拉取请求。或者,您也可以使用以下语法引用工作项:AB#<id of Azure Board Issue>(例如,AB#26)。

这些 GitHub 链接会以 GitHub 图标显示在工作项卡片上(见图 2.27)。

image 2024 12 26 20 14 05 910
Figure 5. 图 2.27 – 在 Azure Boards 中链接 GitHub 工件

如果您在 AB 引用之前添加 fixfixesfixed 等关键字,Azure Boards 问题将自动过渡到 “已完成” 状态。以下是一些示例:

  • 以下提交消息将在提交合并时将问题 666 链接,并将问题过渡到 “已完成” 状态:

    Fixes AB#666
    Update documentation and fixed AB#666
  • 以下提交消息将链接问题 42 和 666,但只会将 666 过渡到 “已完成”:

    Implemented AB#42 and fixed AB#666
  • 该关键字只对一个引用有效。以下提交消息将链接所有三个问题,但仅 666 会被移到 “已完成”:

    Fixes AB#666 AB#42 AB#123
  • 如果关键字不直接位于引用之前,则不会过渡任何问题!

    Fixed multiple bugs: AB#666 AB#42 AB#123

您可以在 GitHub 的 README 文件中添加一个徽章,显示 Azure Boards 问题的数量。您可以在 Azure Boards 的设置中(位于面板右侧的齿轮图标下)获取徽章 URL,在 “状态徽章(Status badge)” 部分找到。您只能显示进行中的问题数量或所有问题的数量(见图 2.28):

image 2024 12 26 20 18 15 812
Figure 6. 图 2.28 – 向 GitHub README 文件添加徽章

Azure Boards 集成的设置非常简单,使用起来也很自然。如果您的团队已经习惯了 Azure Boards,留在 Azure Boards 并利用其与 GitHub 的紧密集成是一个很好的选择。