gpt4 book ai didi

c# - 有什么方法可以刷新 Azure DevOps REST API 中的拉取请求合并状态?

转载 作者:行者123 更新时间:2023-12-05 07:19:35 25 4
gpt4 key购买 nike

使用 C# 中的 Azure DevOps REST API,我正在创建拉取请求,然后尝试像这样(简化)完成它:

var pullRequest = new GitPullRequest { 
Title = "My PR",
SourceRefName = "refs/heads/my",
TargetRefName = "refs/heads/master",
Commits = commits
};

pullRequest = await gitClient.CreatePullRequestAsync(pullRequest, repositoryId);

await Task.Delay(3000);

if (pullRequest.MergeStatus == PullRequestAsyncStatus.Succeeded) {
var pr2 = new GitPullRequest
{
LastMergeSourceCommit = pullRequest.LastMergeSourceCommit,
Status = PullRequestStatus.Completed
};
var result = await gitClient.UpdatePullRequestAsync(pullRequest, pullRequest.Repository.Id, pullRequest.pullRequestId);
}

如果没有冲突,这就可以正常工作。但如果拉取请求有冲突,MergeStatus 将为 Conflicts。现在,假设有人手动解决了这些冲突,并且 PR 已准备好合并。

解决冲突后我再次收到拉取请求

var pullRequest = await gitClient.GetPullRequestByIdAsync(pullRequestId);

pullRequest.MergeStatus 仍然是 Conflicts,即使 UI 显示为绿色。

有没有办法在 MergeStatus 设置为 Conflicts 后刷新它?我尝试通过将 MergeStatus 设置为 Queued 来更新拉取请求。还是 API 中缺少的功能?

最佳答案

希望你能度过难关,以防万一有人来看(就像我今天做的那样)这对我有用。

var prOriginal = gitClient.CreatePullRequestAsync(
new GitPullRequest() {
SourceRefName = $"refs/heads/{Input.SrcBranch}",
TargetRefName = $"refs/heads/{Input.TgtBranch}",
Title = Input.Title,
Description = Input.Description
},
tgtRepo.Id).Result;

Thread.Sleep(TimeSpan.FromSeconds(30));
var statusRetry = 0;
var prTest = gitClient.GetPullRequestAsync(
tgtRepo.Id,
prOriginal.PullRequestId).Result;
while(PullRequestAsyncStatus.Succeeded != prTest.MergeStatus) {
// TODO decide when to quit.
Thread.Sleep(TimeSpan.FromSeconds(30));
prTest = gitClient.GetPullRequestAsync(
tgtRepo.Id,
prOriginal.PullRequestId).Result;
}
Debug.WriteLine($"MergeStatus: {prTest.MergeStatus}");

我在线解决问题后很快MergeStatus就成功了。现在,如果我可以使用 API 解决这些冲突,我的状态就会很好。

关于c# - 有什么方法可以刷新 Azure DevOps REST API 中的拉取请求合并状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57721036/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com