使用 Microsoft.TeamFoundationServer.Client(15.112.1)连接到 TFS 2017 Update 2 服务器,我们可以获得有关现有PR的详细信息:< / p>
var connection = new VssConnection(collectionUri, credentials);
var client = connection.GetClient<GitHttpClient>();
var pr = await client.GetPullRequestByIdAsync(pullRequestId);
另外,我们可以像这样创建新的PR:
var pr = await client.CreatePullRequestAsync(
new GitPullRequest
{
SourceRefName = "master",
TargetRefName = "develop",
Title = "[Automatic Merge]"
},
projectName, repositoryName);
另外,我们可以这样投票给PR:
var pr = await client.CreatePullRequestReviewerAsync(
reviewer, projectName, repositoryName, pullRequestId, authorizedIdenity.Id.ToString());
有没有办法完成PR(覆盖或不存在分支 策略)并继续合并操作?
答案 0 :(得分:2)
GitHttpClient有一个 UpdatePullRequestAsync 方法。
要完成提取请求,您需要更新提取请求的状态属性。并使用 UpdatePullRequestAsync 方法完成您的PR。
请确保设置CompletionOptions属性以指定是否合并提交,删除源分支等。
所以你的代码看起来像是
pr.Status = PullRequestStatus.Completed
pr.CompletionOption = new GitPullRequestCompletionOption() { SquashMerge = true };
client.UpdatePullRequest(pr, repositoryId, pullRequestId);
修改强>
ByPassPolicy尚不适用于已发布的Microsoft.TeamFoundationServer.ExtendedClient版本。
但是,如果您安装库 Microsoft.TeamFoundationServer.ExtendedClient 的预发行版NuGet包 v15.122.1-preview ,您将看到选项ByPassPolicy作为属性在GitPullrequestCompletionOptions类中。您可以通过传递策略将其设置为true。