自动将AzureDevOps中的生成管道连接到具有特定前缀的新创建的存储库

时间:2019-11-21 16:24:40

标签: github azure-devops repository devops build-pipeline

我在Azure DevOps中创建了一个构建管道,并将其连接到我在Github中的一个存储库。但是,我想将此构建管道连接/克隆到我的github中任何新创建的存储库中,并在其名称中带有特定前缀,例如单词“ Build”。

2 个答案:

答案 0 :(得分:1)

您可以导航到构建管道,在管道详细信息页面的右侧选择“选项”菜单,然后选择setComponentState({ ...componentState, varX: newValue }) 项目。

然后,您可以将克隆的构建管道指向新的Git存储库,并更改管道的名称以具有所需的前缀。

答案 1 :(得分:0)

  

自动将AzureDevOps中的构建管道连接到具有特定前缀的新创建的存储库

要自动执行此过程,您需要使用REST AP定义来获取json主体:

https://docs.microsoft.com/en-us/rest/api/azure/devops/build/definitions/get?view=azure-devops-rest-5.0

然后,我们可以根据需要更改json文件,例如存储库URL,将其更改为github中新创建的存储库的新路径。

最后,我们可以使用带有上述Json文件的create definition REST API来创建新管道:

https://docs.microsoft.com/en-us/rest/api/azure/devops/build/definitions/create?view=azure-devops-rest-5.0

$thisBuildDef.Name = $Clone_Name
$thisBuildDef.path = $BuildDefURL  # Relative to the Project name; like "Release/2019"
$thisBuildDef.buildNumberFormat = $BuildNumberFormat

# Update source control path to new branch
$defAsJson = $thisBuildDef | ConvertTo-Json -Depth 100
$defAsJson = $defAsJson.Replace($sourceControlMainline, $sourceControlBranch)

$Uri = "https://dev.azure.com/{organization}/{project}/_apis/build/definitions?api-version=2.0"

$newBuildDef = Invoke-RestMethod -Uri $Uri -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -Method Post -Body $defAsJson -ContentType "application/json" -ErrorAction Stop

检查文档Using JSON via REST to create build definitions in VSOvsts-clone-build-with-powershell.ps1 sample

希望这会有所帮助。