Azure devops 返回具有重复名称的安全命名空间的VSTS API

Azure devops 返回具有重复名称的安全命名空间的VSTS API,azure-devops,azure-devops-rest-api,Azure Devops,Azure Devops Rest Api,我正在使用VSTSAPI,并且正在返回奇数数据。我注意到这周的变化,因为它打破了我一直在写的剧本 获取:https://siteroot.visualstudio.com/_apis/securitynamespaces/00000000-0000-0000-0000-000000000000/?api-版本=4.1-预览 具体来说,第二个名称空间本周开始出现,名称为“ReleaseManagement”(见下文)。我正在使用脚本调用此端点,现在不确定如何在两个“发布管理”名称空间之间进行解析

我正在使用VSTSAPI,并且正在返回奇数数据。我注意到这周的变化,因为它打破了我一直在写的剧本

获取:https://siteroot.visualstudio.com/_apis/securitynamespaces/00000000-0000-0000-0000-000000000000/?api-版本=4.1-预览

具体来说,第二个名称空间本周开始出现,名称为“ReleaseManagement”(见下文)。我正在使用脚本调用此端点,现在不确定如何在两个“发布管理”名称空间之间进行解析

  • 这对我来说似乎是一个错误。解决这个问题的最佳方法是什么
  • 如果/直到有修复程序,最好的修复程序是对GUID进行硬编码吗
有什么想法或建议可以帮助我前进吗? 谢谢


这两个安全名称空间
ReleaseManagement
具有不同的读/写权限和不同的操作

例如,对于第一个
发布管理
安全命名空间(
7c7d32f7-0e86-4cd6-892e-b35dbba870bd
),它包含操作
查看任务编辑器
查看CD工作流编辑器
导出发布定义
查看遗留UI
等。而对于第二个
发布管理
安全命名空间(
c788c23e-1b46-4162-8f5e-d7585343b5de
),它包含类似于
查看发布定义
的操作,
编辑发布定义
删除发布定义


因此,您可以通过读/写权限或操作解析这两个安全名称空间
ReleaseManagement

