1

我正在致力于自动化 Jira 和 Github 之间的集成,其中票证通过基于拉取请求的状态/生命周期的工作流转换其状态(进行中 -> 代码审查 -> 完成)。

拉取请求创建:票证转换到代码审查状态
拉取请求合并:票证转换到完成状态

我遇到的问题是如何为 Jira 自动化流程发送足够的数据。开发人员提交消息包括我正在寻找的票证 ID ( git commit -m 'ID-22, <commit message here>),我还需要知道拉取请求数据以了解 PR 的状态。

为此配置 webhook 时,我选择接收拉取请求的事件以及发送到我的 Jira 自动化工作流的推送事件。

在此处输入图像描述

这些事件是单独发送的,这是主要问题,因为我需要这两个事件来应用票证自动化。例如,这是提交 webhook,它成功地从提交中找到票证,但是缺少拉取请求数据,因此无法采取任何操作。

在此处输入图像描述

下一个事件是拉取请求事件,它找不到票证,因为它在有效负载中缺少提交。

在此处输入图像描述

我可以使用包含有关提交和 PR 的数据的事件吗?如果可能,我宁愿避免设置机器人/服务器将它们合并在一起。
如果分支名称包含票证,我可以在技术上使拉取请求事件工作(单独),但这需要更改流程+很多时候拉取请求将包含多个票证的修复,分支名称策略太 1: 1. 理想情况下,我想从提交消息中发现票证

谢谢阅读!

4

1 回答 1

1

我使用 GitHub API 的经验:提交和拉取请求彼此没有关联。因此,拉取请求事件没有任何提交的上下文,反之亦然。

话虽如此,它仍然是可行的:

使用“拉取请求”事件,每次有拉取请求本身的事件时触发,例如打开、同步(新提交)、准备审查等。

然后:

选项 1. 使用拉取请求信息,查询 GitHub API 以获取提交信息: https ://developer.github.com/v3/pulls/#list-commits-on-a-pull-request 。

选项 2。不仅让开发人员在他们的提交中提及工作 ID,还让他们在 PR 标题中提及工作 ID,这样您就不需要进行单独的 API 调用,因为 PR 标题包含在拉取请求事件有效负载中 ( https://developer.github.com/webhooks/event-payloads/#pull_request

于 2020-10-27T21:02:51.053 回答