如何基于Commit ID或最新合并请求查找Merge Request ID
查询Merge Request ID的方法
方法1:通过Commit ID查询关联MR ID
GitLab 开放API原生支持通过提交哈希查询关联的合并请求,你可以直接调用如下接口:
接口规则:GET /projects/<项目ID>/repository/commits/<Commit ID>/merge_requests
你示例中的项目ID为9,假设你要查询的Commit ID为a1b2c3d4,请求示例如下:
curl "http://10.10.10.10/api/v4/projects/9/repository/commits/a1b2c3d4/merge_requests?private_token=<你的个人访问令牌>"
返回结果中的iid字段就是你需要填入接口路径的Merge Request ID,注意不要和全局id字段混淆,你给出的示例接口中的67就是iid对应的值。
方法2:查询项目最新的合并请求ID
如果你需要获取最新的合并请求,可以调用合并请求列表接口,按更新时间倒序排列取第一条即可:
接口规则:GET /projects/<项目ID>/merge_requests?order_by=updated_at&sort=desc&per_page=1
适配你示例项目的请求示例如下:
curl "http://10.10.10.10/api/v4/projects/9/merge_requests?order_by=updated_at&sort=desc&per_page=1&private_token=<你的个人访问令牌>"
注意事项
- 请替换请求中的
<你的个人访问令牌>为你自己的GitLab访问令牌,令牌需要开通read_api权限才能正常调用接口 - 如果你只需要查询已合并的MR,可以在请求参数中追加
&state=merged,过滤掉未合并的草稿、待审核状态的MR
内容的提问来源于stack exchange,提问作者user630702
相关产品推荐
相关产品推荐

