Jira 问题管理
- Tier: Free, Premium, Ultimate
- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
您可以在 GitLab 中直接管理 Jira 问题。 然后,您可以在 GitLab 的提交和合并请求中通过 ID 引用 Jira 问题。 Jira 问题 ID 必须使用大写字母。
关联 GitLab 活动和 Jira 问题
通过此集成,您可以在处理 GitLab 问题、合并请求和 Git 时交叉引用 Jira 问题。 当您在 GitLab 问题、合并请求、评论或提交中提及 Jira 问题时:
- GitLab 会从 GitLab 中的提及链接到 Jira 问题。
- GitLab 会向 Jira 问题添加一个格式化的评论,该评论链接回 GitLab 中的问题、合并请求或提交。
例如,当此提交引用 GIT-1 Jira 问题时:
git commit -m "GIT-1 this is a test commit"GitLab 会向该 Jira 问题添加:
-
Web 链接部分中的引用。
-
活动部分中的评论,格式如下:
USER 在 PROJECT_NAME 的 RESOURCE_NAME 中提到了此问题|COMMENTLINK: ENTITY_TITLEUSER:提及 Jira 问题的用户名称,附带其 GitLab 用户资料的链接。RESOURCE_NAME:引用了 Jira 问题的资源类型(例如,GitLab 提交、问题或合并请求)。PROJECT_NAME:GitLab 项目名称。COMMENTLINK:提及 Jira 问题的链接。ENTITY_TITLE:GitLab 提交(第一行)、问题或合并请求的标题。
每个 GitLab 问题、合并请求或提交在 Jira 中只显示一个交叉引用。 例如,GitLab 合并请求上的多个评论引用同一个 Jira 问题, 在 Jira 中只会创建一个指向该合并请求的交叉引用。
您可以在问题上 禁用评论。
要求关联的 Jira 问题才能合并合并请求
- Tier: Ultimate
- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
通过此集成,您可以防止未引用 Jira 问题的合并请求被合并。 要启用此功能:
- 在左侧边栏,选择 Search or go to 并找到您的项目。
- 选择 Settings > Merge requests。
- 在 Merge checks 部分,选择 Require an associated issue from Jira。
- 选择 Save。
启用此功能后,未引用关联 Jira 问题的合并请求无法合并。合并请求会显示消息 To merge, a Jira issue key must be mentioned in the title or description。
在 GitLab 中自定义 Jira 问题匹配
您可以通过定义以下内容来配置 GitLab 如何匹配 Jira 问题键的自定义规则:
当您未配置自定义规则时,将使用 默认行为。
定义正则表达式模式
您可以使用正则表达式 (regex) 来匹配 Jira 问题键。 正则表达式模式必须遵循 RE2 语法。
要为 Jira 问题键定义正则表达式模式:
- 在左侧边栏,选择 Search or go to 并找到您的项目。
- 选择 Settings > Integrations。
- 选择 Jira issues。
- 转到 Jira issue matching 部分。
- 在 Jira issue regex 文本框中,输入正则表达式模式。
- 选择 Save changes。
有关更多信息,请参阅 Atlassian 文档。
定义前缀
您可以使用前缀来匹配 Jira 问题键。
例如,如果您的 Jira 问题键是 ALPHA-1,并且您定义了 JIRA# 前缀,
GitLab 会匹配 JIRA#ALPHA-1 而不是 ALPHA-1。
要为 Jira 问题键定义前缀:
- 在左侧边栏,选择 Search or go to 并找到您的项目。
- 选择 Settings > Integrations。
- 选择 Jira issues。
- 转到 Jira issue matching 部分。
- 在 Jira issue prefix 文本框中,输入前缀。
- 选择 Save changes。
在 GitLab 中关闭 Jira 问题
如果您已配置 GitLab 转换 ID,您可以直接从 GitLab 关闭 Jira 问题。 在提交或合并请求中使用触发词后跟 Jira 问题 ID。 当您推送包含触发词和 Jira 问题 ID 的提交时,GitLab:
- 在提及的 Jira 问题中添加评论。
- 关闭 Jira 问题。如果 Jira 问题有解决方案,则不会进行转换。
例如,使用以下任何触发词来关闭 Jira 问题 PROJECT-1:
Resolves PROJECT-1Closes PROJECT-1Fixes PROJECT-1
提交或合并请求必须针对您项目的 默认分支。 您可以在 项目设置 中更改项目的默认分支。
当您的分支名称与 Jira 问题 ID 匹配时,Closes <JIRA-ID> 会自动附加到您现有的合并请求模板中。
如果您不想关闭问题,请 禁用自动问题关闭。
关闭问题的用例
考虑以下示例:
- 用户创建 Jira 问题
PROJECT-7来请求新功能。 - 您在 GitLab 中创建合并请求来构建请求的功能。
- 在合并请求中,您添加问题关闭触发词
Closes PROJECT-7。 - 当合并请求被合并时:
- GitLab 为您关闭 Jira 问题。
- GitLab 向 Jira 添加一个格式化的评论,链接回解决该问题的提交。您可以 禁用评论。
自动问题转换
当您配置自动问题转换时,您可以将引用的 Jira 问题转换为下一个可用状态,状态类别为 Done。要配置此设置:
- 参考 Configure GitLab 说明。
- 选择 Enable Jira transitions 复选框。
- 选择 Move to Done 选项。
自定义问题转换
对于高级工作流,您可以指定自定义的 Jira 转换 ID:
- 根据您的 Jira 订阅状态使用相应的方法:
- (For users of Jira Cloud) 通过在 Text 视图中编辑工作流来获取您的转换 ID。转换 ID 显示在 Transitions 列中。
- (For users of Jira Server) 通过以下方式之一获取您的转换 ID:
- 使用 API,发出类似
https://yourcompany.atlassian.net/rest/api/2/issue/ISSUE-123/transitions的请求, 使用处于适当 “open” 状态的问题。 - 将鼠标悬停在您想要的转换链接上,并在 URL 中查找 action 参数。 转换 ID 可能因工作流而异(例如,bug 而不是 story),即使您要更改到的状态相同也是如此。
- 使用 API,发出类似
- 参考 Configure GitLab 说明。
- 选择 Enable Jira transitions 设置。
- 选择 Custom transitions 选项。
- 在文本字段中输入您的转换 ID。如果您插入多个转换 ID
(用
,或;分隔),问题将按照您指定的顺序依次移动到每个状态。如果某个转换失败,则中止序列。
禁用 Jira 问题上的评论
GitLab 可以交叉链接源提交或合并请求与 Jira 问题,而无需 向 Jira 问题添加评论:
- 参考 Configure GitLab 说明。
- 清除 Enable comments 复选框。