要查询的端点类型是什么?您可以通过
GET查询https://siteroot.visualstudio.com/_apis/securitynamespaces/7c7d32f7-0e86-4cd6-892e-b35dbba870bd?api-版本=4.1-预览
?您还可以共享restapi
GET的响应吗https://siteroot.visualstudio.com/{projectname}/_api/serviceendpoint/endpoints?api版本=4.1-preview.1
?此外,在securityNamespaceId之后有多余的
/
,请将其删除(
GET)https://siteroot.visualstudio.com/_apis/securitynamespaces/00000000-0000-0000-0000-000000000000?api-版本=4.1-预览
)试试看。
GEThttps://siteroot.visualstudio.com/_apis/securitynamespaces/7c7d32f7-0e86-4cd6-892e-b35dbba870bd?api-version=4.1-preview
->返回上面粘贴的json片段中的第一个对象。
GEThttps://siteroot.visualstudio.com/{projectname}/_api/serviceendpoint/endpoints?api version=4.1-preview.1
->返回数据关于我们的订阅的一些更敏感的数据。我不喜欢将其粘贴在这里。这里有什么我应该看到的特定内容吗?“/SuperfluOS/`->在删除/s后,有效负载没有改变,所以您可以解释一下如何获得s的详细信息吗ecurityNamespaceId`7c7d32f7-0e86-4cd6-892e-b35dbba870bd?当查询带有空guid的命名空间终结点时,您可以看到所有命名空间。查看此情况,我在API文档中没有看到此行为,因此我不确定从何处获得此信息。可能是此API文档的旧版本或stackoverflow文章e、 :)但是,我知道,我依赖于具有空guid的查询来获取权限脚本所需的命名空间guid。本周,一个额外的条目刚刚出现,似乎格式不正确。我认为这是一个错误,但想看看其他人是否注意到或有进一步的信息。
 {
"count": 58,
"value": [
...
...
...
{
    "namespaceId": "7c7d32f7-0e86-4cd6-892e-b35dbba870bd",
    "name": "ReleaseManagement",
    "displayName": "ReleaseManagement",
    "separatorValue": "/",
    "elementLength": -1,
    "writePermission": 0,
    "readPermission": 1,
    "dataspaceCategory": "ReleaseManagement",
    "actions": [
        {
            "bit": 1,
            "name": "ViewTaskEditor",
            "displayName": "View task editor",
            "namespaceId": "7c7d32f7-0e86-4cd6-892e-b35dbba870bd"
        },
        {
            "bit": 2,
            "name": "ViewCDWorkflowEditor",
            "displayName": "View CD work flow editor",
            "namespaceId": "7c7d32f7-0e86-4cd6-892e-b35dbba870bd"
        },
        {
            "bit": 4,
            "name": "ExportReleaseDefinition",
            "displayName": "Export release definition",
            "namespaceId": "7c7d32f7-0e86-4cd6-892e-b35dbba870bd"
        },
        {
            "bit": 8,
            "name": "ViewLegacyUI",
            "displayName": "View legacy UI",
            "namespaceId": "7c7d32f7-0e86-4cd6-892e-b35dbba870bd"
        },
        {
            "bit": 16,
            "name": "DeploymentSummaryAcrossProjects",
            "displayName": "Deployment summary across projects",
            "namespaceId": "7c7d32f7-0e86-4cd6-892e-b35dbba870bd"
        },
        {
            "bit": 32,
            "name": "ViewExternalArtifactCommitsAndWorkItems",
            "displayName": "View external artifact commits and work items",
            "namespaceId": "7c7d32f7-0e86-4cd6-892e-b35dbba870bd"
        }
    ],
    "structureValue": 1,
    "extensionType": null,
    "isRemotable": false,
    "useTokenTranslator": false,
    "systemBitMask": 0
},
{
    "namespaceId": "c788c23e-1b46-4162-8f5e-d7585343b5de",
    "name": "ReleaseManagement",
    "displayName": "ReleaseManagement",
    "separatorValue": "/",
    "elementLength": -1,
    "writePermission": 512,
    "readPermission": 0,
    "dataspaceCategory": "ReleaseManagement",
    "actions": [
        {
            "bit": 1,
            "name": "ViewReleaseDefinition",
            "displayName": "View release definition",
            "namespaceId": "c788c23e-1b46-4162-8f5e-d7585343b5de"
        },
        {
            "bit": 2,
            "name": "EditReleaseDefinition",
            "displayName": "Edit release definition",
            "namespaceId": "c788c23e-1b46-4162-8f5e-d7585343b5de"
        },
        {
            "bit": 4,
            "name": "DeleteReleaseDefinition",
            "displayName": "Delete release definition",
            "namespaceId": "c788c23e-1b46-4162-8f5e-d7585343b5de"
        },
        {
            "bit": 8,
            "name": "ManageReleaseApprovers",
            "displayName": "Manage release approvers",
            "namespaceId": "c788c23e-1b46-4162-8f5e-d7585343b5de"
        },
        {
            "bit": 16,
            "name": "ManageReleases",
            "displayName": "Manage releases",
            "namespaceId": "c788c23e-1b46-4162-8f5e-d7585343b5de"
        },
        {
            "bit": 32,
            "name": "ViewReleases",
            "displayName": "View releases",
            "namespaceId": "c788c23e-1b46-4162-8f5e-d7585343b5de"
        },
        {
            "bit": 64,
            "name": "CreateReleases",
            "displayName": "Create releases",
            "namespaceId": "c788c23e-1b46-4162-8f5e-d7585343b5de"
        },
        {
            "bit": 128,
            "name": "EditReleaseEnvironment",
            "displayName": "Edit release environment",
            "namespaceId": "c788c23e-1b46-4162-8f5e-d7585343b5de"
        },
        {
            "bit": 256,
            "name": "DeleteReleaseEnvironment",
            "displayName": "Delete release environment",
            "namespaceId": "c788c23e-1b46-4162-8f5e-d7585343b5de"
        },
        {
            "bit": 512,
            "name": "AdministerReleasePermissions",
            "displayName": "Administer release permissions",
            "namespaceId": "c788c23e-1b46-4162-8f5e-d7585343b5de"
        },
        {
            "bit": 1024,
            "name": "DeleteReleases",
            "displayName": "Delete releases",
            "namespaceId": "c788c23e-1b46-4162-8f5e-d7585343b5de"
        },
        {
            "bit": 2048,
            "name": "ManageDeployments",
            "displayName": "Manage deployments",
            "namespaceId": "c788c23e-1b46-4162-8f5e-d7585343b5de"
        },
        {
            "bit": 4096,
            "name": "ManageReleaseSettings",
            "displayName": "Manage release settings",
            "namespaceId": "c788c23e-1b46-4162-8f5e-d7585343b5de"
        }
    ],
    "structureValue": 1,
    "extensionType": null,
    "isRemotable": false,
    "useTokenTranslator": false,
    "systemBitMask": 0
},
...
}