Fix remote selection when upstream points to non-GitHub remote
When a branch's upstream is set to a non-GitHub remote (e.g., origin pointing to an internal git server), getOrigin() throws BadUpstreamError even when valid GitHub remotes are configured via githubPullRequests.remotes. This breaks "Start Working on Issue" functionality.
Changes
-
folderRepositoryManager.ts: ModifiedgetOrigin()to fall back to configured GitHub remotes when upstream is not GitHub, using the same selection logic as when no upstream is set (by convention, by ownership, or first available) -
folderRepositoryManager.test.ts: Added test case verifying fallback behavior when branch upstream points to non-GitHub remote
Example scenario
// User config
"githubPullRequests.remotes": ["github"]
// Git remotes
github → github.com/user/repo
origin → internal-git.company.com/repo // non-GitHub
// Current branch
main (upstream: origin/main)
// Before: throws BadUpstreamError
// After: uses 'github' remote
Original prompt
This section details on the original issue you should resolve
<issue_title>Start Working on issue and checkout topic branch, does not uses the right remote.</issue_title> <issue_description> Type: Bug
I have two remotes configured:
- github, that points to github
- origin, that points to another git server.
I have configured my .vscode/settings.json to include:
{ "githubPullRequests.remotes" : [ "github" ] }I can fetch issues and pull request, but when i want to "Start Working on issue and checkout topic branch", by clicking on the button on the issues view. I got an error: "There is no remote. Can't start working on an issue."
On the Github Pull Request output panel, shows this:
2025-02-14 11:28:00.688 [error] FolderRepositoryManager+0> The remote 'origin' is not a GitHub repository.
Extension version: 0.105.2025021304 VS Code version: Code 1.97.2 (e54c774e0add60467559eb0d1e229c6452cf8447, 2025-02-12T23:20:35.343Z) OS version: Linux x64 6.8.0-52-generic Modes:
System Info
Item Value CPUs AMD Ryzen 7 5700 (16 x 4491) GPU Status 2d_canvas: enabled
canvas_oop_rasterization: enabled_on
direct_rendering_display_compositor: disabled_off_ok
gpu_compositing: enabled
multiple_raster_threads: enabled_on
opengl: enabled_on
rasterization: enabled
raw_draw: disabled_off_ok
skia_graphite: disabled_off
video_decode: enabled
video_encode: disabled_software
vulkan: disabled_off
webgl: enabled
webgl2: enabled
webgpu: disabled_off
webnn: disabled_offLoad (avg) 1, 1, 1 Memory (System) 31.13GB (24.02GB free) Process Argv --crash-reporter-id 16bf3ff9-8a17-4b1f-87ec-4ca1c2e63352 Screen Reader no VM 0% DESKTOP_SESSION ubuntu XDG_CURRENT_DESKTOP Unity XDG_SESSION_DESKTOP ubuntu XDG_SESSION_TYPE x11 A/B Experiments
vsliv368cf:30146710 vspor879:30202332 vspor708:30202333 vspor363:30204092 vscod805cf:30301675 binariesv615:30325510 py29gd2263:31024239 vscaat:30438848 c4g48928:30535728 azure-dev_surveyone:30548225 962ge761:30959799 h48ei257:31000450 pythontbext0:30879054 cppperfnew:31000557 dwnewjupyter:31046869 nativerepl1:31139838 pythonrstrctxt:31112756 nativeloc1:31192215 iacca1:31171482 5fd0e150:31155592 dwcopilot:31170013 stablechunks:31184530 6074i472:31201624 dwoutputs:31238123 customenabled:31237564 9064b325:31222308 copilot_t_ci:31222730 jda6j935:31233686Comments on the Issue (you are @copilot in this section)
- Fixes microsoft/vscode-pull-request-github#6661
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.