Azure devops 返回具有重复名称的安全命名空间的VSTS API
我正在使用VSTSAPI,并且正在返回奇数数据。我注意到这周的变化,因为它打破了我一直在写的剧本 获取:https://siteroot.visualstudio.com/_apis/securitynamespaces/00000000-0000-0000-0000-000000000000/?api-版本=4.1-预览 具体来说,第二个名称空间本周开始出现,名称为“ReleaseManagement”(见下文)。我正在使用脚本调用此端点,现在不确定如何在两个“发布管理”名称空间之间进行解析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”(见下文)。我正在使用脚本调用此端点,现在不确定如何在两个“发布管理”名称空间之间进行解析
- 这对我来说似乎是一个错误。解决这个问题的最佳方法是什么
- 如果/直到有修复程序,最好的修复程序是对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-预览
?您还可以共享restapiGET的响应吗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
},
...
}