diff --git a/src/configuration/configuration.ts b/src/configuration/configuration.ts index d45ff4b6..d12711ac 100644 --- a/src/configuration/configuration.ts +++ b/src/configuration/configuration.ts @@ -76,7 +76,7 @@ export function getGitHubApiUri(): string { } if (base.endsWith(".ghe.com")) { - return `api.${base}`; + return base.replace(/^(https?):\/\//, "$1://api."); } else { return `${base}/api/v3`; } diff --git a/src/git/repository.ts b/src/git/repository.ts index 9db227cb..a58a4377 100644 --- a/src/git/repository.ts +++ b/src/git/repository.ts @@ -4,12 +4,11 @@ import {Octokit} from "@octokit/rest"; import {canReachGitHubAPI} from "../api/canReachGitHubAPI"; import {handleSamlError} from "../api/handleSamlError"; import {getSession} from "../auth/auth"; -import {getRemoteName, useEnterprise} from "../configuration/configuration"; +import {getGitHubApiUri, getRemoteName, useEnterprise} from "../configuration/configuration"; import {Protocol} from "../external/protocol"; import {logDebug, logError} from "../log"; import {API, GitExtension, RefType, RepositoryState} from "../typings/git"; import {RepositoryPermission, getRepositoryPermission} from "./repository-permissions"; -import {getGitHubApiUri} from "../configuration/configuration"; interface GitHubUrls { workspaceUri: vscode.Uri; @@ -78,7 +77,8 @@ export async function getGitHubUrls(): Promise { if ( remote.length > 0 && (remote[0].pushUrl?.indexOf("github.com") !== -1 || - (useEnterprise() && remote[0].pushUrl?.indexOf(new URL(getGitHubApiUri()).host) !== -1)) + (useEnterprise() && remote[0].pushUrl?.indexOf(new URL(getGitHubApiUri()).host) !== -1) || + remote[0].pushUrl?.indexOf(".ghe.com") !== -1) ) { const url = remote[0].pushUrl;