使用Microsoft.TeamFoundationServer.Client (15.112.1)连接到TFS 2017 更新 2服务器我们可以获取有关现有 PR 的详细信息,如下所示:
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(覆盖或不存在的分支
政策)并继续合并操作?
GitHttpClient 有一个更新拉请求异步方法。
要完成拉取请求,您需要更新Status您的拉取请求的属性。并使用更新拉请求异步完成 PR 的方法。
请确保设置 CompletionOptions 属性来指定是否合并提交、删除源分支等。
所以你的代码如下所示
pr.Status = PullRequestStatus.Completed
pr.CompletionOption = new GitPullRequestCompletionOption() { SquashMerge = true };
client.UpdatePullRequest(pr, repositoryId, pullRequestId);
EDIT:
ByPassPolicy 尚不适用于已发布版本的 Microsoft.TeamFoundationServer.ExtendedClient。
但是,如果您安装预发布的 NuGet 包v15.122.1-预览版图书馆的Microsoft.TeamFoundationServer.ExtendedClient,您将看到选项 ByPassPolicy 作为 GitPullrequestCompletionOptions 类中的属性。您可以将其设置为 true 以绕过策略。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)