GitHub - use different link for hover commands and links in the commit message (#275518)

This commit is contained in:
Ladislau Szomoru
2025-11-05 09:46:59 +00:00
committed by GitHub
parent 0456fdff7b
commit da14a6ea3a
2 changed files with 19 additions and 11 deletions

View File

@@ -114,7 +114,8 @@ export class GitHubSourceControlHistoryItemDetailsProvider implements SourceCont
return undefined;
}
const descriptor = getRepositoryDefaultRemote(repository);
// upstream -> origin -> first
const descriptor = getRepositoryDefaultRemote(repository, ['upstream', 'origin']);
if (!descriptor) {
this._logger.trace(`[GitHubSourceControlHistoryItemDetailsProvider][provideAvatar] Repository does not have a GitHub remote.`);
return undefined;
@@ -206,7 +207,8 @@ export class GitHubSourceControlHistoryItemDetailsProvider implements SourceCont
}
async provideHoverCommands(repository: Repository): Promise<Command[] | undefined> {
const url = getRepositoryDefaultRemoteUrl(repository);
// origin -> upstream -> first
const url = getRepositoryDefaultRemoteUrl(repository, ['origin', 'upstream']);
if (!url) {
return undefined;
}
@@ -220,7 +222,8 @@ export class GitHubSourceControlHistoryItemDetailsProvider implements SourceCont
}
async provideMessageLinks(repository: Repository, message: string): Promise<string | undefined> {
const descriptor = getRepositoryDefaultRemote(repository);
// upstream -> origin -> first
const descriptor = getRepositoryDefaultRemote(repository, ['upstream', 'origin']);
if (!descriptor) {
return undefined;
}

View File

@@ -74,7 +74,7 @@ export function repositoryHasGitHubRemote(repository: Repository) {
return !!repository.state.remotes.find(remote => remote.fetchUrl ? getRepositoryFromUrl(remote.fetchUrl) : undefined);
}
export function getRepositoryDefaultRemoteUrl(repository: Repository): string | undefined {
export function getRepositoryDefaultRemoteUrl(repository: Repository, order: string[]): string | undefined {
const remotes = repository.state.remotes
.filter(remote => remote.fetchUrl && getRepositoryFromUrl(remote.fetchUrl));
@@ -82,15 +82,20 @@ export function getRepositoryDefaultRemoteUrl(repository: Repository): string |
return undefined;
}
// origin -> upstream -> first
const remote = remotes.find(remote => remote.name === 'origin')
?? remotes.find(remote => remote.name === 'upstream')
?? remotes[0];
for (const name of order) {
const remote = remotes
.find(remote => remote.name === name);
return remote.fetchUrl;
if (remote) {
return remote.fetchUrl;
}
}
// Fallback to first remote
return remotes[0].fetchUrl;
}
export function getRepositoryDefaultRemote(repository: Repository): { owner: string; repo: string } | undefined {
const fetchUrl = getRepositoryDefaultRemoteUrl(repository);
export function getRepositoryDefaultRemote(repository: Repository, order: string[]): { owner: string; repo: string } | undefined {
const fetchUrl = getRepositoryDefaultRemoteUrl(repository, order);
return fetchUrl ? getRepositoryFromUrl(fetchUrl) : undefined;
}