Git 在Azure DevOps中完成发布后,如何创建拉取请求?
我正在从事的一个项目有两个长期存在的特性分支和主分支 为了完全自动化部署,我想在Azure DevOps发布的任何时候都创建一个从master到这两个功能分支的pull请求Git 在Azure DevOps中完成发布后,如何创建拉取请求?,git,azure-devops,azure-pipelines,pull-request,azure-pipelines-release-pipeline,Git,Azure Devops,Azure Pipelines,Pull Request,Azure Pipelines Release Pipeline,我正在从事的一个项目有两个长期存在的特性分支和主分支 为了完全自动化部署,我想在Azure DevOps发布的任何时候都创建一个从master到这两个功能分支的pull请求 Azure DevOps中的哪种工具允许我将创建拉请求作为发布任务?您可以在发布期间通过创建拉请求 有,但可能不适合你的要求 简单的方法是,您可以通过PowerShell任务来完成此任务: 选择阶段(例如,在代理上运行)并选中允许脚本访问OAuth令牌选项。你也可以用 添加PowerShell任务 简单示例: param(
Azure DevOps中的哪种工具允许我将创建拉请求作为发布任务?您可以在发布期间通过创建拉请求 有,但可能不适合你的要求 简单的方法是,您可以通过PowerShell任务来完成此任务:
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”-令牌[$(System.AccessToken)或个人访问令牌]
您可以安装该扩展,它使您能够使用多目标分支从发布管道自动创建请求:
将这些任务作为本地可用的任务在VSTS@baywet您可以通过VSTS扩展构建自定义任务:我接受了您的答案,因为它似乎是正确的;尽管如此,我并没有亲自测试它,而是转向了基于主干的开发,在那里这不再是一个问题。我很感激你能如此迅速地做出反应,并给出一个彻底的解决方案!我参加聚会迟到了,但是:我得到了
“TF401027:您需要Git'PullRequestContrible'权限来执行此操作。
使用OAuth令牌($(System.AccessToken))。不过我有相应的权限。有什么想法吗?您可以尝试此替代身份验证方法:$headers=@{Authorization=”Bearer$env:SYSTEM\u ACCESSTOKEN“}$pipeline=Invoke RestMethod-Uri$url-Method Post-Headers$Headers-Body$Body-ContentType'application/json'