Azure devops 批量更新Azure Devops管道
是否有办法将Azure DevOps中的管道批量更新到我刚刚创建的新代理池?您可以使用REST API迭代所有构建定义并更新池 Powershell是你的朋友Azure devops 批量更新Azure Devops管道,azure-devops,continuous-integration,azure-pipelines,Azure Devops,Continuous Integration,Azure Pipelines,是否有办法将Azure DevOps中的管道批量更新到我刚刚创建的新代理池?您可以使用REST API迭代所有构建定义并更新池 Powershell是你的朋友 function GetVSTSCredential () { Param( $userEmail, $Token ) $base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes((&quo
function GetVSTSCredential () {
Param(
$userEmail,
$Token
)
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $userEmail, $token)))
return @{Authorization = ("Basic {0}" -f $base64AuthInfo)}
}
function Get-Projects() {
Param(
[Parameter(Mandatory = $true)] $userParams
)
try {
# Base64-encodes the Personal Access Token (PAT) appropriately
$authorization = GetVSTSCredential -Token $userParams.PAT -userEmail $userParams.userEmail
# GET
$Uri = "https://dev.azure.com/" + $userParams.VSTSAccount + "/_apis/projects"
$result = Invoke-RestMethod -Uri $Uri -Method Get -Headers $authorization -ContentType "application/json"
return $result.value
}
catch {
$ErrorMessage = $_.Exception.Message
$FailedItem = $_.ErrorDetails.Message
Write-Host ( "Error : " + $ErrorMessage + " Item : " + $FailedItem) -ForegroundColor Red
}
}
function Get-Queues() {
Param(
[Parameter(Mandatory = $true)] $userParams,
[Parameter(Mandatory = $true)] $project
)
try {
# Base64-encodes the Personal Access Token (PAT) appropriately
$authorization = GetVSTSCredential -Token $userParams.PAT -userEmail $userParams.userEmail
# GET https://$account.visualstudio.com/$_/_apis/distributedtask/queue
$Uri = "https://dev.azure.com/" + $userParams.VSTSAccount + "/" + $project + "/_apis/distributedtask/queues?api-version=3.2-preview"
$result = Invoke-RestMethod -Uri $Uri -Method Get -Headers $authorization -ContentType "application/json"
return $result.value
}
catch {
$ErrorMessage = $_.Exception.Message
$FailedItem = $_.ErrorDetails.Message
Write-Host ( "Error : " + $ErrorMessage + " Item : " + $FailedItem) -ForegroundColor Red
}
}
function Get-Builds() {
Param(
[Parameter(Mandatory = $true)] $userParams,
[Parameter(Mandatory = $true)] $project
)
try {
# Base64-encodes the Personal Access Token (PAT) appropriately
$authorization = GetVSTSCredential -Token $userParams.PAT -userEmail $userParams.userEmail
# GET https://$account.visualstudio.com/$_/_apis/build/definitions
$Uri = "https://dev.azure.com/" + $userParams.VSTSAccount + "/" + $project + "/_apis/build/definitions?api-version=4.1-preview.6"
$result = Invoke-RestMethod -Uri $Uri -Method Get -Headers $authorization -ContentType "application/json"
return $result.value
}
catch {
$ErrorMessage = $_.Exception.Message
$FailedItem = $_.ErrorDetails.Message
Write-Host ( "Error : " + $ErrorMessage + " Item : " + $FailedItem) -ForegroundColor Red
}
}
function Get-Build() {
Param(
[Parameter(Mandatory = $true)] $userParams,
[Parameter(Mandatory = $true)] $buildUri
)
try {
# Base64-encodes the Personal Access Token (PAT) appropriately
$authorization = GetVSTSCredential -Token $userParams.PAT -userEmail $userParams.userEmail
# GET build
$Uri = $buildUri + "?api-version=4.1-preview.6"
$result = Invoke-RestMethod -Uri $Uri -Method Get -Headers $authorization -ContentType "application/json"
return $result
}
catch {
$ErrorMessage = $_.Exception.Message
$FailedItem = $_.ErrorDetails.Message
Write-Host ( "Error : " + $ErrorMessage + " Item : " + $FailedItem) -ForegroundColor Red
}
}
function Update-Build() {
Param(
[Parameter(Mandatory = $true)] $userParams,
[Parameter(Mandatory = $true)] $build
)
try {
# Base64-encodes the Personal Access Token (PAT) appropriately
$authorization = GetVSTSCredential -Token $userParams.PAT -userEmail $userParams.userEmail
$json = $build | ConvertTo-Json -Depth 100 -Compress
$json = [Text.Encoding]::UTF8.GetBytes($json)
# PUT build
$Uri = $build.url
$headers = $authorization
$headers.Add("Accept", "api-version=4.1-preview.6")
$result = Invoke-RestMethod -Uri $Uri -Method Put -Body $json -ContentType "application/json" -Headers $headers
}
catch {
$ErrorMessage = $_.Exception.Message
$FailedItem = $_.ErrorDetails.Message
Write-Host ( "Error : " + $ErrorMessage + " Item : " + $FailedItem) -ForegroundColor Red
Write-Host $json
Write-Host $Uri
}
}
这里也有类似的例子:@CeceDong MSFT谢谢!由于@jessehouwing提供了正确的解决方案,您可以,这对阅读此帖子的其他社区成员是有益的。@CeceDong MSFT感谢您的提醒