Use wrapApiConfigurationError for getGitHubVersionFromApi

This commit is contained in:
Michael B. Gale
2026-09-25 18:14:47 +01:00
parent 8102666a8c
commit 8dfe937b99
2 changed files with 35 additions and 25 deletions

20
lib/entry-points.js generated
View File

@@ -146756,15 +146756,19 @@ async function getGitHubVersionFromApi(apiClient, apiDetails) {
if (parseGitHubUrl(apiDetails.url) === GITHUB_DOTCOM_URL) { if (parseGitHubUrl(apiDetails.url) === GITHUB_DOTCOM_URL) {
return { type: "GitHub.com" /* DOTCOM */ }; return { type: "GitHub.com" /* DOTCOM */ };
} }
const response = await apiClient.rest.meta.get(); try {
if (response.headers[GITHUB_ENTERPRISE_VERSION_HEADER] === void 0) { const response = await apiClient.rest.meta.get();
return { type: "GitHub.com" /* DOTCOM */ }; if (response.headers[GITHUB_ENTERPRISE_VERSION_HEADER] === void 0) {
return { type: "GitHub.com" /* DOTCOM */ };
}
if (response.headers[GITHUB_ENTERPRISE_VERSION_HEADER] === "ghe.com") {
return { type: "GitHub Enterprise Cloud with data residency" /* GHEC_DR */ };
}
const version = response.headers[GITHUB_ENTERPRISE_VERSION_HEADER];
return { type: "GitHub Enterprise Server" /* GHES */, version };
} catch (err) {
throw wrapApiConfigurationError(err);
} }
if (response.headers[GITHUB_ENTERPRISE_VERSION_HEADER] === "ghe.com") {
return { type: "GitHub Enterprise Cloud with data residency" /* GHEC_DR */ };
}
const version = response.headers[GITHUB_ENTERPRISE_VERSION_HEADER];
return { type: "GitHub Enterprise Server" /* GHES */, version };
} }
async function getGitHubVersion() { async function getGitHubVersion() {
if (cachedGitHubVersion === void 0) { if (cachedGitHubVersion === void 0) {

View File

@@ -219,25 +219,31 @@ export async function getGitHubVersionFromApi(
return { type: GitHubVariant.DOTCOM }; return { type: GitHubVariant.DOTCOM };
} }
// Doesn't strictly have to be the meta endpoint as we're only try {
// using the response headers which are available on every request. // Doesn't strictly have to be the meta endpoint as we're only
// // using the response headers which are available on every request.
// See https://docs.github.com/en/rest/meta/meta#get-github-meta-information. //
// eslint-disable-next-line @typescript-eslint/no-unsafe-call // See https://docs.github.com/en/rest/meta/meta#get-github-meta-information.
const response = await apiClient.rest.meta.get(); // eslint-disable-next-line @typescript-eslint/no-unsafe-call
const response = await apiClient.rest.meta.get();
// This happens on dotcom, although we expect to have already returned in that // This happens on dotcom, although we expect to have already returned in that
// case. This can also serve as a fallback in cases we haven't foreseen. // case. This can also serve as a fallback in cases we haven't foreseen.
if (response.headers[GITHUB_ENTERPRISE_VERSION_HEADER] === undefined) { if (response.headers[GITHUB_ENTERPRISE_VERSION_HEADER] === undefined) {
return { type: GitHubVariant.DOTCOM }; return { type: GitHubVariant.DOTCOM };
}
if (response.headers[GITHUB_ENTERPRISE_VERSION_HEADER] === "ghe.com") {
return { type: GitHubVariant.GHEC_DR };
}
const version = response.headers[
GITHUB_ENTERPRISE_VERSION_HEADER
] as string;
return { type: GitHubVariant.GHES, version };
} catch (err) {
throw wrapApiConfigurationError(err);
} }
if (response.headers[GITHUB_ENTERPRISE_VERSION_HEADER] === "ghe.com") {
return { type: GitHubVariant.GHEC_DR };
}
const version = response.headers[GITHUB_ENTERPRISE_VERSION_HEADER] as string;
return { type: GitHubVariant.GHES, version };
} }
/** /**