【发布时间】:2018-09-26 19:15:21
【问题描述】:
我想使用 TFS API 来获取工作项,但它似乎只支持通过提供 ID 字段来获取工作项。
我正在制作一个门户网站,其中一个普通帐户必须通过例如分配/区域字段/项目名称来查找工作项。
我在官方页面上找不到任何文档,这可能吗?
【问题讨论】:
我想使用 TFS API 来获取工作项,但它似乎只支持通过提供 ID 字段来获取工作项。
我正在制作一个门户网站,其中一个普通帐户必须通过例如分配/区域字段/项目名称来查找工作项。
我在官方页面上找不到任何文档,这可能吗?
【问题讨论】:
如果您使用 VSTS 或某些较新版本的 TFS,您可以使用 WIQL REST API https://www.visualstudio.com/en-us/docs/integrate/api/wit/wiql 这里也有关于如何使用的代码示例https://github.com/Microsoft/vsts-restapi-samplecode/commit/a27a0c48b81f1ba74ea638e8bae46072f645e8af
【讨论】:
仅通过字段(Id 除外)获取工作项并不能保证该工作项的唯一性。可以有更多具有该值的工作项。
【讨论】:
这是一个例子:
Wiql wiql = new Wiql()
{
Query = "Select [State], [Title] " +
"From WorkItems " +
"Where [Work Item Type] = 'Bug' " +
"And [System.TeamProject] = '" + project + "' " +
"And [System.State] <> 'Closed' " +
"Order By [State] Asc, [Changed Date] Desc"
};
//create instance of work item tracking http client
using (WorkItemTrackingHttpClient workItemTrackingHttpClient = new WorkItemTrackingHttpClient(uri, credentials))
{
//execute the query to get the list of work items in the results
WorkItemQueryResult workItemQueryResult = workItemTrackingHttpClient.QueryByWiqlAsync(wiql).Result;
}
【讨论】: