【问题标题】:Accessing the comments from a microsoft vso WorkItem via REST API Overview for Visual Studio Team Services and Team Foundation Server通过 Visual Studio Team Services 和 Team Foundation Server 的 REST API 概述从 microsoft vso WorkItem 访问评论
【发布时间】:2018-06-03 08:45:01
【问题描述】:

因此,我将从 Visual Studio Team Services 获取 cmets,通过从 VSO 传递工作项的 id,我应该能够从任何给定的工作项中提取 cmets 历史记录,因为我将“id”传递给GetCommentsAsync 即使我为 api 提供的 workItem id 确实有 cmets,我也得到了 cmets 的空结果。

 public WorkItemComments GetPageOfWorkItemComments(string VSTSID)
    {
        int id = Int32.Parse(VSTSID);
        VssBasicCredential credentials = new VssBasicCredential("", _personalAccessToken);
        VssConnection connection = new VssConnection(new Uri(_uri), credentials);
        WorkItemTrackingHttpClient workItemTrackingClient = connection.GetClient<WorkItemTrackingHttpClient>();

        WorkItemComments result = workItemTrackingClient.GetCommentsAsync(id).Result;

        Console.WriteLine("Total Revision Count: {0}", result.TotalCount);
        Console.WriteLine("From Revision Count: {0}", result.FromRevisionCount);
        Console.WriteLine("Comments...");

        foreach (var comments in result.Comments)
        {
            Console.WriteLine("{0}", comments.Text);
            Console.WriteLine();
        }
        return result;
    }

当我的代码开始查看 cmets 的结果并抛出错误时,它在 foreach 上中断:Object reference not set to an instance of an object.

从这里开始我的通话:

    public string CreateWorkItem(string title, string description, string 
     PTID, string assigned, string VSTSID)
    {
        Response response;
        VssObject work = new VssObject();
        try
        {
            //work.CreateWIUsingClientLib(title, description, PTID, 
        assigned, VSTSID);
             //work.GetWorkItemById(PTID);
            work.GetPageOfWorkItemComments(VSTSID);
            response = new Response(work);
            return response.BuildJsonResponse();
        }
        catch (Exception ex)
        {
            _logger.Error(ex, "{Application:l} - {SourceContext:l}: Error 
            calling 'VssAPI'.", applicationName);
            return ex.Message;
        }
    }

使用 GET 通过邮递员进行测试:

http://localhost:57765/API.svc/CreateWorkItem?title=blash&description=bkkdkd&ptid=BDC19072-9016-4CB8-8741-CDFAF52D0E40&assigned=assigned&vstsid=543

【问题讨论】:

    标签: c# asp.net tfs azure-devops workitem


    【解决方案1】:

    REST Web Api 库的最新稳定版本包含一些与 cmets 相关的已知问题:.NET Client Library - WorkItemTrackingHttpClient GetCommentsAsync does not return the list of comments

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-30
      • 1970-01-01
      • 1970-01-01
      • 2017-12-14
      • 2014-05-16
      • 2015-08-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多