@@ -563,16 +563,30 @@ export function registerCommands(
563563 }
564564
565565 /**
566- * Get the folder manager for a repository based on metadata.
566+ * Get the folder manager and GitHub repository for a repository based on metadata.
567567 * Falls back to the first folder manager if metadata is not provided or repository not found.
568568 * @param metadata Session metadata containing owner and repo information
569- * @returns FolderRepositoryManager or undefined if no folder managers exist
569+ * @returns Object with folderManager and githubRepo, or undefined if no folder managers exist
570570 */
571- function getFolderManagerFromMetadata ( metadata : SessionMetadata | undefined ) : FolderRepositoryManager | undefined {
571+ function getFolderManagerFromMetadata ( metadata : SessionMetadata | undefined ) : { folderManager : FolderRepositoryManager ; githubRepo : GitHubRepository } | undefined {
572572 if ( metadata ?. owner && metadata ?. name ) {
573- return reposManager . getManagerForRepository ( metadata . owner , metadata . name ) ?? reposManager . folderManagers [ 0 ] ;
573+ const folderManager = reposManager . getManagerForRepository ( metadata . owner , metadata . name ) ?? reposManager . folderManagers [ 0 ] ;
574+ if ( ! folderManager || folderManager . gitHubRepositories . length === 0 ) {
575+ return undefined ;
576+ }
577+ const githubRepo = folderManager . gitHubRepositories . find (
578+ repo => repo . remote . owner === metadata . owner && repo . remote . repositoryName === metadata . name
579+ ) ?? folderManager . gitHubRepositories [ 0 ] ;
580+ return { folderManager, githubRepo } ;
574581 }
575- return reposManager . folderManagers . length > 0 ? reposManager . folderManagers [ 0 ] : undefined ;
582+ if ( reposManager . folderManagers . length === 0 ) {
583+ return undefined ;
584+ }
585+ const folderManager = reposManager . folderManagers [ 0 ] ;
586+ if ( folderManager . gitHubRepositories . length === 0 ) {
587+ return undefined ;
588+ }
589+ return { folderManager, githubRepo : folderManager . gitHubRepositories [ 0 ] } ;
576590 }
577591
578592 function contextHasPath ( ctx : OverviewContext | { path : string } | undefined ) : ctx is { path : string } {
@@ -604,11 +618,12 @@ export function registerCommands(
604618 return vscode . window . showErrorMessage ( vscode . l10n . t ( 'No pull request number found in context path.' ) ) ;
605619 }
606620 // Use metadata to find the correct repository if available
607- const folderManager = getFolderManagerFromMetadata ( metadata ) ;
608- if ( ! folderManager ) {
621+ const result = getFolderManagerFromMetadata ( metadata ) ;
622+ if ( ! result ) {
609623 return vscode . window . showErrorMessage ( vscode . l10n . t ( 'Unable to find repository manager.' ) ) ;
610624 }
611- const pullRequest = await folderManager . fetchById ( folderManager . gitHubRepositories [ 0 ] , Number ( prNumber ) ) ;
625+ const { folderManager, githubRepo } = result ;
626+ const pullRequest = await folderManager . fetchById ( githubRepo , Number ( prNumber ) ) ;
612627 if ( ! pullRequest ) {
613628 return vscode . window . showErrorMessage ( vscode . l10n . t ( 'Unable to find pull request #{0}' , prNumber . toString ( ) ) ) ;
614629 }
@@ -646,11 +661,12 @@ export function registerCommands(
646661 task . report ( { increment : 30 } ) ;
647662
648663 // Use metadata to find the correct repository if available
649- const folderManager = getFolderManagerFromMetadata ( metadata ) ;
650- if ( ! folderManager ) {
664+ const result = getFolderManagerFromMetadata ( metadata ) ;
665+ if ( ! result ) {
651666 return vscode . window . showErrorMessage ( vscode . l10n . t ( 'Unable to find repository manager.' ) ) ;
652667 }
653- const pullRequest = await folderManager . fetchById ( folderManager . gitHubRepositories [ 0 ] , Number ( prNumber ) ) ;
668+ const { folderManager, githubRepo } = result ;
669+ const pullRequest = await folderManager . fetchById ( githubRepo , Number ( prNumber ) ) ;
654670 if ( ! pullRequest ) {
655671 return vscode . window . showErrorMessage ( vscode . l10n . t ( 'Unable to find pull request #{0}' , prNumber . toString ( ) ) ) ;
656672 }
0 commit comments