$homeDir = "$(Split-Path -parent $MyInvocation.MyCommand.Definition)"
$VSTS_RestApiHost = "https://vsrm.dev.azure.com/yourpath/_apis"
$VSTS_PAT = "YOUR_PAT_TOKEN_HERE"
$headers = @{Authorization = "Basic " + [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($VSTS_PAT)"))}
$relDefInfo = Get-Content "$homeDir\ReleasePipelineTemplate-Formatted.json"
Write-Host "Creating Release Pipeline..."
$createReleaseDef = "$($VSTS_RestApiHost)/release/definitions?api-version=4.1-preview.3"
$response = Invoke-RestMethod -Method Post -Uri $createReleaseDef -Body $relDefInfo -ContentType 'application/json' -Headers $headers
Write-Host "Create Release Pipeline done. Pipeline id: $($response.id)"
if ($response.id -gt 0) {
Write-Host "Release definition: succeeded."
}
Write-Host $response.id
.\CreateReleasePipeline.ps1
Creating Release Pipeline...
Create Release Pipeline done. Pipeline id: 71
Release definition: succeeded.
71
刷新您的发布管道网页,您应该会看到新创建的发布管道。
您可以继续尝试,直到满意为止。
我正在使用这个REST API将一个发布定义模板放入源代码库中,这样当我进行调整时,就不必更新50多个甚至更多的发布管道。我可以通过REST API调用检查发布定义是否存在,如果不存在则创建它,如果不是最新的则更新它。所有这些都不需要手动更新或在创建新的获取仓库时创建管道。我希望尽可能地自动化所有内容。我想尽可能少地进行更改,让系统自行更新。
请告诉我这是否有所帮助。
导出后,它会生成一个 JSON 文件并将其保存在本地文件夹中。 然后转到发布或加号(+)按钮,单击它,您可以看到导入选项,单击它并选择该 JSON 文件。 就这样.....