Allow the version of the ML-powered pack to depend on the CLI version
This commit is contained in:
parent
dd6b592e3e
commit
2c03704a6c
9 changed files with 31 additions and 26 deletions
5
lib/codeql.js
generated
5
lib/codeql.js
generated
|
|
@ -474,9 +474,8 @@ async function getCodeQLForCmd(cmd, checkVersion) {
|
|||
if (config.injectedMlQueries) {
|
||||
// We need to inject the ML queries into the original user input before
|
||||
// we pass this on to the CLI, to make sure these get run.
|
||||
let packString = util_1.ML_POWERED_JS_QUERIES_PACK.packName;
|
||||
if (util_1.ML_POWERED_JS_QUERIES_PACK.version)
|
||||
packString = `${packString}@${util_1.ML_POWERED_JS_QUERIES_PACK.version}`;
|
||||
const pack = await util.getMlPoweredJsQueriesPack(codeql);
|
||||
const packString = pack.packName + (pack.version ? `@${pack.version}` : "");
|
||||
if (augmentedConfig.packs === undefined)
|
||||
augmentedConfig.packs = [];
|
||||
if (Array.isArray(augmentedConfig.packs)) {
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
4
lib/config-utils.js
generated
4
lib/config-utils.js
generated
|
|
@ -135,13 +135,13 @@ async function addBuiltinSuiteQueries(languages, codeQL, resultMap, packs, suite
|
|||
process.platform !== "win32" &&
|
||||
languages.includes("javascript") &&
|
||||
(found === "security-extended" || found === "security-and-quality") &&
|
||||
!((_a = packs.javascript) === null || _a === void 0 ? void 0 : _a.some((pack) => pack.packName === util_1.ML_POWERED_JS_QUERIES_PACK.packName)) &&
|
||||
!((_a = packs.javascript) === null || _a === void 0 ? void 0 : _a.some((pack) => pack.packName === util_1.ML_POWERED_JS_QUERIES_PACK_NAME)) &&
|
||||
(await featureFlags.getValue(feature_flags_1.FeatureFlag.MlPoweredQueriesEnabled)) &&
|
||||
(await (0, util_1.codeQlVersionAbove)(codeQL, codeql_1.CODEQL_VERSION_ML_POWERED_QUERIES))) {
|
||||
if (!packs.javascript) {
|
||||
packs.javascript = [];
|
||||
}
|
||||
packs.javascript.push(util_1.ML_POWERED_JS_QUERIES_PACK);
|
||||
packs.javascript.push(await (0, util_1.getMlPoweredJsQueriesPack)(codeQL));
|
||||
injectedMlQueries = true;
|
||||
}
|
||||
const suites = languages.map((l) => `${l}-${suiteName}.qls`);
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
14
lib/util.js
generated
14
lib/util.js
generated
|
|
@ -22,7 +22,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.getMlPoweredJsQueriesStatus = exports.ML_POWERED_JS_QUERIES_PACK = exports.ML_POWERED_JS_QUERIES_PACK_NAME = exports.isGoodVersion = exports.delay = exports.bundleDb = exports.codeQlVersionAbove = exports.getCachedCodeQlVersion = exports.cacheCodeQlVersion = exports.isGitHubGhesVersionBelow = exports.isHTTPError = exports.UserError = exports.HTTPError = exports.getRequiredEnvParam = exports.isActions = exports.getMode = exports.enrichEnvironment = exports.initializeEnvironment = exports.Mode = exports.assertNever = exports.getGitHubAuth = exports.apiVersionInRange = exports.DisallowedAPIVersionReason = exports.checkGitHubVersionInRange = exports.getGitHubVersion = exports.GitHubVariant = exports.parseGitHubUrl = exports.getCodeQLDatabasePath = exports.getThreadsFlag = exports.getThreadsFlagValue = exports.getAddSnippetsFlag = exports.getMemoryFlag = exports.getMemoryFlagValue = exports.withTmpDir = exports.getToolNames = exports.getExtraOptionsEnvParam = exports.DEFAULT_DEBUG_DATABASE_NAME = exports.DEFAULT_DEBUG_ARTIFACT_NAME = exports.GITHUB_DOTCOM_URL = void 0;
|
||||
exports.getMlPoweredJsQueriesStatus = exports.getMlPoweredJsQueriesPack = exports.ML_POWERED_JS_QUERIES_PACK_NAME = exports.isGoodVersion = exports.delay = exports.bundleDb = exports.codeQlVersionAbove = exports.getCachedCodeQlVersion = exports.cacheCodeQlVersion = exports.isGitHubGhesVersionBelow = exports.isHTTPError = exports.UserError = exports.HTTPError = exports.getRequiredEnvParam = exports.isActions = exports.getMode = exports.enrichEnvironment = exports.initializeEnvironment = exports.Mode = exports.assertNever = exports.getGitHubAuth = exports.apiVersionInRange = exports.DisallowedAPIVersionReason = exports.checkGitHubVersionInRange = exports.getGitHubVersion = exports.GitHubVariant = exports.parseGitHubUrl = exports.getCodeQLDatabasePath = exports.getThreadsFlag = exports.getThreadsFlagValue = exports.getAddSnippetsFlag = exports.getMemoryFlag = exports.getMemoryFlagValue = exports.withTmpDir = exports.getToolNames = exports.getExtraOptionsEnvParam = exports.DEFAULT_DEBUG_DATABASE_NAME = exports.DEFAULT_DEBUG_ARTIFACT_NAME = exports.GITHUB_DOTCOM_URL = void 0;
|
||||
const fs = __importStar(require("fs"));
|
||||
const os = __importStar(require("os"));
|
||||
const path = __importStar(require("path"));
|
||||
|
|
@ -547,13 +547,15 @@ function isGoodVersion(versionSpec) {
|
|||
exports.isGoodVersion = isGoodVersion;
|
||||
exports.ML_POWERED_JS_QUERIES_PACK_NAME = "codeql/javascript-experimental-atm-queries";
|
||||
/**
|
||||
* The ML-powered JS query pack to add to the analysis if a repo is opted into the ML-powered
|
||||
* Gets the ML-powered JS query pack to add to the analysis if a repo is opted into the ML-powered
|
||||
* queries beta.
|
||||
*/
|
||||
exports.ML_POWERED_JS_QUERIES_PACK = {
|
||||
packName: "codeql/javascript-experimental-atm-queries",
|
||||
version: "~0.1.0",
|
||||
};
|
||||
async function getMlPoweredJsQueriesPack(
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||
_codeQL) {
|
||||
return { packName: exports.ML_POWERED_JS_QUERIES_PACK_NAME, version: "~0.1.0" };
|
||||
}
|
||||
exports.getMlPoweredJsQueriesPack = getMlPoweredJsQueriesPack;
|
||||
/**
|
||||
* Get information about ML-powered JS queries to populate status reports with.
|
||||
*
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -18,7 +18,7 @@ import { Logger } from "./logging";
|
|||
import * as toolcache from "./toolcache";
|
||||
import { toolrunnerErrorCatcher } from "./toolrunner-error-catcher";
|
||||
import * as util from "./util";
|
||||
import { isGoodVersion, ML_POWERED_JS_QUERIES_PACK } from "./util";
|
||||
import { isGoodVersion } from "./util";
|
||||
|
||||
type Options = Array<string | number | boolean>;
|
||||
|
||||
|
|
@ -741,9 +741,10 @@ async function getCodeQLForCmd(
|
|||
if (config.injectedMlQueries) {
|
||||
// We need to inject the ML queries into the original user input before
|
||||
// we pass this on to the CLI, to make sure these get run.
|
||||
let packString = ML_POWERED_JS_QUERIES_PACK.packName;
|
||||
if (ML_POWERED_JS_QUERIES_PACK.version)
|
||||
packString = `${packString}@${ML_POWERED_JS_QUERIES_PACK.version}`;
|
||||
const pack = await util.getMlPoweredJsQueriesPack(codeql);
|
||||
const packString =
|
||||
pack.packName + (pack.version ? `@${pack.version}` : "");
|
||||
|
||||
if (augmentedConfig.packs === undefined) augmentedConfig.packs = [];
|
||||
if (Array.isArray(augmentedConfig.packs)) {
|
||||
augmentedConfig.packs.push(packString);
|
||||
|
|
|
|||
|
|
@ -17,8 +17,9 @@ import { Logger } from "./logging";
|
|||
import { RepositoryNwo } from "./repository";
|
||||
import {
|
||||
codeQlVersionAbove,
|
||||
getMlPoweredJsQueriesPack,
|
||||
GitHubVersion,
|
||||
ML_POWERED_JS_QUERIES_PACK,
|
||||
ML_POWERED_JS_QUERIES_PACK_NAME,
|
||||
} from "./util";
|
||||
|
||||
// Property names from the user-supplied config file.
|
||||
|
|
@ -304,7 +305,7 @@ async function addBuiltinSuiteQueries(
|
|||
languages.includes("javascript") &&
|
||||
(found === "security-extended" || found === "security-and-quality") &&
|
||||
!packs.javascript?.some(
|
||||
(pack) => pack.packName === ML_POWERED_JS_QUERIES_PACK.packName
|
||||
(pack) => pack.packName === ML_POWERED_JS_QUERIES_PACK_NAME
|
||||
) &&
|
||||
(await featureFlags.getValue(FeatureFlag.MlPoweredQueriesEnabled)) &&
|
||||
(await codeQlVersionAbove(codeQL, CODEQL_VERSION_ML_POWERED_QUERIES))
|
||||
|
|
@ -312,7 +313,7 @@ async function addBuiltinSuiteQueries(
|
|||
if (!packs.javascript) {
|
||||
packs.javascript = [];
|
||||
}
|
||||
packs.javascript.push(ML_POWERED_JS_QUERIES_PACK);
|
||||
packs.javascript.push(await getMlPoweredJsQueriesPack(codeQL));
|
||||
injectedMlQueries = true;
|
||||
}
|
||||
|
||||
|
|
|
|||
12
src/util.ts
12
src/util.ts
|
|
@ -657,13 +657,15 @@ export const ML_POWERED_JS_QUERIES_PACK_NAME =
|
|||
"codeql/javascript-experimental-atm-queries";
|
||||
|
||||
/**
|
||||
* The ML-powered JS query pack to add to the analysis if a repo is opted into the ML-powered
|
||||
* Gets the ML-powered JS query pack to add to the analysis if a repo is opted into the ML-powered
|
||||
* queries beta.
|
||||
*/
|
||||
export const ML_POWERED_JS_QUERIES_PACK: PackWithVersion = {
|
||||
packName: "codeql/javascript-experimental-atm-queries",
|
||||
version: "~0.1.0",
|
||||
};
|
||||
export async function getMlPoweredJsQueriesPack(
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||
_codeQL: CodeQL
|
||||
): Promise<PackWithVersion> {
|
||||
return { packName: ML_POWERED_JS_QUERIES_PACK_NAME, version: "~0.1.0" };
|
||||
}
|
||||
|
||||
/**
|
||||
* Get information about ML-powered JS queries to populate status reports with.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue