Add detection for GitHub AE.

This commit is contained in:
Chris Gavin 2021-02-13 11:06:03 +00:00
parent 781e3bc540
commit 0656b2c1ad
No known key found for this signature in database
GPG key ID: 07F950B80C27E4DA
10 changed files with 27 additions and 6 deletions

2
lib/upload-lib.js generated
View file

@ -162,7 +162,7 @@ function buildPayload(commitOid, ref, analysisKey, analysisName, zippedSarif, wo
base_sha: undefined, base_sha: undefined,
}; };
// This behaviour can be made the default when support for GHES 3.0 is discontinued. // This behaviour can be made the default when support for GHES 3.0 is discontinued.
if (gitHubVersion.type === "dotcom" || if (gitHubVersion.type !== "ghes" ||
semver.satisfies(gitHubVersion.version, `>=3.1`)) { semver.satisfies(gitHubVersion.version, `>=3.1`)) {
if (process.env.GITHUB_EVENT_NAME === "pull_request" && if (process.env.GITHUB_EVENT_NAME === "pull_request" &&
process.env.GITHUB_EVENT_PATH) { process.env.GITHUB_EVENT_PATH) {

File diff suppressed because one or more lines are too long

3
lib/util.js generated
View file

@ -211,6 +211,9 @@ async function getGitHubVersion(apiDetails) {
if (response.headers[GITHUB_ENTERPRISE_VERSION_HEADER] === undefined) { if (response.headers[GITHUB_ENTERPRISE_VERSION_HEADER] === undefined) {
return { type: "dotcom" }; return { type: "dotcom" };
} }
if (response.headers[GITHUB_ENTERPRISE_VERSION_HEADER] === "GitHub AE") {
return { type: "ghae" };
}
const version = response.headers[GITHUB_ENTERPRISE_VERSION_HEADER]; const version = response.headers[GITHUB_ENTERPRISE_VERSION_HEADER];
return { type: "ghes", version }; return { type: "ghes", version };
} }

File diff suppressed because one or more lines are too long

6
lib/util.test.js generated
View file

@ -159,6 +159,12 @@ ava_1.default("getGitHubVersion", async (t) => {
url: "https://ghe.example.com", url: "https://ghe.example.com",
}); });
t.deepEqual({ type: "ghes", version: "2.0" }, v2); t.deepEqual({ type: "ghes", version: "2.0" }, v2);
mockGetMetaVersionHeader("GitHub AE");
const ghae = await util.getGitHubVersion({
auth: "",
url: "https://example.githubenterprise.com",
});
t.deepEqual({ type: "ghae" }, ghae);
mockGetMetaVersionHeader(undefined); mockGetMetaVersionHeader(undefined);
const v3 = await util.getGitHubVersion({ const v3 = await util.getGitHubVersion({
auth: "", auth: "",

File diff suppressed because one or more lines are too long

View file

@ -95,7 +95,7 @@ export interface Config {
codeQLCmd: string; codeQLCmd: string;
/** /**
* Version of GHES that we have determined that we are talking to, or undefined * Version of GHES that we have determined that we are talking to, or undefined
* if talking to github.com. * if talking to github.com or GitHub AE.
*/ */
gitHubVersion: GitHubVersion; gitHubVersion: GitHubVersion;
} }

View file

@ -241,7 +241,7 @@ export function buildPayload(
// This behaviour can be made the default when support for GHES 3.0 is discontinued. // This behaviour can be made the default when support for GHES 3.0 is discontinued.
if ( if (
gitHubVersion.type === "dotcom" || gitHubVersion.type !== "ghes" ||
semver.satisfies(gitHubVersion.version, `>=3.1`) semver.satisfies(gitHubVersion.version, `>=3.1`)
) { ) {
if ( if (

View file

@ -230,6 +230,13 @@ test("getGitHubVersion", async (t) => {
}); });
t.deepEqual({ type: "ghes", version: "2.0" }, v2); t.deepEqual({ type: "ghes", version: "2.0" }, v2);
mockGetMetaVersionHeader("GitHub AE");
const ghae = await util.getGitHubVersion({
auth: "",
url: "https://example.githubenterprise.com",
});
t.deepEqual({ type: "ghae" }, ghae);
mockGetMetaVersionHeader(undefined); mockGetMetaVersionHeader(undefined);
const v3 = await util.getGitHubVersion({ const v3 = await util.getGitHubVersion({
auth: "", auth: "",

View file

@ -221,6 +221,7 @@ let hasBeenWarnedAboutVersion = false;
export type GitHubVersion = export type GitHubVersion =
| { type: "dotcom" } | { type: "dotcom" }
| { type: "ghae" }
| { type: "ghes"; version: string }; | { type: "ghes"; version: string };
export async function getGitHubVersion( export async function getGitHubVersion(
@ -242,6 +243,10 @@ export async function getGitHubVersion(
return { type: "dotcom" }; return { type: "dotcom" };
} }
if (response.headers[GITHUB_ENTERPRISE_VERSION_HEADER] === "GitHub AE") {
return { type: "ghae" };
}
const version = response.headers[GITHUB_ENTERPRISE_VERSION_HEADER] as string; const version = response.headers[GITHUB_ENTERPRISE_VERSION_HEADER] as string;
return { type: "ghes", version }; return { type: "ghes", version };
} }