我正在尝试找出一种方法来查找有关 TFS2012 中代码审查请求/响应项目的详细信息。
我可以通过以下方式查询所有代码审查请求/响应项目:
const string TfsUri = "http://mytfsserver:8080/tfs/Default ProjectCollection";
var tfs = new TfsTeamProjectCollection(new Uri(TfsUri));
var store = tfs.GetService<WorkItemStore>();
var versionStore = tfs.GetService<Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer>();
var queryText = "SELECT [System.Id],
FROM WorkItems
WHERE [System.WorkItemType] = 'Code Review Request'
or [System.WorkItemType] = 'Code Review Response'";
var query = new Query(store, queryText);
var result = query.RunQuery().OfType<WorkItem>();
这给了我一个列表WorkItem
类型。当我循环result.FirstOrDefault().Fields
属性,它确实为我提供了一些有关 ShelveSet 的有用信息,这些信息与代码审查(“关联上下文”)相关。使用此信息,我可以查询 ShelveSet:
var versionStore = tfs.GetService<VersionControlServer>();
var shelveset = versionStore.QueryShelvesets("someCodeReviewId_xxxx","someUserName");
这给了我一个ShelveSet
项目,但这就是我陷入困境的地方。
我已经调查过Microsoft.TeamFoundation.CodeReview
两者都提供的命名空间Microsoft.TeamFoundation.CodeReview.Components
and Microsoft.TeamFoundation.CodeReview.Controls
图书馆,但这也没有进一步帮助我。
我的问题是:如何通过 TFS API 找到代码审查期间对 ShelveSet 所做的实际注释(一般注释和文件注释)?