Я использую TFS 2018 On Premise.
Есть ли способ получить список комментариев к обзору (как показано в Visual Studio) с помощью API или запроса TFS.
Я использую TFS 2018 On Premise.
Есть ли способ получить список комментариев к обзору (как показано в Visual Studio) с помощью API или запроса TFS.
Этот случай предлагает решение, вы можете проверить это:
У вас должна быть возможность получить комментарии обзора кода с помощью функций в Microsoft.TeamFoundation.Discussion.Client.
В частности, комментарии доступны через DiscussionThread а> класс. И вы должны иметь возможность запрашивать обсуждения с помощью IDiscussionManager.
Фрагмент кода выглядит следующим образом:
using Microsoft.TeamFoundation.Discussion.Client;
using System;
using System.Collections.Generic;
namespace GetCodeReviewComments
{
public class ExecuteQuery
{
public List<CodeReviewComment> GetCodeReviewComments(int workItemId)
{
List<CodeReviewComment> comments = new List<CodeReviewComment>();
Uri uri = new Uri("http://tfs2018:8080/tfs/defaultcollection");
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);
Console.WriteLine(comment.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; }
}
}
}