我们的团队有一个机器人,可以为我们的代码库的某些机械更改创建合并请求。我们希望这些 MR 在 CI 管道成功时自动合并,但我们的项目需要得到我们小组成员的批准。这意味着现在人类必须为每个机器人创建的 MR 手动单击“批准”和“合并”。显然 GitLab 没有办法为某些用户设置不同的批准规则,所以我还没有找到一种方法让机器人的用户不受此要求的影响。
我当前的想法是建立一个单独的流程来批准机器人创建的每个合并请求。有没有一种简单的方法可以以编程方式执行此操作?也就是说,是否有一个 API(或者更好的是命令行工具),当给定合并请求的分支名称时,它会批准与该分支关联的合并请求?
我也愿意接受其他方式,以最少的人为干预来实现这些变化。不过,我确实希望他们通过 CI 管道(目前这是通过让他们使用 MR 来完成的),并且 MR 在管道失败的极少数情况下也能提供帮助,因此我们可以调试出了什么问题。
如果重要的话:我们正在使用 gitlab.com,并且有一个“白银”计划。
您可以通过 GitLab API 执行此操作。这至少将是一个两步过程。
首先,通过合并请求批准端点批准合并请求。发送POST请求至https://gitlab.example.com/api/v4/projects/:id/merge_requests/:merge_request_iid/approve.
:id是项目 ID:merge_request_iid是合并请求本身的 ID/编号。接下来,您可以通过Accept MR API 端点接受(合并)合并请求。将PUT请求发送到和占位https://gitlab.example.com/api/v4/projects/:id/merge_requests/:merge_request_iid/merge符与前一个端点相同的位置。:id:merge_request_iid
关于“接受 MR”请求的一个注意事项是,如果您想在合并之前等待管道成功,则需要将该属性设置为merge_when_pipeline_succeeds。true否则,将立即合并。
还有可以为每个请求发送的各种其他可选属性。文档的链接概述了这些属性及其用途。
| 归档时间: |
|
| 查看次数: |
7238 次 |
| 最近记录: |