第三方集成
如果您已经习惯了像 Jira 或 Azure Boards 这样的成熟解决方案,您也可以继续使用这些工具。GitHub 与几乎所有现有的产品都有很好的集成。我将在这里展示如何与 Jira 和 Azure Boards 集成——但在 GitHub 市场上还有许多其他解决方案。
它简单吗? Jira 和 Azure Boards 是很棒的产品,具有高度可定制性。如果您想继续使用当前的工具,确保它符合我在本章中描述的所有要求。它简单吗?您能将所有工作都集中在其中吗?您是否从队列中拉取工作?您是否设置了 WIP 限制?流程效率如何? 您可能想考虑调整您的流程和项目模板,采用更精简的工作方式。迁移到新平台始终是减少负担的好机会。如果您进行集成,请确保不会继承拖慢进度的债务。 |
Jira
GitHub 和 Jira 都在它们的市场中提供了连接这两个应用的插件。如果您创建一个新的 Jira 项目,可以直接在流程中添加 GitHub(见图 2.23)。您也可以稍后在 Jira 的 Apps | Find new Apps 中添加它。

安装过程非常简单,具体说明可以在这里找到: https://github.com/marketplace/jira-software-github。
您需要安装这两个应用并在 Jira 中连接到 GitHub 组织。在 GitHub 中,您可以选择连接整个组织中的所有仓库,或者仅选择特定的仓库。如果您的组织有许多仓库,同步可能需要一些时间!
您可以在 Jira 中通过 Apps | Manage your apps | GitHub | Get started 来检查您的配置和同步状态(见图 2.24):

一旦同步激活,您就可以通过提及 Jira 问题的 ID 来将问题、拉取请求和提交与 Jira 问题链接。该 ID 始终由项目关键字和表示项目项的整数组成(例如,GI-666)。
如果您在 GitHub 问题中指定了 Jira 问题 [GI-1] 和 [GI-2],文本会自动链接到相应的 Jira 问题(见图 2.25):

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

您还可以使用智能提交(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
有关智能提交的更多信息,请参见 https://support.atlassian.com/jira-software-cloud/docs/process-issues-with-smart-commits 。
智能提交仅在您提交消息中使用的电子邮件地址在 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)。

如果您在 AB 引用之前添加 fix
、fixes
或 fixed
等关键字,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):

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