如何通过Power BI查询VSTS OData端点获取工作项讨论区评论?
获取Azure DevOps工作项评论的可行方案
我之前也碰到过类似的困扰——Azure DevOps(原VSTS)的Analytics OData端点确实没有把Discussion子实体暴露出来,没法直接通过OData查询获取结构化的评论数据。不过有几个实用的方案可以解决这个问题:
方案1:使用Azure DevOps REST API(推荐)
Analytics的OData主要是为报表聚合场景设计的,而工作项评论这类精细化数据,更适合用专门的REST API来获取。你可以调用工作项评论的API端点,然后在Power BI中通过Web数据源集成结果:
- 核心API端点格式:
GET https://dev.azure.com/{organization}/{project}/_apis/wit/workItems/{workItemId}/comments?api-version=7.1-preview.3 - 在Power BI中的实现思路:
- 先通过OData或REST API获取需要查询的工作项ID列表;
- 在Power Query中编写循环逻辑,为每个工作项ID调用评论API;
- 将所有返回的评论数据合并成一张表,用于后续分析。
- 注意:调用API时需要用个人访问令牌(PAT)做身份验证,Power BI的Web数据源支持直接配置PAT凭据。
方案2:解析WorkItemRevisions实体的History字段
如果一定要基于Analytics OData来做,可以尝试使用WorkItemRevisions实体中的History字段。这个字段记录了工作项的所有操作日志,包括评论添加的记录,但内容是HTML格式的非结构化文本,需要手动解析:
- 示例OData查询:
https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItemRevisions?$select=WorkItemId,History&$filter=WorkItemId eq {workItemId} - 解析思路:在Power Query中使用文本函数(如
Text.BetweenDelimiters)提取HTML中的评论内容,过滤出类型为“添加评论”的操作记录。不过这种方法局限性较大,一旦Azure DevOps调整History的格式,解析逻辑就会失效,只适合临时场景。
方案3:自定义字段替代(妥协方案)
如果上面的方法都不符合你的需求,可以考虑在工作项类型中添加一个多行文本自定义字段(比如命名为“公开评论”),要求团队成员在添加Discussion评论的同时,把内容同步到这个自定义字段中。这样Analytics OData端点就能直接读取这个字段的数据,无需额外处理。
不过这个方案的缺点也很明显:需要团队成员配合执行,且无法回溯历史评论,只能收集设置字段之后的新内容。
内容的提问来源于stack exchange,提问作者Zieg989
相关产品推荐
相关产品推荐

