Azure devops rest api 我们可以在不使用ID的情况下获得基于标题的工作项吗

Azure devops rest api 我们可以在不使用ID的情况下获得基于标题的工作项吗,azure-devops-rest-api,Azure Devops Rest Api,我在Azure DevOps Boards中有一个工作项,带有“System.WorkItemType”:“Template”和“System.Title”:“Sample”,我需要使用rest api检索工作项详细信息。在Azure DevOps中,工作项ID是唯一标识符,我们可以创建多个同名工作项 作为一种解决方法,我们可以运行wiql查询,根据标题获取工作项,然后获取工作项ID并列出工作项详细信息。您可以检查下面的脚本 在我的脚本中,我列出了标题为test且工作项类型为User Story

我在Azure DevOps Boards中有一个工作项,带有“System.WorkItemType”:“Template”“System.Title”:“Sample”,我需要使用rest api检索工作项详细信息。

在Azure DevOps中,工作项ID是唯一标识符,我们可以创建多个同名工作项

作为一种解决方法,我们可以运行wiql查询,根据标题获取工作项,然后获取工作项ID并列出工作项详细信息。您可以检查下面的脚本

在我的脚本中,我列出了标题为
test
且工作项类型为
User Story
的所有工作项的详细信息

    $connectionToken="{PAT}"
    $base64AuthInfo= [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($connectionToken)"))
    $WorkItemQueryURL = "https://dev.azure.com/{Org name}/{Project name}/{team name}/_apis/wit/wiql?api-version=6.0" 
    
    $body =@"
    {
      "query": "Select [System.Id], [System.Title], [System.State] From WorkItems Where [System.TeamProject] = @project and [System.WorkItemType] = 'User Story' AND [System.Title] = 'test' order by [Microsoft.VSTS.Common.Priority] asc, [System.CreatedDate] desc"
    }
    "@
    $WorkItem = Invoke-RestMethod -Uri $WorkItemQueryURL -ContentType "application/json" -Body $body -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -Method POST
    
    Write-host $WorkItem.workItems.id
    
    ForEach ($ID in $WorkItem.workItems.id)
    {
     $WorkItemInfoURL = "https://dev.azure.com/{Org name}/{Project name}/_apis/wit/workitems/$($ID)?api-version=6.1-preview.3" 
    Invoke-RestMethod -Uri $WorkItemInfoURL -Headers @{authorization = "Basic $base64AuthInfo"} -Method Get
    }
结果:

和Azure DevOps查询结果:


您好,如果这个答案有帮助,您愿意吗?因此,它可以帮助其他社区成员谁得到同样的问题,我们可以存档此线程。谢谢祝你今天愉快。:)