CI/CD 部署发布后管道 Azure devops 自动合并

CI/CD pipelines Azure devops automatic merge after deploy release

我有一个经典的环境。设置如下:

我有 2 个分支:DevelopMaster

Azure DevOps 中是否有任何方法可以设置以下 规则:

  1. 在开发环境中部署成功时(定义在 azure devops 的发布管道)------> 自动创建一个 pull request 以将 develop 合并到 硕士.

  2. 或另一个:如果开发分支Build成功------> 自动创建一个pull request以合并发展为大师

我们将不胜感激。

  1. 没有 build-in 任务,但您可以使用 oauth 令牌自己编写脚本,或使用您自己的身份验证针对 api.
  2. 发出请求
  3. 在这里可以使用几乎相同的方法,或者您可以使用分支策略强制拉取请求在合并到 master 之前进行验证(在我看来这更好,因为在每次提交时从 develop 合并到 master毫无意义)。

编辑:

我刚刚上传了一个扩展程序: https://marketplace.visualstudio.com/items?itemName=ShaykiAbramczyk.CreatePullRequest


您可以使用 Azure DevOps Rest API 创建一个 Pull Request,所以在构建/发布的最后添加一个 PowerShell 任务来完成它,例如:

$body =  @{
             sourceRefName= "$(Build.SourceBranch)"
             targetRefName = "refs/heads/master"
             title = "PR from Pipeline"
     }

$head = @{ Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"  }
$json = ConvertTo-Json $body
$url = "$(System.TeamFoundationCollectionUri)$(System.TeamProject)/_apis/git/repositories/$(Build.Repository.Name)/pullrequests?api-version=5.0"
Invoke-RestMethod -Uri $url -Method Post -Headers $head -Body $json -ContentType application/json

您需要允许脚本访问 OAuth 令牌(选中代理作业选项中的复选框):

结果:

我将基本参数放在 body 中(从分支、到分支、标题),但您可以添加更多参数,如审阅者,请查看文档 here