【问题标题】:How to get all work items in TFS 2013 using REST API如何使用 REST API 获取 TFS 2013 中的所有工作项
【发布时间】:2017-07-19 08:53:17
【问题描述】:

我需要使用 REST API 检索 TFS 2015.2 中的所有工作项

我参考了下面来自微软的链接

https://www.visualstudio.com/en-us/docs/work/track/using-queries

下面是我使用的类似的 url 模式,

http://fabrikam:8080/tfs/DefaultCollection/q.aspx?pname=FabrikamFiber&wiql=SELECT [System.ID], [System.Title], [System.State] FROM WorkItems WHERE [System.TeamProject]='FabrikamFiber' AND [System.WorkItemType]='Bug' 

但是这个网址最终只有错误

Error

错误 您正在查找的页面目前不可用。

TF400914:指定的团队 q.aspx 要么不存在,要么您无权访问它。

请善意展示一些解决此问题的方法。

【问题讨论】:

  • 您需要检索 TFS 2015.2 中的所有工作项,即使您在标题和标签中使用的是 TFS2013。您实际使用的是哪个 TFS 版本?
  • 嗨帕特里克,它的 2015.2。很抱歉造成混乱,非常感谢您提供出色的解决方案

标签: tfs tfs-workitem


【解决方案1】:

注意 TFS 2015 要求您编码 URL 语法的 WIQL 部分。您可以使用任何 URL 编码器工具对您的 URL 进行编码。

TFS 2015 语法

https://{ServerName}/{CollectionName}/{TeamProjectName}/_workitems?_a=query&wiql={Encoded WorkItemQueryLanguage]

例如,以下超链接列出了托管在 fabrikam 服务器上的 FabrikamFiber/Web 区域路径下所有错误的 ID、标题和状态,并且它是编码的 url。

http://fabrikam:8080/tfs/DefaultCollection/FabrikamFiber/_workitems?_a=query&wiql=SELECT%20%5BSystem.ID%5D%2C%20%5BSystem.Title%5D%2C%20%5BSystem.State%5D%20FROM%20WorkItems%20WHERE%20%5BSystem.TeamProject%5D%3D'FabrikamFiber'%20AND%20%5BSystem.WorkItemType%5D%3D'Bug'%20AND%20%5BSystem.AreaPath%5D%3D'FabrikamFiber%5CWeb'%20%20

根据您的网址,如果您需要检索 TFS 2015.2 中的所有工作项,您似乎仍在使用 TFS 2013 语法。请改用 TFS2015 语法。


如果您需要检索 TFS2013 中的所有工作项。定义超链接的最简单方法是创建一个与您想要的匹配的查询,然后复制该查询的 URL。在门户网站/团队资源管理器中创建相同的查询以缩小问题范围,看看您是否能够获取所有工作项。并直接复制网址以仔细检查您的网址格式。

【讨论】:

  • 非常感谢帕特里克,我需要在 REST API 中获取所有“错误”类型的工作项(使用查询),但是没有示例可以在没有定义 ID 的情况下获取工作项(我指的是 visualstudio.com/en-us/docs/integrate/api/wit/work-items ) .有可能完成这个任务吗?如果可以,我可以举个例子吗?
  • @Lalindu 可以,你只需要在请求正文中使用[System.WorkItemType] = 'Bug'。更多详细信息请查看此类似问题:stackoverflow.com/questions/38524918/…
猜你喜欢
  • 1970-01-01
  • 2014-07-10
  • 2018-11-16
  • 2018-10-28
  • 1970-01-01
  • 2017-05-07
  • 2015-03-13
  • 1970-01-01
  • 2017-10-31
相关资源
最近更新 更多