使用GitPullRequestCompletionOptions对Azure DevOps Pull Request实施壁球合并

时间:2019-02-25 11:44:49

标签: azure-devops azure-devops-rest-api

我正在尝试使用Azure DevOps Services REST API来设置PR Completion Options,以对请求请求实施壁球合并。

注意:我无法设置分支策略来强制执行壁球合并,因为我正在测试某些条件以查看是否需要进行壁球合并并尝试执行壁球合并,就像分支策略仅为此PR设置。

当我打以下电话时:

PATCH https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/pullrequests/{pullRequestId}?api-version=5.0

{
  "completionOptions": {
    "squashMerge": true
  } 
}

响应显示已设置值

A section of the response, showing the value of 'squashMerge' set to true.

但是,当尝试完成请求时,我希望选中“合并时压缩更改”复选框。

Squash option is not selected, or disabled.

如果我将表单保持原样并完成合并,则不会执行压扁操作。

如果将bypassPolicy设置为true,则完成选项仍然没有区别。

因此,总而言之,我知道调用成功,因为响应是通过设置的选项返回的,但是更改似乎并没有传递到Azure DevOps中的Pull Request。

3 个答案:

答案 0 :(得分:0)

Microsoft在the developer community forums中回答了以下答案。

  

在这种情况下,UI中的预期行为之间存在差异   并通过REST端点。在完成选项中设置squashMerge   告诉PR只有在完成南瓜后才能完成南瓜   REST端点。在用户界面中,我们尊重用户设置   使用户可以选择他们想做的事情(如果没有)   政策已启用)。在这种情况下,您没有启用策略,因此用户   可以 壁球。用户偏好实际上已被取代   您使用REST API所做的事情。如果壁球合并了以前的PR   我们会记住这一点,并在下一个创建相同的默认值   公关

     

TLDR:您不一定必须使用以下命令控制表单默认值   REST端点,并应使用策略强制执行壁球合并(或   希望您的用户可以根据自己的需要设置复选框   偏好设置,但我们不强制采用默认设置。

答案 1 :(得分:0)

您可以使用强制执行此操作的策略。

如果要访问DevOps中的分支,请选择分支->仅允许壁球合并的策略:

enter image description here

这应该使用壁球合并将所有请求拉入策略绑定的分支。

这是设置自动完成的工作方式: enter image description here

答案 2 :(得分:0)

这对我来说不起作用。

Branch Policy 与点击自动完成时看到的内容

Branch Policy

Auto Complete