Merge pull request #1597 from github/rneatherway/ghe-dotcom

Account for versioning of ghe.com
This commit is contained in:
Robin Neatherway 2023-03-22 17:21:10 +00:00 committed by GitHub
commit aefd9896b1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 32 additions and 4 deletions

File diff suppressed because one or more lines are too long

4
lib/util.js generated
View file

@ -260,6 +260,7 @@ var GitHubVariant;
GitHubVariant[GitHubVariant["DOTCOM"] = 0] = "DOTCOM"; GitHubVariant[GitHubVariant["DOTCOM"] = 0] = "DOTCOM";
GitHubVariant[GitHubVariant["GHES"] = 1] = "GHES"; GitHubVariant[GitHubVariant["GHES"] = 1] = "GHES";
GitHubVariant[GitHubVariant["GHAE"] = 2] = "GHAE"; GitHubVariant[GitHubVariant["GHAE"] = 2] = "GHAE";
GitHubVariant[GitHubVariant["GHE_DOTCOM"] = 3] = "GHE_DOTCOM";
})(GitHubVariant = exports.GitHubVariant || (exports.GitHubVariant = {})); })(GitHubVariant = exports.GitHubVariant || (exports.GitHubVariant = {}));
async function getGitHubVersion(apiDetails) { async function getGitHubVersion(apiDetails) {
// We can avoid making an API request in the standard dotcom case // We can avoid making an API request in the standard dotcom case
@ -278,6 +279,9 @@ async function getGitHubVersion(apiDetails) {
if (response.headers[GITHUB_ENTERPRISE_VERSION_HEADER] === "GitHub AE") { if (response.headers[GITHUB_ENTERPRISE_VERSION_HEADER] === "GitHub AE") {
return { type: GitHubVariant.GHAE }; return { type: GitHubVariant.GHAE };
} }
if (response.headers[GITHUB_ENTERPRISE_VERSION_HEADER] === "ghe.com") {
return { type: GitHubVariant.GHE_DOTCOM };
}
const version = response.headers[GITHUB_ENTERPRISE_VERSION_HEADER]; const version = response.headers[GITHUB_ENTERPRISE_VERSION_HEADER];
return { type: GitHubVariant.GHES, version }; return { type: GitHubVariant.GHES, version };
} }

File diff suppressed because one or more lines are too long

7
lib/util.test.js generated
View file

@ -182,6 +182,13 @@ function mockGetMetaVersionHeader(versionHeader) {
apiURL: undefined, apiURL: undefined,
}); });
t.deepEqual({ type: util.GitHubVariant.DOTCOM }, v3); t.deepEqual({ type: util.GitHubVariant.DOTCOM }, v3);
mockGetMetaVersionHeader("ghe.com");
const gheDotcom = await util.getGitHubVersion({
auth: "",
url: "https://foo.ghe.com",
apiURL: undefined,
});
t.deepEqual({ type: util.GitHubVariant.GHE_DOTCOM }, gheDotcom);
}); });
const ML_POWERED_JS_STATUS_TESTS = [ const ML_POWERED_JS_STATUS_TESTS = [
// If no packs are loaded, status is false. // If no packs are loaded, status is false.

File diff suppressed because one or more lines are too long

View file

@ -22,7 +22,10 @@ export type CodeQLDefaultVersionInfo =
| { | {
cliVersion: string; cliVersion: string;
tagName: string; tagName: string;
variant: util.GitHubVariant.GHAE | util.GitHubVariant.GHES; variant:
| util.GitHubVariant.GHAE
| util.GitHubVariant.GHES
| util.GitHubVariant.GHE_DOTCOM;
}; };
export interface FeatureEnablement { export interface FeatureEnablement {

View file

@ -237,6 +237,14 @@ test("getGitHubVersion", async (t) => {
apiURL: undefined, apiURL: undefined,
}); });
t.deepEqual({ type: util.GitHubVariant.DOTCOM }, v3); t.deepEqual({ type: util.GitHubVariant.DOTCOM }, v3);
mockGetMetaVersionHeader("ghe.com");
const gheDotcom = await util.getGitHubVersion({
auth: "",
url: "https://foo.ghe.com",
apiURL: undefined,
});
t.deepEqual({ type: util.GitHubVariant.GHE_DOTCOM }, gheDotcom);
}); });
const ML_POWERED_JS_STATUS_TESTS: Array<[string[], string]> = [ const ML_POWERED_JS_STATUS_TESTS: Array<[string[], string]> = [

View file

@ -305,10 +305,12 @@ export enum GitHubVariant {
DOTCOM, DOTCOM,
GHES, GHES,
GHAE, GHAE,
GHE_DOTCOM,
} }
export type GitHubVersion = export type GitHubVersion =
| { type: GitHubVariant.DOTCOM } | { type: GitHubVariant.DOTCOM }
| { type: GitHubVariant.GHAE } | { type: GitHubVariant.GHAE }
| { type: GitHubVariant.GHE_DOTCOM }
| { type: GitHubVariant.GHES; version: string }; | { type: GitHubVariant.GHES; version: string };
export async function getGitHubVersion( export async function getGitHubVersion(
@ -334,6 +336,10 @@ export async function getGitHubVersion(
return { type: GitHubVariant.GHAE }; return { type: GitHubVariant.GHAE };
} }
if (response.headers[GITHUB_ENTERPRISE_VERSION_HEADER] === "ghe.com") {
return { type: GitHubVariant.GHE_DOTCOM };
}
const version = response.headers[GITHUB_ENTERPRISE_VERSION_HEADER] as string; const version = response.headers[GITHUB_ENTERPRISE_VERSION_HEADER] as string;
return { type: GitHubVariant.GHES, version }; return { type: GitHubVariant.GHES, version };
} }