Get TFS code review comments report given for file

2019-09-14 19:00发布

        We used TFS query option to get code review comments report, But 
we are not able to get TFS code review comments report given for files.

        It is possible to get report by TFS query option / TFS REST API.

enter image description here

    Many thanks in advance.

标签: tfs tfs2013
1条回答
The star\"
2楼-- · 2019-09-14 19:37

Neither Work item query nor rest API is able to retrieve code review comments for now. However you can achieve your goal by using TFS API.

Specifically the comments are accessible via the DiscussionThread class. Just need to query discussions using IDiscussionManager. Sample code as below:

 public List<CodeReviewComment> GetCodeReviewComments(int workItemId)
 {
        List<CodeReviewComment> comments = new List<CodeReviewComment>();

        Uri uri = new Uri(URL_TO_TFS_COLLECTION);
        TeamFoundationDiscussionService service = new TeamFoundationDiscussionService();
        service.Initialize(new Microsoft.TeamFoundation.Client.TfsTeamProjectCollection(uri));
        IDiscussionManager discussionManager = service.CreateDiscussionManager();

        IAsyncResult result = discussionManager.BeginQueryByCodeReviewRequest(workItemId, QueryStoreOptions.ServerAndLocal, new AsyncCallback(CallCompletedCallback), null);
        var output = discussionManager.EndQueryByCodeReviewRequest(result);

        foreach (DiscussionThread thread in output)
        {
            if (thread.RootComment != null)
            {
                CodeReviewComment comment = new CodeReviewComment();
                comment.Author = thread.RootComment.Author.DisplayName;
                comment.Comment = thread.RootComment.Content;
                comment.PublishDate = thread.RootComment.PublishedDate.ToShortDateString();
                comment.ItemName = thread.ItemPath;
                comments.Add(comment);
            }
        }

        return comments;
    }

    static void CallCompletedCallback(IAsyncResult result)
    {
        // Handle error conditions here
    }

    public class CodeReviewComment
    {
        public string Author { get; set; }
        public string Comment { get; set; }
        public string PublishDate { get; set; }
        public string ItemName { get; set; }
    }

More details please refer this similar question: Using TFS API, how can I find the comments which were made on a Code Review?

查看更多
登录 后发表回答