Chu*_*dad 5 azure-pipelines azure-repos
我们正在使用 Azure DevOps 在我们的项目中采用 gitflow 流程。我有以下场景:
有两个问题:
鉴于我上面的两个要求,这是否表明我可能在分支和合并方面做错了什么
AzDo 中是否有工具可以根据源分支(自动)提供不同的合并策略?
谢谢,
我看不出 gitflow 进程的上述分支和合并有什么问题。请查看此文档以获取有关gitflow 流程的更多信息。
没有直接的方法可以根据源分支自动选择不同的合并策略。解决方法是,您可以使用Pull Request Update Rest api 将 pr 设置为 autoComplete,并根据源分支设置合并策略。下面是一个例子供参考。
1、首先创建一个构建管道并添加一个powershell任务来运行下面的脚本。您可以在此处查看创建经典 ui 管道的步骤。对于 yaml 管道,您可以查看此文档。
下面的脚本将根据 设定合并策略
System.PullRequest.SourceBranch,并为此 pr 启用自动完成功能。这样当满足所有要求时,pr就会自动完成。(您需要if(){}根据情况更改部分)。
$uri = "$(System.TeamFoundationCollectionUri)$(System.TeamProject)/_apis/git/repositories/$(Build.Repository.ID)/pullrequests/$(System.PullRequest.PullRequestId)?api-version=5.1"
$response = Invoke-RestMethod -Uri $uri -Headers @{authorization = "Bearer $(System.AccessToken)"} -Method get
$userid = $response.createdBy.id
$merge = "rebaseMerge"
if("$(System.PullRequest.SourceBranch)" -eq "refs/heads/release"){$merge = "noFastForward"}
$body =@{
autoCompleteSetBy = @{
id= "$($userid)"
}
status = "complete"
completionOptions= @{mergeStrategy = $merge}
}
$bjson = $body | ConvertTo-Json
Invoke-RestMethod -Uri $uri -Headers @{authorization = "Bearer $(System.AccessToken)"} -Method patch -ContentType application/json -Body $bjson
Run Code Online (Sandbox Code Playgroud)
2、然后配置Develop分支的分支策略。并选择上面创建的管道来设置构建验证。通过设置构建验证,pr 将触发运行在上述步骤中创建的构建管道。上述管道将根据源分支改变合并策略。
您还可以向 Microsoft 开发提交此功能的功能请求(单击建议功能并选择 azure devops)。
| 归档时间: |
|
| 查看次数: |
1599 次 |
| 最近记录: |