mirror of
https://github.com/microsoft/vscode.git
synced 2025-12-24 12:19:20 +00:00
GitHub - use different link for hover commands and links in the commit message (#275518)
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user