Automatically add a milestone for MR
Refer To
自动把一个 MR 放到对应的 Milestone 中(比如:这个MR)。我猜它可能是根据 MR 的合并时间以及 Milestone 的起止时间来选择正确的 Milestone 的。通过这个功能,我们能够精确地知道每个 Milestone 合并了哪些 bug fix / feature。
Upstream Sample: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/89890
任务触发条件
定时任务,频率时间暂时直接跟 Upstream 配置一致。
MR 条件
- 最近三个月(过期太久可能不好自动操作)
- 状态为 Merged
- 没有设置 milestone
执行操作
- 通过这个 API 查询 MR 对应的 Merge 的那一个 commit 属于哪些分支。
- 如果分支中有 "-stable-jh" 分支,就找到 commit 所属分支中最早的那个 "-stable-jh" 分支,该分支对应的 Versioned_milestone 就是 MR 对应的 Milestone;如果分支中没有 "-stable-jh" 分支,那么就找到最新的 "-stable-jh" 分支,该分支对应的 Versioned_milestone 的下一个 Versioned_milestone 就是 MR 对应的里程碑(比如 15-1-stable-jh 对应的下一个里程碑为15.2)。
cherry-pick 特殊情况
有些紧急情况,虽然 MR 没赶上 release 分支切出来之前合并,但是会通过 cherry-pick 插进 “对应时间里程碑” 发布。此时 triage-ops 项目感觉不好处理,建议在流程中处理,操作 cherry-pick 的同时对 MR 的里程碑配置对。
Upstream 类似功能参考
/cc @qianzhangxa
由 佳濠 高 编辑于