fix: make pr merge idempotent for merged prs

This commit is contained in:
Codex
2026-06-05 15:10:24 +00:00
parent a951f6ff60
commit 74dc0b8c62
3 changed files with 23 additions and 0 deletions
+13
View File
@@ -4900,6 +4900,19 @@ async function prMerge(repo: string, token: string, number: number, options: Git
const pr = await githubRequest<GitHubPullRequest>(token, "GET", `/repos/${owner}/${name}/pulls/${number}`);
if (isGitHubError(pr)) return commandError("pr merge", repo, pr, { number, phase: "fetch-pr" });
const summary = prSummary(pr);
if (summary.merged === true) {
return {
ok: true,
command: "pr merge",
repo,
number,
method: options.mergeMethod,
alreadyMerged: true,
pullRequest: summary,
branchDeletion: { attempted: false, skippedReason: "already-merged" },
rest: true,
};
}
const metadata = await prGraphqlMetadata(repo, token, number);
if (isGitHubError(metadata)) return commandError("pr merge", repo, metadata, { number, phase: "fetch-pr-closeout-metadata", pullRequest: summary });
const statusChecks = statusRollupSummary(repo, number, metadata.statusCheckRollup, false);