首页 > 解决方案 > 我们可以从 Azure Devops 管道提出和合并拉取请求吗?

问题描述

我有一个发布分支,通过它我执行 CI/CD yaml 管道并将应用程序部署在 AKS 上的不同环境中。

一旦我的 UAT 部署阶段完成,我想创建一个拉取请求并在没有冲突的情况下合并分支,从发布分支到主分支。并且仅在完成拉取请求后,应该开始 PROD 部署阶段。

是否有任何任务/脚本可以帮助我实现目标?

我已经检查了Create Pull Request扩展,但目前它只支持 Windows 机器。

我还阅读了有关创建拉取请求的 Azure DevOps REST API,但有人提到该 API 仅支持 2 次提交。

这里的任何帮助将不胜感激。

标签: gitazure-devopsazure-pipelinespull-requestazure-pipelines-yaml

解决方案


在 Linux 中,您可以使用PowerShell corerest API来创建 PR:

$body =  @{
             sourceRefName= "refs/heads/feature"
             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

推荐阅读