如何在Azure DevOps中查询我发布的含指定文本的用户故事/任务评论
Azure DevOps 按自身发布的评论内容筛选方案
一、查询编辑器原生支持说明
原生的Azure DevOps工作项查询编辑器不支持直接按评论发布者筛选。查询编辑器中的「History」字段仅存储合并后的全量变更、评论文本,未将评论发布者作为独立的可筛选维度,仅通过内置字段无法同时实现“评论发布者为自己+包含指定文本”的过滤需求。
二、REST API 实现方案
通过Azure DevOps官方的工作项评论接口可以精准实现需求,操作步骤如下:
- 前置准备:先用查询编辑器筛选出所有工作项类型为「用户故事(User Story)」和「任务(Task)」的工作项,导出ID列表。
- 调用工作项评论查询接口,接口格式为:
GET https://dev.azure.com/{组织名称}/{项目名称}/_apis/wit/workItems/{工作项ID}/comments?api-version=7.1-preview.3 - 对返回结果做两层过滤:
- 评论发布者字段
createdBy.uniqueName与你的Azure DevOps账号邮箱一致 - 评论文本字段
text包含你要搜索的特定内容
- 评论发布者字段
- 汇总所有符合条件的评论,关联对应工作项即可查看完整上下文
批量查询示例代码(PowerShell)
# 基础配置 $organization = "你的组织名" $project = "你的项目名" $pat = "你的个人访问令牌" $searchText = "待搜索的特定文本" $userEmail = "你的Azure DevOps账号邮箱" # 替换为你导出的工作项ID列表 $workItemIdList = @(1001, 1002, 1003) # 生成认证头 $authToken = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(":$pat")) $headers = @{ Authorization = "Basic $authToken" } # 遍历查询所有工作项的评论 foreach ($wiId in $workItemIdList) { $requestUri = "https://dev.azure.com/$organization/$project/_apis/wit/workItems/$wiId/comments?api-version=7.1-preview.3" $response = Invoke-RestMethod -Uri $requestUri -Headers $headers -Method Get $matchComments = $response.value | Where-Object { $_.createdBy.uniqueName -eq $userEmail -and $_.text -match [regex]::Escape($searchText) } if ($matchComments) { Write-Host "=== 工作项 $wiId 下找到匹配评论 ===" $matchComments | ForEach-Object { Write-Host "评论内容:$($_.text)`n" } } }
注意:生成个人访问令牌(PAT)时,仅需要授予「工作项(Work Items)」的读取权限即可正常调用接口。
内容的提问来源于stack exchange,提问作者sashoalm
相关产品推荐
相关产品推荐

