GitLab中merge_when_pipeline_succeeds值与UI配置不符的原因咨询
GitLab MR API中merge_when_pipeline_succeeds始终为false的原因
你遇到的问题是因为项目级合并检查和MR级自动合并设置是两个完全独立的功能,API返回的merge_when_pipeline_succeeds字段对应的是后者,而非前者:
- 你在项目设置里启用的「Pipelines must succeed」是合并前置强制要求:它的作用是拦截所有未通过流水线的MR合并操作,确保只有流水线成功的MR才能被合并,但这不会自动开启「流水线成功后自动合并」的功能。
- API中的
merge_when_pipeline_succeeds属性,对应的是MR的自动合并开关:只有当你在UI中手动点击了「当流水线成功时合并」按钮,或者通过API创建/更新MR时显式设置merge_when_pipeline_succeeds=true,这个字段的值才会变为true。
简单来说,项目的「Pipelines must succeed」是不满足条件就不让合并,而merge_when_pipeline_succeeds是满足条件就自动帮你合并,两者逻辑完全不同,所以你看到的API返回值和UI配置不一致是正常的设计结果。
验证方法:打开一个MR,在UI中点击「当流水线成功时合并」,之后再调用GET /projects/:id/merge_requests/:merge_request_iid接口,就能看到merge_when_pipeline_succeeds变为true。
内容的提问来源于stack exchange,提问作者javaxiss
相关产品推荐
相关产品推荐

