有没有办法在 Azure DevOps 中编写重复性任务的脚本?
当然可以!正如丹尼尔在评论中所说,只需使用 REST API 就可以实现这些。但由于您想要完成的步骤很少,脚本可能会有点复杂。
如果你也想使用API完成这一步,需要3个步骤来完成(由于文档中没有记录,我会描述得很详细):
Step1:创建导入仓库的验证
POST https://dev.azure.com/{org name}/{project name}/_apis/git/import/ImportRepositoryValidations?api-version=5.2-preview.1
请求正文:
{
"gitSource":
{
"url":"${ReposURL}",
"overwrite":false
},
"tfvcSource":null,
"username":"$(username}"/null,
"password":"${pw}"/"${PAT}"/null
}
Step2:创建新的 repos 名称
POST https://dev.azure.com/{org name}/{project name}/_apis/git/Repositories?api-version=5.2-preview.1
请求正文:
{
"name":"${ReposName}",
"project":
{
"name":"{project name}",
"id":"{this project id}"
}
}
第三步:导入仓库
POST https://dev.azure.com/{org name}/{project name}/_apis/git/repositories/{the new repos name you create just now}/importRequests?api-version=5.2-preview.1
请求正文:
{
"parameters":
{
"deleteServiceEndpointAfterImportIsDone":true,
"gitSource":
{
"url":"${ReposURL}",
"overwrite":false
},
"tfvcSource":null,
"serviceEndpointId":null
}
}
在这些脚本中,您可以在变量选项卡中设置变量,然后使用${}在脚本中获取它们。
这一步你最好手动完成,因为你可以配置更多关于任务和触发 UI。如果仍想使用 API,请参阅此文档:create build definition。有详细的示例您可以尝试。
向 Master 添加分支策略,包括使用上述构建验证构建的步骤
此 API 仍记录在文档中:create build policy。只需参考,并确保使用正确的policy type 和相应的buildDefinitionId。
这还是建议你手动完成,和你提到的第3步一样。
创建发布管道
请参阅此文档:create release。
注意:对于一些需要多次使用的参数,可以设置为变量。对于需要从上一个 API 响应中获取的参数,您可以定义一个变量来获取其值,然后将该变量传递给下一个 API 使用。例如:
$resultT= $result.Headers.ETag
Write-Host "##vso[task.setvariable variable=etag;]$resultT"
现在,您可以在下一个 API 中直接使用$(etag)。