通过自定义字段获取工作项时 Azure DevOps 中的服务用户权限问题

问题描述 投票:0回答:1

我在 Azure DevOps (ADO) 中遇到服务用户权限问题,希望有人可以帮助澄清。我们在 ADO 中有一个包含多个项目的组织。在我们的工作流程中,我们利用 API 调用来收集基于特定自定义字段的工作项。

之前,我们使用个人访问令牌 (PAT) 对这些 API 调用进行了身份验证,一切都按预期运行。然而,在切换到服务用户进行身份验证后,我们开始在一个特定项目(“项目 B”)中遇到问题。

问题:当尝试根据项目 B 中的自定义字段值(“custom_value”)收集工作项时,API 不会返回正确的项目。相反,它从项目 A 中获取具有相同自定义字段的工作项。项目 A 中的这些项目不应包含在项目 B 的结果中。该服务帐户在项目 B 中具有项目管理员角色,并且似乎只出现在这个项目。

POST 请求:

https://dev.azure.com/org/ProjectB/_apis/wit/wiql?api-version=7.0

本体:

{

"query": "SELECT [System.ID] FROM WorkItems WHERE [Custom.VersionforRMBot] CONTAINS 'custom_field' ORDER BY [Microsoft.VSTS.Common.Priority] ASC, [System.CreatedDate] DESC"

}

项目 B 中是否存在我可能忽略的特定配置或权限设置?

提前感谢您的帮助!

azure-devops
1个回答
0
投票

您的查询会获取整个组织(在您的所有项目中)的工作项。

"SELECT [System.ID] FROM WorkItems WHERE [Custom.VersionforRMBot] CONTAINS 'custom_field' ORDER BY [Microsoft.VSTS.Common.Priority] ASC, [System.CreatedDate] DESC"

在这种情况下,您的服务帐户可以访问所有项目,并且始终返回相同的结果。您可以为团队项目字段添加过滤器:

"SELECT [System.ID] FROM WorkItems WHERE [System.TeamProject] = 'ProjectB' AND [Custom.VersionforRMBot] CONTAINS 'custom_field' ORDER BY [Microsoft.VSTS.Common.Priority] ASC, [System.CreatedDate] DESC"

查看此文档:查询语言概述

© www.soinside.com 2019 - 2024. All rights reserved.