如何使用 Rest API 禁用 Azure 管道的继承
How to disable inheritance for Azure pipelines using Rest API
如何使用 Rest API 禁用 Azure 管道中的继承?
REST API 没有记录,但是您可以通过 Fiddler 等工具跟踪它,或者在 Chrome 浏览器中按 F12
然后 select网络。
例如我可以使用下面的 REST API 来禁用下面示例中 Azure 管道 code test-CI
的继承:
POST https://dev.azure.com/{Org name}/_apis/Contribution/HierarchyQuery/project/{Project name}?api-version=6.0-preview
请求正文:
{
"contributionIds": [
"ms.vss-admin-web.security-view-update-data-provider"
],
"dataProviderContext": {
"properties": {
"changeInheritance": true,
"permissionSetId": "{permissionSetId }",
"permissionSetToken": "{project id}/{build definition ID}",
"inheritPermissions": false,
"sourcePage": {
"url": "https://dev.azure.com/{Org name}/{Project name}/_build?definitionId={Build definition ID}",
"routeId": "ms.vss-build-web.pipeline-details-route",
"routeValues": {
"project": "{Project name}",
"viewname": "details",
"controller": "ContributedPage",
"action": "Execute",
"serviceHost": "{Service account ID} (Org name)"
}
}
}
}
}
注意:如果我们需要为Azure pipelines启用继承,只需将字段inheritPermissions
的值改为true
更新1
permissionSetId
是 namespaceID
,我们可以通过下面的 REST API:
获取它
GET https://dev.azure.com/{Org name}/_apis/securitynamespaces?api-version=6.0
然后搜索name": "Build"
得到namespaceId
permissionSetToken 是 {project id}/{build definition ID}
,我们可以通过下面的 REST API:
获取项目 ID
GET https://dev.azure.com/{organization}/_apis/projects?api-version=6.0
serviceHost
值为 service account id (Org name)
,我们可以通过下面的 REST API:
获取它
GET https://vssps.dev.azure.com/{Org}/_apis/graph/users?api-version=6.0-preview.1
然后在请求体中搜索Project Collection Build Service
,principalName
是服务账号id
如何使用 Rest API 禁用 Azure 管道中的继承?
REST API 没有记录,但是您可以通过 Fiddler 等工具跟踪它,或者在 Chrome 浏览器中按 F12
然后 select网络。
例如我可以使用下面的 REST API 来禁用下面示例中 Azure 管道 code test-CI
的继承:
POST https://dev.azure.com/{Org name}/_apis/Contribution/HierarchyQuery/project/{Project name}?api-version=6.0-preview
请求正文:
{
"contributionIds": [
"ms.vss-admin-web.security-view-update-data-provider"
],
"dataProviderContext": {
"properties": {
"changeInheritance": true,
"permissionSetId": "{permissionSetId }",
"permissionSetToken": "{project id}/{build definition ID}",
"inheritPermissions": false,
"sourcePage": {
"url": "https://dev.azure.com/{Org name}/{Project name}/_build?definitionId={Build definition ID}",
"routeId": "ms.vss-build-web.pipeline-details-route",
"routeValues": {
"project": "{Project name}",
"viewname": "details",
"controller": "ContributedPage",
"action": "Execute",
"serviceHost": "{Service account ID} (Org name)"
}
}
}
}
}
注意:如果我们需要为Azure pipelines启用继承,只需将字段inheritPermissions
的值改为true
更新1
permissionSetId
是 namespaceID
,我们可以通过下面的 REST API:
GET https://dev.azure.com/{Org name}/_apis/securitynamespaces?api-version=6.0
然后搜索name": "Build"
得到namespaceId
permissionSetToken 是 {project id}/{build definition ID}
,我们可以通过下面的 REST API:
GET https://dev.azure.com/{organization}/_apis/projects?api-version=6.0
serviceHost
值为 service account id (Org name)
,我们可以通过下面的 REST API:
GET https://vssps.dev.azure.com/{Org}/_apis/graph/users?api-version=6.0-preview.1
然后在请求体中搜索Project Collection Build Service
,principalName
是服务账号id