gpt4 book ai didi

azure-devops - 使用 Azure DevOps 经典构建管道和 TFVC 管理分支

转载 作者:行者123 更新时间:2023-12-05 06:08:35 25 4
gpt4 key购买 nike

在使用 Azure DevOps Classic Build Pipelines 和 TFVC 时,如何管理分支的构建?

我认为唯一可行的选择是使用新名称复制构建管道并更新源代码映射以指向新的 TFVC 分支。

我看到 ADO Web UI 提供了克隆单个构建定义的选项,但由于我有超过 200 多个构建管道要在我分支时克隆,是否有更有效的方法来执行此操作?还是编写自定义工具来利用 ADO REST Api 的唯一选择?

最佳答案

由于需要批量克隆流水线,使用脚本运行Rest API将是一个合理的方法。据我所知,除此之外没有简单的开箱即用方法。

您可以尝试以下 PowerShell 脚本示例:

$DefinitionIds = "PipelineIDs"  #InPut All Pipelineids(e.g. "324,323,xxx" )
$DefinitionId = $DefinitionIds.split(",");
$token = "PAT Token"

$token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($token)"))

foreach ($i in $DefinitionId)
{
echo $i

$url="https://dev.azure.com/{OrganizationName}/{ProjectName}/_apis/build/definitions/$($i)?api-version=6.0"


$response = Invoke-RestMethod -Uri $url -Headers @{Authorization = "Basic $token"} -Method Get -ContentType application/json

Write-Host "$($response | ConvertTo-Json -Depth 100)"


$response.repository.properties.tfvcMapping= '{"mappings":[{"serverPath":"$/TFVCBranchName","mappingType":"map","localPath":"\\"}]}' # ServerPath is the Branch name

$response.repository.name = "TFVCRepoName" #Repo Source Name

$response.name = "Pipeline $i Clone" # Cloned PipelineName

echo $response.name

$url1= "https://dev.azure.com/{OrganizationName}/{ProjectName}/_apis/build/definitions?api-version=6.0"


$json = @($response) | ConvertTo-Json -Depth 100

$response1 = Invoke-RestMethod -Uri $url1 -Headers @{Authorization = "Basic $token"} -Method Post -Body $json -ContentType application/json


}

这是脚本中使用的两个 Rest API:

Definitions - Get

Definitions - Create

结果:

克隆的管道将设置为新的 TFVC 分支和构建定义名称。

enter image description here

关于azure-devops - 使用 Azure DevOps 经典构建管道和 TFVC 管理分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65107374/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com