簡體   English   中英

如何使用TFS客戶端庫獲取PullRequest的Web URL?

[英]How to get a web URL for a PullRequest using TFS client libraries?

對於使用TFS 客戶端庫的PullRequest,是否有辦法獲取Web URL(TeamWebAccess,如https://tfshost/tfs/Collection/Project/_git/Repository/pullrequest/12345 for 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屬性中推斷出網址?

它無法RemoteUrl從客戶端庫獲取RemoteUrl,因為該值為null 查看下面的截圖:

在此輸入圖像描述

但是您可以獲取存儲庫的RemoteUrlhttps://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);

        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM