代码之家  ›  专栏  ›  技术社区  ›  ghostclass

VSO WorkItem API查询不返回结果

  •  0
  • ghostclass  · 技术社区  · 6 年前

    我有一个powershell脚本已经运行了一段时间了,它可以在VSO中读取和创建任务,但大约一天前它就停止了工作。总的来说,目的是创建工作项,作为其中的一部分,我将获取现有项以确保我没有创建重复项。

    下面是一段用于获取项目的代码片段——这已经运行了几个月了。

    #Get current work items.
    $workitemsUrl = "https://" + $instance + "/DefaultCollection/" + $project + "/_apis/wit/wiql?api-version=1.0"
    
    #Create object to convert to JSON.
    $query = @{
        query = "SELECT [System.Id], [System.Title] from workitems where [System.WorkItemType] = 'Task' and [Microsoft.VSTS.Common.Priority] = 1 and [Microsoft.VSTS.Common.Activity] = 'Merge' order by System.ID asc"
        }
    
    #convert to JSON object.
    $jsonQuery = ConvertTo-Json $query
    
    $workitems = Invoke-RestMethod -Uri $workitemsUrl -ContentType "application/json" -Method POST -Headers @{ Authorization = "Basic {0}" -f $b64token} -Body $jsonQuery
    

    我得到的响应是有效的,但是现在没有结果,即使VSO实例有大量符合条件的任务。以下是对其价值的回应示例:

    @{queryType=flat; queryResultType=workItem; asOf=2018-04-11T12:15:06.073Z; columns=System.Object[]; sortColumns=System.Object[]; workItems=System.Object[]}
    

    我尝试过:

    1. 在查询结束时更改API版本。
    2. 将查询更改为非常基本(从工作项中选择ID)。
    3. 重新生成PAT。
    4. 打印发送到端点的JSON-它与文档匹配。

    值得一提的是,创建任务的脚本仍然可以正常工作,并且使用了相同的PAT。

    我错过什么了吗?如果有人能提出解决方案或故障排除步骤,我们将不胜感激。

    编辑#1 按要求更新信息。使用了与上面相同的查询,链接了屏幕截图。还包括TesttaskFetch的完整代码段。ps1是完整脚本的精简版本。

    No Tasks Returned Image 使用的查询与上面相同,代码相同。

    编辑#2 我发现了问题所在-查询一直都不是问题所在。这是脚本另一部分中的一个逻辑缺陷,与任何类型的API问题无关。我会把它关掉的。

    1 回复  |  直到 6 年前
        1
  •  0
  •   ghostclass    6 年前

    我发现了问题所在-查询一直都不是问题所在。这是脚本另一部分中的一个逻辑缺陷,与任何类型的API问题无关。谢谢大家的回复,虚惊一场。