Con la API de TFS, ¿cómo puedo encontrar los comentarios que se hicieron en una revisión de código?

 C Programming >> Programación C >  >> Tags >> API
Con la API de TFS, ¿cómo puedo encontrar los comentarios que se hicieron en una revisión de código?

Tenemos un nuevo requisito para extraer comentarios de revisión de código de TFS y aquí hay un breve ejemplo de lo que implementamos. El workItemId debe consultarse a través de otro método. Incluso puede buscarlo en Visual Studio o mediante una consulta TFS en la interfaz de usuario. Este es un pequeño subconjunto de lo que está disponible y lo que estamos usando. Descubrí que este enlace es útil después de buscar en MSDN.

 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; }
    }

No tengo ejemplos de código, pero según esta discusión, debería poder acceder a los comentarios de revisión de código con funcionalidad en el espacio de nombres Microsoft.TeamFoundation.Discussion.Client.

Específicamente, se puede acceder a los comentarios a través de la clase DiscussionThread. Y debería poder consultar discusiones usando IDiscussionManager.