【问题标题】:How to get a web URL for a PullRequest using TFS client libraries?如何使用 TFS 客户端库获取 PullRequest 的 Web URL?
【发布时间】:2019-01-02 06:06:01
【问题描述】:

有没有办法使用 TFS client libraries 为 PullRequest 获取 Web URL(TeamWebAccess 像 https://tfshost/tfs/Collection/Project/_git/Repository/pullrequest/12345 用于 PR#12345,而不是 API url)?

var prId = 12345;
var tpc = new TfsTeamProjectCollection(new Uri(""));
var git = tpc.GetClient<GitHttpClient>();
// GitHttpClient has no special methods to do it
// and GitPullRequest obtained through GitHttpClient.GetPullRequestByIdAsync contains only the API link
var prWebUrl = git.?????(prId);

也许我错过了类似于TswaClientHyperlinkService 的东西?

或者我必须求助于从 API 链接/GitPullRequest 属性中推断出 Web URL?

【问题讨论】:

    标签: c# git tfs pull-request tfs-sdk


    【解决方案1】:

    无法直接从客户端库中获取RemoteUrl,因为其值为null。查看下面的截图:

    但是您可以获取存储库的RemoteUrl (https://tfshost/tfs/Collection/Project/_git/Repository),因此您可以使用以下代码获取 PR RemoteUrl:

    using Microsoft.TeamFoundation.SourceControl.WebApi;
    using Microsoft.VisualStudio.Services.Common;
    using Microsoft.VisualStudio.Services.WebApi;
    using System;
    
    namespace GetPullRequest
    {
        class Program
        {
            static void Main(string[] args)
            {
    
                String collectionUri = "https://xxx.visualstudio.com";
                VssBasicCredential creds = new VssBasicCredential("", "6ztnrtjdd3i42juchu4xxxxxxxxxaslnseo277tgiuiq");
                VssConnection connection = new VssConnection(new Uri(collectionUri), creds);
                var git = connection.GetClient<GitHttpClient>();
                var prId = 12345;
                var pr = git.GetPullRequestByIdAsync(prId).Result;
                var RepoUrl = pr.Repository.RemoteUrl;
                var prUrl = RepoUrl + "/pullrequest/" + prId;
                Console.WriteLine(prUrl);
    
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-13
      • 1970-01-01
      • 2011-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多