Using TFS API, how can I find the comments which were made on a Code Review?

后端 未结 2 1396
情书的邮戳
情书的邮戳 2020-11-27 19:36

I\'m trying to figure out a way to find details about a Code Review Request / Response item in TFS2012.

I can query for all Code Review Request/Response items in the

2条回答
  •  自闭症患者
    2020-11-27 20:16

    We have a new requirement to pull code review comments from TFS and here is a short example of what we implemented. The workItemId has to be queried through another method. You can even look it up in Visual Studio or through a TFS query in the UI. This is a small subset of what is available and what we are using. I found this link to be helpful after digging through MSDN.

     public List GetCodeReviewComments(int workItemId)
     {
            List comments = new List();
    
            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; }
        }
    

提交回复
热议问题