fix(server): add upstream remote fallback to GitHub PR checkout refs (#2997)

This commit is contained in:
Matt Cowger
2026-08-20 02:54:30 +08:00
committed by GitHub
parent 4391c47615
commit bed5d2b1be
2 changed files with 12 additions and 3 deletions
@@ -717,7 +717,10 @@ describe("ForgeService", () => {
number: 526, number: 526,
baseRefName: "main", baseRefName: "main",
headRefName: "main", headRefName: "main",
checkoutRefs: [{ remoteName: "origin", remoteRef: "refs/pull/526/head" }], checkoutRefs: [
{ remoteName: "origin", remoteRef: "refs/pull/526/head" },
{ remoteName: "upstream", remoteRef: "refs/pull/526/head" },
],
headOwnerLogin: "therainisme", headOwnerLogin: "therainisme",
headRepositorySshUrl: "git@github.com:therainisme/paseo.git", headRepositorySshUrl: "git@github.com:therainisme/paseo.git",
headRepositoryUrl: "https://github.com/therainisme/paseo", headRepositoryUrl: "https://github.com/therainisme/paseo",
@@ -1048,7 +1048,10 @@ export function createGitHubService(options: CreateGitHubServiceOptions = {}): G
}, },
defaultCheckoutRefs({ changeRequestNumber }) { defaultCheckoutRefs({ changeRequestNumber }) {
return [{ remoteName: "origin", remoteRef: `refs/pull/${changeRequestNumber}/head` }]; return [
{ remoteName: "origin", remoteRef: `refs/pull/${changeRequestNumber}/head` },
{ remoteName: "upstream", remoteRef: `refs/pull/${changeRequestNumber}/head` },
];
}, },
buildPrLocalBranchName({ headRef, checkoutTarget }) { buildPrLocalBranchName({ headRef, checkoutTarget }) {
@@ -2348,7 +2351,10 @@ function toPullRequestCheckoutTarget(
number: pullRequest.number, number: pullRequest.number,
baseRefName: pullRequest.baseRefName, baseRefName: pullRequest.baseRefName,
headRefName: pullRequest.headRefName, headRefName: pullRequest.headRefName,
checkoutRefs: [{ remoteName: "origin", remoteRef: `refs/pull/${pullRequest.number}/head` }], checkoutRefs: [
{ remoteName: "origin", remoteRef: `refs/pull/${pullRequest.number}/head` },
{ remoteName: "upstream", remoteRef: `refs/pull/${pullRequest.number}/head` },
],
headOwnerLogin: pullRequest.headRepositoryOwner?.login || null, headOwnerLogin: pullRequest.headRepositoryOwner?.login || null,
headRepositorySshUrl: pullRequest.headRepository?.sshUrl || null, headRepositorySshUrl: pullRequest.headRepository?.sshUrl || null,
headRepositoryUrl: pullRequest.headRepository?.url || null, headRepositoryUrl: pullRequest.headRepository?.url || null,