如何在VSTS中完成发布后创建Pull请求?

时间:2018-02-06 01:59:39

标签: git azure-devops pull-request azure-pipelines-release-pipeline azure-pipelines-build-task

我正在进行的项目有2个长期的功能分支以及主分支。

要完全自动化部署,我希望在部署从VSTS版本发布时随时从master创建拉动请求到这两个功能分支。

VSTS中的哪种工具可以让我创建拉取请求作为发布任务?

2 个答案:

答案 0 :(得分:5)

您可以在发布期间通过Pull Request REST API创建拉取请求。

Invoke HTTP REST API task但可能不符合您的要求。

简单的方法是您可以通过 PowerShell任务

来完成
  1. 选择阶段(例如,在代理上运行)并选中允许脚本访问OAuth令牌选项。您也可以使用Personal Access Token
  2. 添加PowerShell任务
  3. 简单样本:

    param(
    [string]$project,
    [string]$repo,
    [string]$sourceBranch,
    [string]$targetBranch,
    [string]$title,
    [string]$des,
    [string]$token
    )
    $bodyObj=@{
      "sourceRefName"="refs/heads/$sourceBranch";
      "targetRefName"= "refs/heads/$targetBranch";
      "title"= "$title";
      "description"="$des";
    }
    $bodyJson=$bodyObj| ConvertTo-Json
    $uri="https://XXX.visualstudio.com/DefaultCollection/$project/_apis/git/repositories/$repo/pullRequests?api-version=3.0"
    Write-Output $bodyJson
    Write-Output $uri
    $base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f "test",$token)))
    $result= Invoke-RestMethod -Method POST -Uri $Uri -ContentType "application/json" -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -Body $bodyJson
    

    参数:-project "XXX" -repo "XXX" -sourceBranch "XX" -targetBranch "XX" -title "XX" -des "XX" -token [$(System.AccessToken) or personal access token]

答案 1 :(得分:1)

您可以安装Create Pull Request扩展名,它使您能够从具有多目标分支的发布管道中自动创建提取请求:

enter image description here