我已经编写了一个脚本,该脚本利用Azure DevOps REST API在Azure DevOps组织中创建一个项目。该脚本还创建git存储库,构建管道和工件提要。所有这些都是正确创建的。但是,我有一个问题。当我尝试运行管道时,收到以下消息:
此管道需要权限才能访问资源,然后此运行才能继续
提供了一个按钮来授予此权限。但是,我希望这在运行脚本后立即可以工作。此外,构建流程可能会由自动化过程触发,而将来无需人工干预。我在REST API的Azure文档中找不到与此相关的任何内容。我还向构建服务授予了对GIT存储库的所有权限。但是,我仍然会收到错误消息。谁能帮助我或指出正确的方向?
谢谢
答案 0 :(得分:0)
您可以使用api Authorizedresources - Authorize Project Resources来授权资源:
PATCH https://dev.azure.com/{organization}/{project}/_apis/build/authorizedresources?api-version=6.0-preview.1
Body:
[{"authorized":true,"id":"$queueID","name":"$queueName","type":"queue"}]
这里有几件事:
“对所有管道的授予访问权限”设置是每个项目的每个池。但这可以通过链接的UI进行切换,也可以在创建时进行设置 时间在项目设置“添加池”用户界面中。
组织(或集合)级别的池上有两个设置,可以在“添加新池”对话框中看到这些设置。 组织级别。 “在所有项目中自动设置该代理池” 将继续并将该池添加到所有现有项目以及 将来添加新项目时。 “授予访问权限 所有管道”设置每个项目级别设置的默认状态 将该池添加到项目时,请参见上文。
“默认”池已预先设置,“自动设置”设置为true,并且 “授予访问权限...”设置为false。因此,在创建新项目时,它将 具有“默认”池可用,并在“默认”池设置中 该项目“授予访问权限...”的用户界面将设置为false,直到用户 更新它。
要修改“项目设置”中显示的“授予访问权限...”设置 上面链接了“代理程序池” UI,您可以使用上面的API或转到 项目设置-代理池,并将权限切换为 下面的屏幕截图显示:
如果您要修改“单位”设置的“默认”池 将池添加到新池时,“授予访问权限…”的默认值 项目,您可以使用以下REST API来做到这一点:
PATCH https://dev.azure.com/{organization}/_apis/distributedtask/pools/{poolId} Headers: Accept: /;api-version=6.0-preview.1;excludeUrls=true Content-Type: application/json Body: {“id”:“1”,“Properties”:{“System.AutoAuthorize”: “true”}}