为了验证对 Azure DevOps 环境的保护是否设置正确,我们希望构建计划的自动检查。
但是描述环境的REST api似乎没有提供任何有关批准和检查的信息,有没有办法以编程方式获得Azure DevOps环境的分支控制和其他保护?
REST API 调用的输出示例:
{
"id": 123,
"name": "BranchFilter",
"description": "Deploy DEV for subscription XXX",
"createdBy": {
"displayName": "Name Name",
"url": "https://etcetc",
"_links": {
"avatar": {
"href": "https://dev.azure.com/org/prj/_apis etcetc"
}
},
"id": "someid",
"uniqueName": "uniquename",
"imageUrl": "https://dev.azure.com/etc",
"descriptor": "something"
},
"createdOn": "2024-02-28T12:00:00.0000000Z",
"lastModifiedBy": {
"displayName": "Name",
"url": "https://etcetc",
"_links": {
"avatar": {
"href": "https://dev.azure.com/etcetc"
}
},
"id": "someid",
"uniqueName": "uniquename",
"imageUrl": "https://dev.azure.com/etcetc",
"descriptor": "something"
},
"lastModifiedOn": "2024-02-28T12:01:01.00Z",
"project": {
"id": "someid",
"name": null
}
}
此输出不显示有关门户中可见的现有分支控制的任何内容:
要获取有关某个环境的“批准和检查”的信息,您可以使用 REST API 检查配置 - 列表。
GET https://dev.azure.com/{organization}/{project}/_apis/pipelines/checks/configurations?resourceType={resourceType}&resourceId={resourceId}&api-version=7.1-preview.1
将以下参数替换为您的实际值。
可以看到类似下面的信息。
{
"count": 3,
"value": [
{
...
"id": 47,
"version": 2,
"type": {
"id": "fe1de3ee-a436-41b4-bb20-f6eb4cb879a7",
"name": "Task Check"
},
...
"resource": {
"type": "environment",
"id": "***",
"name": "DEV"
}
},
{
...
"id": 48,
"version": 1,
"type": {
"id": "8c6f20a7-a545-4486-9777-f762fafe0d4d",
"name": "Approval"
},
...
},
{
...
"id": 50,
"version": 1,
"type": {
"id": "2ef31ad6-baa0-403a-8b45-2cbc9b4e5563",
"name": "ExclusiveLock"
},
...
}
...
]
}