3

我已经搜索了讨论并尝试了这个,

Changeset changeSet = _versionControlServer.GetChangeset(Int32.Parse(changesetString));
                            if (changeSet != null)
                            {


                                foreach (var item in changeSet.AssociatedWorkItems)
                                {
                                    WorkItem wk = workItemStore.GetWorkItem(item.Id);

但我找不到WorkItem写着“已完成(看起来不错)”的公共财产。

有没有办法通过API找到这个?

4

2 回答 2

4

代码审查有两种类型的工作项:代码审查请求代码审查响应

当您要求审查时,TFS 会创建一个代码审查请求,然后在幕后为您要求审查我工作的每个人创建一个代码审查响应。因此,如果您在我的评论中标记 Alice、Bob 和 Charlie,则会为我创建四个工作项:一个请求加上三个响应。

胶水是一种叫做相关链接的东西。家长评论与孩子的反应有关,反之亦然。这稍微简化了一些事情,因为一旦您进行了审核,您就可以根据其 ID 轻松确定响应工作项。

您尝试获取工作项的代码是代码审查请求。您要查找的是Code Review Response 中名为Closed Status的文件:

审查者在关闭代码审查请求时选择的状态。该号码存储在系统中并写入数据仓库,如下所示:

  • 0 – 未审核
  • 1 - 看起来不错
  • 2 - 带评论
  • 3-需要工作
  • 4 - 拒绝
  • 5 - 移除

参考名称=Microsoft.VSTS.CodeReview.ClosedStatus

来源链接

您可以将 WIQL 与 TFS API 结合使用来获取您需要的内容。详细步骤请参考本教程:Getting Code Review Statistics Programmatically from TFS

此处显示了使用 TFS API 访问代码审查的更多示例:使用 TFS API,我如何找到在代码审查中所做的评论?

于 2018-02-20T04:00:49.860 回答
1

对于其他需要它的人,

 foreach (WorkItem wr in workitems)
            {

            string shelvsetValue = null;
            string codeState = null;
            string userName = wr.CreatedBy.ToString();
            foreach(Field f in wr.Fields)
            {
                if(f.Name.Equals("Associated Context"))
                {
                    shelvsetValue = f.Value.ToString();
                }
                if (f.Name.Equals("Closed Status Code"))
                {
                    if(f.Value!=null)
                    { 
                        codeState = f.Value.ToString();
                    }
                }
            }
于 2018-02-26T03:46:24.363 回答