我有一个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[]}
我尝试过:
-
在查询结束时更改API版本。
-
将查询更改为非常基本(从工作项中选择ID)。
-
重新生成PAT。
-
打印发送到端点的JSON-它与文档匹配。
值得一提的是,创建任务的脚本仍然可以正常工作,并且使用了相同的PAT。
我错过什么了吗?如果有人能提出解决方案或故障排除步骤,我们将不胜感激。
编辑#1
按要求更新信息。使用了与上面相同的查询,链接了屏幕截图。还包括TesttaskFetch的完整代码段。ps1是完整脚本的精简版本。
No Tasks Returned Image
使用的查询与上面相同,代码相同。
编辑#2
我发现了问题所在-查询一直都不是问题所在。这是脚本另一部分中的一个逻辑缺陷,与任何类型的API问题无关。我会把它关掉的。