每次在项目中创建一个新的GIT存储库时,我们都会执行许多任务,我想知道是否有一种方法(PowerShell或任何其他方法)将这些脚本编写出来。例如所有这些都是我们每次创建新存储库时要遵循的步骤
答案 0 :(得分:1)
是否可以在Azure DevOps中编写重复性任务的脚本?
当然可以!正如Daniel在评论中所说,仅使用REST API就可以实现所有这些。但是,由于您要实现的步骤很少,因此脚本可能复杂。
如果您还想使用API完成此步骤,则需要完成3个步骤(由于doc中没有对此进行记录,因此我将对其进行详细介绍):
第1步:创建导入存储库的验证
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
}
第2步:创建新的存储库名称
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}"
}
}
第3步:导入存储库
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)
。