问题描述
使用REST API:
我使用了以下文档:https://docs.microsoft.com/en-us/rest/api/azure/devops/artifacts/feed%20%20management/create%20feed?view=azure-devops-rest-5.0#feedpermission 使用REST API创建项目范围提要
并提及 Create Azure Artifacts universal package feed via Azure API - Example
Feed是具有以下权限的
通过用户界面:
- USER-所有者
- [myorg] \项目集合管理员-所有者(继承)
- 项目集合构建服务(myorg)-贡献者
- [myproject] \项目管理员-所有者
- [myproject] \贡献者-贡献者
- [myproject]构建服务(myorg)-贡献者
与通过UI手动创建的提要相比,仅通过REST API创建的提要仅向有限的用户/组提供权限。 为什么有区别?
解决方法
Azure时为什么Feed权限设置有所不同 工件提要是通过“ UI”和“ REST API”创建的?
差异取决于我们如何编写Request Body。我的请求正文here仅使用了三个元素,因此该请求仅创建了一个具有名称和默认权限的简单提要。
如果您要创建具有与UI相同权限的提要,则还应指定 Permissions 元素,如下所示:
{
"name": "Test12345","hideDeletedPackageVersions": true,"permissions": [
{
"identityDescriptor": "Microsoft.TeamFoundation.ServiceIdentity;xxxxxxxxxx","role": 3
},{
"identityDescriptor": "Microsoft.TeamFoundation.ServiceIdentity;xxxxxxxxxx",{
"identityDescriptor": "Microsoft.TeamFoundation.Identity;xxxxxxxxxx","role": 4
},{
"identityDescriptor": "Microsoft.TeamFoundation.Identity;xxxxxxxxxxx","role": 3
}
]
}
通过在请求正文中定义permissions
元素,当您通过UI进行操作时,可以使用API创建具有相同权限的新供稿。
此外:
关于如何查找这些权限的ID(上面的体内xxxxxxxx),可以在F12模式下使用Edge浏览器(或其他浏览器)来获取您的相应ID。对我来说:
1。通过UI创建供稿时导航至页面:
2。在Edge中,单击F12并清除以前的请求:
3。单击Create
按钮,然后在F12窗口中检查请求:
4。找到上面的请求并检查其主体,我们可以轻松找到ID列表:
在组织中找到代表相应权限的ID后,您可以轻松创建具有权限的供稿。