通过Azure DevOps API修改MR合并提交消息未生效的问题求助
Azure DevOps 自定义PR合并提交消息问题解决
问题背景
要将PR合并提交消息设为PR标题,但Azure DevOps默认会添加Merged PR#: <title>前缀,且无法直接修改默认模板。尝试通过API更新PR的completionOptions,设置了squash合并策略和自定义消息,API返回成功,但网页端看不到更新,手动合并时自定义消息也不生效。
关键解决步骤
1. 补充autoCompleteSetBy参数
调用API时,必须在请求体中添加autoCompleteSetBy字段,指定操作的用户/服务主体ID,否则网页端的默认设置会覆盖API配置。示例请求体:
{ "completionOptions": { "mergeStrategy": "squash", "mergeCommitMessage": "这里填PR标题或自定义内容", "bypassPolicy": false, "deleteSourceBranch": false }, "autoCompleteSetBy": { "id": "你的服务主体ID或用户ID" } }
2. 启用PR自动完成功能
仅设置completionOptions无法确保自定义消息生效,需要开启PR的自动完成。启用后,当PR满足分支策略(如通过审批、构建)时,会自动使用API设置的合并消息完成合并。
如果必须手动合并,需确保勾选网页端的「Customize merge commit message」选项,否则会触发默认模板覆盖自定义内容。
3. 处理网页端缓存延迟
API更新后,网页端可能存在缓存,刷新页面后再查看合并提交消息的配置,即可看到更新后的内容。
验证方式
- 调用GET接口获取PR详情,确认
completionOptions.mergeCommitMessage和autoCompleteSetBy已正确配置 - 触发自动合并后,检查最终的提交记录,确认合并消息为自定义内容
内容的提问来源于stack exchange,提问作者Ebig
相关产品推荐
相关产品推荐

