gpt4 book ai didi

migration - 我可以批量更新 VSTS 构建管道定义吗?

转载 作者:行者123 更新时间:2023-12-03 07:58:10 25 4
gpt4 key购买 nike

我正在从本地 TFS 实例迁移到 VSTS。我有很多已迁移到 VSTS 的构建管道(vNext 构建定义),但现在我必须全部更新它们才能使用特定的代理。

UI 和命令行客户端中都没有可用的选项。

我是否缺少可用的选项以便我可以一次更新它们?

最佳答案

基于我与 Manuel 一起完成的迁移工作(引用 Jesse 提到的帖子),我提供了一些脚本来获取 TFS 队列,然后使用它来更新 VSTS 构建定义。

  • Read-QueuesFromTfs.ps1
  • Repair-BuildDefinitions.ps1

两个脚本都需要一个参数 PersonalAccessToken - 一个是针对您所针对的 VSTS 帐户的 PAT,另一个是针对 TFS 环境。

第一个脚本可帮助您获取包含所有 TFS 队列的 queues.json 文件。第二个脚本迭代您为更新生成定义而定位的 VSTS 项目。脚本应该是不言自明的。

# Get all queues and based on previous names get the id's
(Invoke-RestMethod `
-Uri "https://$account.visualstudio.com/$_/_apis/distributedtask/queues" `
-Headers @{Authorization = "Basic $auth"; Accept = "application/json; api-version=3.2-preview" } `
-Method Get `
-ContentType "application/json" -Verbose).value | % { $vstsqueues[$_.name] = $_.id }

# get all the builds
$builds = (Invoke-RestMethod `
-Uri "https://$account.visualstudio.com/$_/_apis/build/definitions" `
-Headers @{Authorization = "Basic $auth"; Accept = "application/json; api-version=4.1-preview.6" } `
-Method Get `
-ContentType "application/json").value

# get the full build definition
$build = Invoke-RestMethod `
-Uri $_.url `
-Headers @{Authorization = "Basic $auth"; Accept = "application/json; api-version=4.1-preview.6" } `
-Method Get `
-ContentType "application/json"

# get queue
$queuename = $tfsqueues[$_.queue.id]
Write-Output " queue name: $queuename"

# update build
$build.queue = @{ id = $vstsqueues[$queuename] }

# post changes
Invoke-RestMethod `
-Uri $_.url `
-Headers @{Authorization = "Basic $auth"; Accept = "application/json; api-version=4.1-preview.6" } `
-Method Put `
-ContentType "application/json" `
-Body ($build | ConvertTo-Json -Depth 100 -Compress) | Out-Null
}
}

在这个文件中描述。 https://github.com/JasperGilhuis/VSTS-RestAPI/blob/master/README.md#update-vsts-build-definitions-based-on-tfs-queues

查看存储库中的 Builds 文件夹 https://github.com/JasperGilhuis/VSTS-RestAPI/tree/master/Builds

关于migration - 我可以批量更新 VSTS 构建管道定义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51865945/

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