创建一个自动PR并完成Azure DevOps

时间:2020-06-27 10:53:12

标签: azure-devops azure-pipelines azure-pipelines-release-pipeline azure-devops-rest-api azure-devops-extensions

我正在尝试创建一个流程,当分支a-> b的PR完成时,分支c-> d的自动PR创建并完成。

我看了这个问题,但没有提到自动完成

CI/CD pipelines Azure devops automatic merge after deploy release

我还可以为自动PR设置一个特定的策略,使其自动完成吗?

更新

我尝试使用以下呼叫:

https://docs.microsoft.com/en-us/rest/api/azure/devops/git/pull%20requests/update?view=azure-devops-rest-5.1

但是我得到了错误:

Invoke-RestMethod : {"$id":"1","innerException":null,"message":"Invalid argument value.\r\nParameter name: Invalid 
pull request auto complete set by id. Valid values are either the current user identity id, or an empty guid (to unset 
auto complete)."

我试图从响应中获取创建者ID,但它为空。

我试图分配 Project Collection Build Service(msazure),就像我在这里看到的那样: https://developercommunity.visualstudio.com/content/problem/298596/autocompletesetby-ignored-in-pull-request-rest-api.html

但是我遇到了错误。

2 个答案:

答案 0 :(得分:2)

创建PR后,您可以获得创建者ID:

$response = Invoke-RestMethod -Uri $url -Method Post -Headers $head -Body $jsonBody -ContentType "application/json;charset=UTF-8"

$currentUserId = $response.createdBy.id

并将他发送到更新json正文中:

$body = @{
    autoCompleteSetBy = @{ id = "$buildUserId" }
    completionOptions = ""
}    

$response = Invoke-RestMethod -Uri $url -Method Patch -Headers $head -Body $jsonBody -ContentType application/json

答案 1 :(得分:0)

在创建PR之后,请运行更新操作来设置“自动完成”。检查以下链接

https://docs.microsoft.com/en-us/rest/api/azure/devops/git/pull%20requests/update?view=azure-devops-rest-5.1