From bed5d2b1beb97b3d568dc59d21ad794b6103d477 Mon Sep 17 00:00:00 2001 From: Matt Cowger Date: Wed, 19 Aug 2026 11:54:30 -0700 Subject: [PATCH] fix(server): add upstream remote fallback to GitHub PR checkout refs (#2997) --- packages/server/src/services/github-service.test.ts | 5 ++++- packages/server/src/services/github-service.ts | 10 ++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/packages/server/src/services/github-service.test.ts b/packages/server/src/services/github-service.test.ts index 52423de4a..d916cea03 100644 --- a/packages/server/src/services/github-service.test.ts +++ b/packages/server/src/services/github-service.test.ts @@ -717,7 +717,10 @@ describe("ForgeService", () => { number: 526, baseRefName: "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", headRepositorySshUrl: "git@github.com:therainisme/paseo.git", headRepositoryUrl: "https://github.com/therainisme/paseo", diff --git a/packages/server/src/services/github-service.ts b/packages/server/src/services/github-service.ts index db2d8b56f..e7eb70a98 100644 --- a/packages/server/src/services/github-service.ts +++ b/packages/server/src/services/github-service.ts @@ -1048,7 +1048,10 @@ export function createGitHubService(options: CreateGitHubServiceOptions = {}): G }, 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 }) { @@ -2348,7 +2351,10 @@ function toPullRequestCheckoutTarget( number: pullRequest.number, baseRefName: pullRequest.baseRefName, 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, headRepositorySshUrl: pullRequest.headRepository?.sshUrl || null, headRepositoryUrl: pullRequest.headRepository?.url || null,