mirror of
https://github.com/github/codeql-action.git
synced 2025-12-06 07:48:17 +08:00
Remove unneeded version guards
This commit is contained in:
30
lib/codeql.js
generated
30
lib/codeql.js
generated
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|||||||
return result;
|
return result;
|
||||||
};
|
};
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
exports.CODEQL_VERSION_SUBLANGUAGE_FILE_COVERAGE = exports.CODEQL_VERSION_ANALYSIS_SUMMARY_V2 = exports.CODEQL_VERSION_LANGUAGE_ALIASING = exports.CODEQL_VERSION_LANGUAGE_BASELINE_CONFIG = void 0;
|
exports.CODEQL_VERSION_SUBLANGUAGE_FILE_COVERAGE = exports.CODEQL_VERSION_ANALYSIS_SUMMARY_V2 = void 0;
|
||||||
exports.setupCodeQL = setupCodeQL;
|
exports.setupCodeQL = setupCodeQL;
|
||||||
exports.getCodeQL = getCodeQL;
|
exports.getCodeQL = getCodeQL;
|
||||||
exports.setCodeQL = setCodeQL;
|
exports.setCodeQL = setCodeQL;
|
||||||
@@ -85,14 +85,6 @@ const EXTRACTION_DEBUG_MODE_VERBOSITY = "progress++";
|
|||||||
* For convenience, please keep these in descending order. Once a version
|
* For convenience, please keep these in descending order. Once a version
|
||||||
* flag is older than the oldest supported version above, it may be removed.
|
* flag is older than the oldest supported version above, it may be removed.
|
||||||
*/
|
*/
|
||||||
/**
|
|
||||||
* Versions 2.14.2+ of the CodeQL CLI support language-specific baseline configuration.
|
|
||||||
*/
|
|
||||||
exports.CODEQL_VERSION_LANGUAGE_BASELINE_CONFIG = "2.14.2";
|
|
||||||
/**
|
|
||||||
* Versions 2.14.4+ of the CodeQL CLI support language aliasing.
|
|
||||||
*/
|
|
||||||
exports.CODEQL_VERSION_LANGUAGE_ALIASING = "2.14.4";
|
|
||||||
/**
|
/**
|
||||||
* Versions 2.15.0+ of the CodeQL CLI support new analysis summaries.
|
* Versions 2.15.0+ of the CodeQL CLI support new analysis summaries.
|
||||||
*/
|
*/
|
||||||
@@ -188,7 +180,7 @@ function setCodeQL(partialCodeql) {
|
|||||||
extractUsingBuildMode: resolveFunction(partialCodeql, "extractUsingBuildMode"),
|
extractUsingBuildMode: resolveFunction(partialCodeql, "extractUsingBuildMode"),
|
||||||
finalizeDatabase: resolveFunction(partialCodeql, "finalizeDatabase"),
|
finalizeDatabase: resolveFunction(partialCodeql, "finalizeDatabase"),
|
||||||
resolveLanguages: resolveFunction(partialCodeql, "resolveLanguages"),
|
resolveLanguages: resolveFunction(partialCodeql, "resolveLanguages"),
|
||||||
betterResolveLanguages: resolveFunction(partialCodeql, "betterResolveLanguages"),
|
betterResolveLanguages: resolveFunction(partialCodeql, "betterResolveLanguages", async () => ({ aliases: {}, extractors: {} })),
|
||||||
resolveQueries: resolveFunction(partialCodeql, "resolveQueries"),
|
resolveQueries: resolveFunction(partialCodeql, "resolveQueries"),
|
||||||
resolveBuildEnvironment: resolveFunction(partialCodeql, "resolveBuildEnvironment"),
|
resolveBuildEnvironment: resolveFunction(partialCodeql, "resolveBuildEnvironment"),
|
||||||
packDownload: resolveFunction(partialCodeql, "packDownload"),
|
packDownload: resolveFunction(partialCodeql, "packDownload"),
|
||||||
@@ -280,9 +272,7 @@ async function getCodeQLForCmd(cmd, checkVersion) {
|
|||||||
if (qlconfigFile !== undefined) {
|
if (qlconfigFile !== undefined) {
|
||||||
extraArgs.push(`--qlconfig-file=${qlconfigFile}`);
|
extraArgs.push(`--qlconfig-file=${qlconfigFile}`);
|
||||||
}
|
}
|
||||||
if (await util.codeQlVersionAtLeast(this, exports.CODEQL_VERSION_LANGUAGE_BASELINE_CONFIG)) {
|
extraArgs.push("--calculate-language-specific-baseline");
|
||||||
extraArgs.push("--calculate-language-specific-baseline");
|
|
||||||
}
|
|
||||||
if (await isSublanguageFileCoverageEnabled(config, this)) {
|
if (await isSublanguageFileCoverageEnabled(config, this)) {
|
||||||
extraArgs.push("--sublanguage-file-coverage");
|
extraArgs.push("--sublanguage-file-coverage");
|
||||||
}
|
}
|
||||||
@@ -299,7 +289,7 @@ async function getCodeQLForCmd(cmd, checkVersion) {
|
|||||||
"--db-cluster",
|
"--db-cluster",
|
||||||
config.dbLocation,
|
config.dbLocation,
|
||||||
`--source-root=${sourceRoot}`,
|
`--source-root=${sourceRoot}`,
|
||||||
...(await getLanguageAliasingArguments(this)),
|
"--extractor-include-aliases",
|
||||||
...extraArgs,
|
...extraArgs,
|
||||||
...getExtraOptionsFromEnv(["database", "init"], {
|
...getExtraOptionsFromEnv(["database", "init"], {
|
||||||
ignoringOptions: ["--overwrite"],
|
ignoringOptions: ["--overwrite"],
|
||||||
@@ -403,7 +393,7 @@ async function getCodeQLForCmd(cmd, checkVersion) {
|
|||||||
"languages",
|
"languages",
|
||||||
"--format=betterjson",
|
"--format=betterjson",
|
||||||
"--extractor-options-verbosity=4",
|
"--extractor-options-verbosity=4",
|
||||||
...(await getLanguageAliasingArguments(this)),
|
"--extractor-include-aliases",
|
||||||
...getExtraOptionsFromEnv(["resolve", "languages"]),
|
...getExtraOptionsFromEnv(["resolve", "languages"]),
|
||||||
];
|
];
|
||||||
const output = await runCli(cmd, codeqlArgs);
|
const output = await runCli(cmd, codeqlArgs);
|
||||||
@@ -438,7 +428,7 @@ async function getCodeQLForCmd(cmd, checkVersion) {
|
|||||||
"resolve",
|
"resolve",
|
||||||
"build-environment",
|
"build-environment",
|
||||||
`--language=${language}`,
|
`--language=${language}`,
|
||||||
...(await getLanguageAliasingArguments(this)),
|
"--extractor-include-aliases",
|
||||||
...getExtraOptionsFromEnv(["resolve", "build-environment"]),
|
...getExtraOptionsFromEnv(["resolve", "build-environment"]),
|
||||||
];
|
];
|
||||||
if (workingDir !== undefined) {
|
if (workingDir !== undefined) {
|
||||||
@@ -635,7 +625,7 @@ async function getCodeQLForCmd(cmd, checkVersion) {
|
|||||||
"extractor",
|
"extractor",
|
||||||
"--format=json",
|
"--format=json",
|
||||||
`--language=${language}`,
|
`--language=${language}`,
|
||||||
...(await getLanguageAliasingArguments(this)),
|
"--extractor-include-aliases",
|
||||||
...getExtraOptionsFromEnv(["resolve", "extractor"]),
|
...getExtraOptionsFromEnv(["resolve", "extractor"]),
|
||||||
], {
|
], {
|
||||||
silent: true,
|
silent: true,
|
||||||
@@ -836,12 +826,6 @@ async function getTrapCachingExtractorConfigArgsForLang(config, language) {
|
|||||||
function getGeneratedCodeScanningConfigPath(config) {
|
function getGeneratedCodeScanningConfigPath(config) {
|
||||||
return path.resolve(config.tempDir, "user-config.yaml");
|
return path.resolve(config.tempDir, "user-config.yaml");
|
||||||
}
|
}
|
||||||
async function getLanguageAliasingArguments(codeql) {
|
|
||||||
if (await util.codeQlVersionAtLeast(codeql, exports.CODEQL_VERSION_LANGUAGE_ALIASING)) {
|
|
||||||
return ["--extractor-include-aliases"];
|
|
||||||
}
|
|
||||||
return [];
|
|
||||||
}
|
|
||||||
async function isSublanguageFileCoverageEnabled(config, codeql) {
|
async function isSublanguageFileCoverageEnabled(config, codeql) {
|
||||||
return (
|
return (
|
||||||
// Sub-language file coverage is first supported in GHES 3.12.
|
// Sub-language file coverage is first supported in GHES 3.12.
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
14
lib/config-utils.js
generated
14
lib/config-utils.js
generated
@@ -34,7 +34,6 @@ exports.getNoLanguagesError = getNoLanguagesError;
|
|||||||
exports.getUnknownLanguagesError = getUnknownLanguagesError;
|
exports.getUnknownLanguagesError = getUnknownLanguagesError;
|
||||||
exports.getLanguagesInRepo = getLanguagesInRepo;
|
exports.getLanguagesInRepo = getLanguagesInRepo;
|
||||||
exports.getLanguages = getLanguages;
|
exports.getLanguages = getLanguages;
|
||||||
exports.getLanguageAliases = getLanguageAliases;
|
|
||||||
exports.getRawLanguages = getRawLanguages;
|
exports.getRawLanguages = getRawLanguages;
|
||||||
exports.getDefaultConfig = getDefaultConfig;
|
exports.getDefaultConfig = getDefaultConfig;
|
||||||
exports.calculateAugmentation = calculateAugmentation;
|
exports.calculateAugmentation = calculateAugmentation;
|
||||||
@@ -54,7 +53,6 @@ const perf_hooks_1 = require("perf_hooks");
|
|||||||
const yaml = __importStar(require("js-yaml"));
|
const yaml = __importStar(require("js-yaml"));
|
||||||
const semver = __importStar(require("semver"));
|
const semver = __importStar(require("semver"));
|
||||||
const api = __importStar(require("./api-client"));
|
const api = __importStar(require("./api-client"));
|
||||||
const codeql_1 = require("./codeql");
|
|
||||||
const feature_flags_1 = require("./feature-flags");
|
const feature_flags_1 = require("./feature-flags");
|
||||||
const languages_1 = require("./languages");
|
const languages_1 = require("./languages");
|
||||||
const trap_caching_1 = require("./trap-caching");
|
const trap_caching_1 = require("./trap-caching");
|
||||||
@@ -155,7 +153,7 @@ async function getLanguages(codeQL, languagesInput, repository, logger) {
|
|||||||
logger.info(`Automatically detected languages: ${languages.join(", ")}`);
|
logger.info(`Automatically detected languages: ${languages.join(", ")}`);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
const aliases = await getLanguageAliases(codeQL);
|
const aliases = (await codeQL.betterResolveLanguages()).aliases;
|
||||||
if (aliases) {
|
if (aliases) {
|
||||||
languages = languages.map((lang) => aliases[lang] || lang);
|
languages = languages.map((lang) => aliases[lang] || lang);
|
||||||
}
|
}
|
||||||
@@ -185,16 +183,6 @@ async function getLanguages(codeQL, languagesInput, repository, logger) {
|
|||||||
}
|
}
|
||||||
return parsedLanguages;
|
return parsedLanguages;
|
||||||
}
|
}
|
||||||
/**
|
|
||||||
* Gets the set of languages supported by CodeQL, along with their aliases if supported by the
|
|
||||||
* version of the CLI.
|
|
||||||
*/
|
|
||||||
async function getLanguageAliases(codeql) {
|
|
||||||
if (await (0, util_1.codeQlVersionAtLeast)(codeql, codeql_1.CODEQL_VERSION_LANGUAGE_ALIASING)) {
|
|
||||||
return (await codeql.betterResolveLanguages()).aliases;
|
|
||||||
}
|
|
||||||
return undefined;
|
|
||||||
}
|
|
||||||
/**
|
/**
|
||||||
* Gets the set of languages in the current repository without checking to
|
* Gets the set of languages in the current repository without checking to
|
||||||
* see if these languages are actually supported by CodeQL.
|
* see if these languages are actually supported by CodeQL.
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
17
lib/init-action.js
generated
17
lib/init-action.js
generated
@@ -299,23 +299,6 @@ async function run() {
|
|||||||
if (await features.getValue(feature_flags_1.Feature.DisableKotlinAnalysisEnabled)) {
|
if (await features.getValue(feature_flags_1.Feature.DisableKotlinAnalysisEnabled)) {
|
||||||
core.exportVariable("CODEQL_EXTRACTOR_JAVA_AGENT_DISABLE_KOTLIN", "true");
|
core.exportVariable("CODEQL_EXTRACTOR_JAVA_AGENT_DISABLE_KOTLIN", "true");
|
||||||
}
|
}
|
||||||
const kotlinLimitVar = "CODEQL_EXTRACTOR_KOTLIN_OVERRIDE_MAXIMUM_VERSION_LIMIT";
|
|
||||||
if (!(await (0, util_1.codeQlVersionAtLeast)(codeql, "2.14.4"))) {
|
|
||||||
core.exportVariable(kotlinLimitVar, "1.9.20");
|
|
||||||
}
|
|
||||||
if (config.languages.includes(languages_1.Language.java) &&
|
|
||||||
// Java Lombok support is enabled by default for >= 2.14.4
|
|
||||||
(await (0, util_1.codeQlVersionAtLeast)(codeql, "2.14.0")) &&
|
|
||||||
!(await (0, util_1.codeQlVersionAtLeast)(codeql, "2.14.4"))) {
|
|
||||||
const envVar = "CODEQL_EXTRACTOR_JAVA_RUN_ANNOTATION_PROCESSORS";
|
|
||||||
if (process.env[envVar]) {
|
|
||||||
logger.info(`Environment variable ${envVar} already set. Not en/disabling CodeQL Java Lombok support`);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
logger.info("Enabling CodeQL Java Lombok support");
|
|
||||||
core.exportVariable(envVar, "true");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (config.languages.includes(languages_1.Language.cpp)) {
|
if (config.languages.includes(languages_1.Language.cpp)) {
|
||||||
const envVar = "CODEQL_EXTRACTOR_CPP_TRAP_CACHING";
|
const envVar = "CODEQL_EXTRACTOR_CPP_TRAP_CACHING";
|
||||||
if (process.env[envVar]) {
|
if (process.env[envVar]) {
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
39
lib/resolve-environment.js
generated
39
lib/resolve-environment.js
generated
@@ -1,45 +1,10 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
||||||
if (k2 === undefined) k2 = k;
|
|
||||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
||||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
||||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
||||||
}
|
|
||||||
Object.defineProperty(o, k2, desc);
|
|
||||||
}) : (function(o, m, k, k2) {
|
|
||||||
if (k2 === undefined) k2 = k;
|
|
||||||
o[k2] = m[k];
|
|
||||||
}));
|
|
||||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
||||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
||||||
}) : function(o, v) {
|
|
||||||
o["default"] = v;
|
|
||||||
});
|
|
||||||
var __importStar = (this && this.__importStar) || function (mod) {
|
|
||||||
if (mod && mod.__esModule) return mod;
|
|
||||||
var result = {};
|
|
||||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
||||||
__setModuleDefault(result, mod);
|
|
||||||
return result;
|
|
||||||
};
|
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
exports.runResolveBuildEnvironment = runResolveBuildEnvironment;
|
exports.runResolveBuildEnvironment = runResolveBuildEnvironment;
|
||||||
const codeql_1 = require("./codeql");
|
const codeql_1 = require("./codeql");
|
||||||
const languages_1 = require("./languages");
|
async function runResolveBuildEnvironment(cmd, logger, workingDir, language) {
|
||||||
const util = __importStar(require("./util"));
|
logger.startGroup(`Attempting to resolve build environment for ${language}`);
|
||||||
async function runResolveBuildEnvironment(cmd, logger, workingDir, languageInput) {
|
|
||||||
logger.startGroup(`Attempting to resolve build environment for ${languageInput}`);
|
|
||||||
const codeql = await (0, codeql_1.getCodeQL)(cmd);
|
const codeql = await (0, codeql_1.getCodeQL)(cmd);
|
||||||
let language = languageInput;
|
|
||||||
// If the CodeQL CLI version in use supports language aliasing, give the CLI the raw language
|
|
||||||
// input. Otherwise, parse the language input and give the CLI the parsed language.
|
|
||||||
if (!(await util.codeQlVersionAtLeast(codeql, codeql_1.CODEQL_VERSION_LANGUAGE_ALIASING))) {
|
|
||||||
const parsedLanguage = (0, languages_1.parseLanguage)(languageInput)?.toString();
|
|
||||||
if (parsedLanguage === undefined) {
|
|
||||||
throw new util.ConfigurationError(`Did not recognize the language '${languageInput}'.`);
|
|
||||||
}
|
|
||||||
language = parsedLanguage;
|
|
||||||
}
|
|
||||||
if (workingDir !== undefined) {
|
if (workingDir !== undefined) {
|
||||||
logger.info(`Using ${workingDir} as the working directory.`);
|
logger.info(`Using ${workingDir} as the working directory.`);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
{"version":3,"file":"resolve-environment.js","sourceRoot":"","sources":["../src/resolve-environment.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAKA,gEAmCC;AAxCD,qCAAuE;AACvE,2CAA4C;AAE5C,6CAA+B;AAExB,KAAK,UAAU,0BAA0B,CAC9C,GAAW,EACX,MAAc,EACd,UAA8B,EAC9B,aAAqB;IAErB,MAAM,CAAC,UAAU,CACf,+CAA+C,aAAa,EAAE,CAC/D,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,IAAA,kBAAS,EAAC,GAAG,CAAC,CAAC;IAEpC,IAAI,QAAQ,GAAG,aAAa,CAAC;IAC7B,6FAA6F;IAC7F,mFAAmF;IACnF,IACE,CAAC,CAAC,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,yCAAgC,CAAC,CAAC,EAC5E,CAAC;QACD,MAAM,cAAc,GAAG,IAAA,yBAAa,EAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC;QAChE,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,IAAI,IAAI,CAAC,kBAAkB,CAC/B,mCAAmC,aAAa,IAAI,CACrD,CAAC;QACJ,CAAC;QACD,QAAQ,GAAG,cAAc,CAAC;IAC5B,CAAC;IAED,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,SAAS,UAAU,4BAA4B,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAE1E,MAAM,CAAC,QAAQ,EAAE,CAAC;IAClB,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
{"version":3,"file":"resolve-environment.js","sourceRoot":"","sources":["../src/resolve-environment.ts"],"names":[],"mappings":";;AAGA,gEAkBC;AArBD,qCAAqC;AAG9B,KAAK,UAAU,0BAA0B,CAC9C,GAAW,EACX,MAAc,EACd,UAA8B,EAC9B,QAAgB;IAEhB,MAAM,CAAC,UAAU,CAAC,+CAA+C,QAAQ,EAAE,CAAC,CAAC;IAE7E,MAAM,MAAM,GAAG,MAAM,IAAA,kBAAS,EAAC,GAAG,CAAC,CAAC;IAEpC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,SAAS,UAAU,4BAA4B,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAE1E,MAAM,CAAC,QAAQ,EAAE,CAAC;IAClB,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
||||||
@@ -303,16 +303,6 @@ const EXTRACTION_DEBUG_MODE_VERBOSITY = "progress++";
|
|||||||
* flag is older than the oldest supported version above, it may be removed.
|
* flag is older than the oldest supported version above, it may be removed.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
|
||||||
* Versions 2.14.2+ of the CodeQL CLI support language-specific baseline configuration.
|
|
||||||
*/
|
|
||||||
export const CODEQL_VERSION_LANGUAGE_BASELINE_CONFIG = "2.14.2";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Versions 2.14.4+ of the CodeQL CLI support language aliasing.
|
|
||||||
*/
|
|
||||||
export const CODEQL_VERSION_LANGUAGE_ALIASING = "2.14.4";
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Versions 2.15.0+ of the CodeQL CLI support new analysis summaries.
|
* Versions 2.15.0+ of the CodeQL CLI support new analysis summaries.
|
||||||
*/
|
*/
|
||||||
@@ -471,6 +461,7 @@ export function setCodeQL(partialCodeql: Partial<CodeQL>): CodeQL {
|
|||||||
betterResolveLanguages: resolveFunction(
|
betterResolveLanguages: resolveFunction(
|
||||||
partialCodeql,
|
partialCodeql,
|
||||||
"betterResolveLanguages",
|
"betterResolveLanguages",
|
||||||
|
async () => ({ aliases: {}, extractors: {} }),
|
||||||
),
|
),
|
||||||
resolveQueries: resolveFunction(partialCodeql, "resolveQueries"),
|
resolveQueries: resolveFunction(partialCodeql, "resolveQueries"),
|
||||||
resolveBuildEnvironment: resolveFunction(
|
resolveBuildEnvironment: resolveFunction(
|
||||||
@@ -602,14 +593,7 @@ export async function getCodeQLForCmd(
|
|||||||
extraArgs.push(`--qlconfig-file=${qlconfigFile}`);
|
extraArgs.push(`--qlconfig-file=${qlconfigFile}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (
|
extraArgs.push("--calculate-language-specific-baseline");
|
||||||
await util.codeQlVersionAtLeast(
|
|
||||||
this,
|
|
||||||
CODEQL_VERSION_LANGUAGE_BASELINE_CONFIG,
|
|
||||||
)
|
|
||||||
) {
|
|
||||||
extraArgs.push("--calculate-language-specific-baseline");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (await isSublanguageFileCoverageEnabled(config, this)) {
|
if (await isSublanguageFileCoverageEnabled(config, this)) {
|
||||||
extraArgs.push("--sublanguage-file-coverage");
|
extraArgs.push("--sublanguage-file-coverage");
|
||||||
@@ -638,7 +622,7 @@ export async function getCodeQLForCmd(
|
|||||||
"--db-cluster",
|
"--db-cluster",
|
||||||
config.dbLocation,
|
config.dbLocation,
|
||||||
`--source-root=${sourceRoot}`,
|
`--source-root=${sourceRoot}`,
|
||||||
...(await getLanguageAliasingArguments(this)),
|
"--extractor-include-aliases",
|
||||||
...extraArgs,
|
...extraArgs,
|
||||||
...getExtraOptionsFromEnv(["database", "init"], {
|
...getExtraOptionsFromEnv(["database", "init"], {
|
||||||
ignoringOptions: ["--overwrite"],
|
ignoringOptions: ["--overwrite"],
|
||||||
@@ -758,7 +742,7 @@ export async function getCodeQLForCmd(
|
|||||||
"languages",
|
"languages",
|
||||||
"--format=betterjson",
|
"--format=betterjson",
|
||||||
"--extractor-options-verbosity=4",
|
"--extractor-options-verbosity=4",
|
||||||
...(await getLanguageAliasingArguments(this)),
|
"--extractor-include-aliases",
|
||||||
...getExtraOptionsFromEnv(["resolve", "languages"]),
|
...getExtraOptionsFromEnv(["resolve", "languages"]),
|
||||||
];
|
];
|
||||||
const output = await runCli(cmd, codeqlArgs);
|
const output = await runCli(cmd, codeqlArgs);
|
||||||
@@ -801,7 +785,7 @@ export async function getCodeQLForCmd(
|
|||||||
"resolve",
|
"resolve",
|
||||||
"build-environment",
|
"build-environment",
|
||||||
`--language=${language}`,
|
`--language=${language}`,
|
||||||
...(await getLanguageAliasingArguments(this)),
|
"--extractor-include-aliases",
|
||||||
...getExtraOptionsFromEnv(["resolve", "build-environment"]),
|
...getExtraOptionsFromEnv(["resolve", "build-environment"]),
|
||||||
];
|
];
|
||||||
if (workingDir !== undefined) {
|
if (workingDir !== undefined) {
|
||||||
@@ -1065,7 +1049,7 @@ export async function getCodeQLForCmd(
|
|||||||
"extractor",
|
"extractor",
|
||||||
"--format=json",
|
"--format=json",
|
||||||
`--language=${language}`,
|
`--language=${language}`,
|
||||||
...(await getLanguageAliasingArguments(this)),
|
"--extractor-include-aliases",
|
||||||
...getExtraOptionsFromEnv(["resolve", "extractor"]),
|
...getExtraOptionsFromEnv(["resolve", "extractor"]),
|
||||||
],
|
],
|
||||||
{
|
{
|
||||||
@@ -1336,15 +1320,6 @@ export function getGeneratedCodeScanningConfigPath(config: Config): string {
|
|||||||
return path.resolve(config.tempDir, "user-config.yaml");
|
return path.resolve(config.tempDir, "user-config.yaml");
|
||||||
}
|
}
|
||||||
|
|
||||||
async function getLanguageAliasingArguments(codeql: CodeQL): Promise<string[]> {
|
|
||||||
if (
|
|
||||||
await util.codeQlVersionAtLeast(codeql, CODEQL_VERSION_LANGUAGE_ALIASING)
|
|
||||||
) {
|
|
||||||
return ["--extractor-include-aliases"];
|
|
||||||
}
|
|
||||||
return [];
|
|
||||||
}
|
|
||||||
|
|
||||||
async function isSublanguageFileCoverageEnabled(
|
async function isSublanguageFileCoverageEnabled(
|
||||||
config: Config,
|
config: Config,
|
||||||
codeql: CodeQL,
|
codeql: CodeQL,
|
||||||
|
|||||||
@@ -6,14 +6,13 @@ import * as yaml from "js-yaml";
|
|||||||
import * as semver from "semver";
|
import * as semver from "semver";
|
||||||
|
|
||||||
import * as api from "./api-client";
|
import * as api from "./api-client";
|
||||||
import { CodeQL, CODEQL_VERSION_LANGUAGE_ALIASING } from "./codeql";
|
import { CodeQL } from "./codeql";
|
||||||
import { Feature, FeatureEnablement } from "./feature-flags";
|
import { Feature, FeatureEnablement } from "./feature-flags";
|
||||||
import { Language, parseLanguage } from "./languages";
|
import { Language, parseLanguage } from "./languages";
|
||||||
import { Logger } from "./logging";
|
import { Logger } from "./logging";
|
||||||
import { RepositoryNwo } from "./repository";
|
import { RepositoryNwo } from "./repository";
|
||||||
import { downloadTrapCaches } from "./trap-caching";
|
import { downloadTrapCaches } from "./trap-caching";
|
||||||
import {
|
import {
|
||||||
codeQlVersionAtLeast,
|
|
||||||
GitHubVersion,
|
GitHubVersion,
|
||||||
prettyPrintPack,
|
prettyPrintPack,
|
||||||
ConfigurationError,
|
ConfigurationError,
|
||||||
@@ -317,7 +316,7 @@ export async function getLanguages(
|
|||||||
|
|
||||||
logger.info(`Automatically detected languages: ${languages.join(", ")}`);
|
logger.info(`Automatically detected languages: ${languages.join(", ")}`);
|
||||||
} else {
|
} else {
|
||||||
const aliases = await getLanguageAliases(codeQL);
|
const aliases = (await codeQL.betterResolveLanguages()).aliases;
|
||||||
if (aliases) {
|
if (aliases) {
|
||||||
languages = languages.map((lang) => aliases[lang] || lang);
|
languages = languages.map((lang) => aliases[lang] || lang);
|
||||||
}
|
}
|
||||||
@@ -352,19 +351,6 @@ export async function getLanguages(
|
|||||||
return parsedLanguages;
|
return parsedLanguages;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the set of languages supported by CodeQL, along with their aliases if supported by the
|
|
||||||
* version of the CLI.
|
|
||||||
*/
|
|
||||||
export async function getLanguageAliases(
|
|
||||||
codeql: CodeQL,
|
|
||||||
): Promise<{ [alias: string]: string } | undefined> {
|
|
||||||
if (await codeQlVersionAtLeast(codeql, CODEQL_VERSION_LANGUAGE_ALIASING)) {
|
|
||||||
return (await codeql.betterResolveLanguages()).aliases;
|
|
||||||
}
|
|
||||||
return undefined;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the set of languages in the current repository without checking to
|
* Gets the set of languages in the current repository without checking to
|
||||||
* see if these languages are actually supported by CodeQL.
|
* see if these languages are actually supported by CodeQL.
|
||||||
|
|||||||
@@ -524,29 +524,6 @@ async function run() {
|
|||||||
core.exportVariable("CODEQL_EXTRACTOR_JAVA_AGENT_DISABLE_KOTLIN", "true");
|
core.exportVariable("CODEQL_EXTRACTOR_JAVA_AGENT_DISABLE_KOTLIN", "true");
|
||||||
}
|
}
|
||||||
|
|
||||||
const kotlinLimitVar =
|
|
||||||
"CODEQL_EXTRACTOR_KOTLIN_OVERRIDE_MAXIMUM_VERSION_LIMIT";
|
|
||||||
if (!(await codeQlVersionAtLeast(codeql, "2.14.4"))) {
|
|
||||||
core.exportVariable(kotlinLimitVar, "1.9.20");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (
|
|
||||||
config.languages.includes(Language.java) &&
|
|
||||||
// Java Lombok support is enabled by default for >= 2.14.4
|
|
||||||
(await codeQlVersionAtLeast(codeql, "2.14.0")) &&
|
|
||||||
!(await codeQlVersionAtLeast(codeql, "2.14.4"))
|
|
||||||
) {
|
|
||||||
const envVar = "CODEQL_EXTRACTOR_JAVA_RUN_ANNOTATION_PROCESSORS";
|
|
||||||
if (process.env[envVar]) {
|
|
||||||
logger.info(
|
|
||||||
`Environment variable ${envVar} already set. Not en/disabling CodeQL Java Lombok support`,
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
logger.info("Enabling CodeQL Java Lombok support");
|
|
||||||
core.exportVariable(envVar, "true");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (config.languages.includes(Language.cpp)) {
|
if (config.languages.includes(Language.cpp)) {
|
||||||
const envVar = "CODEQL_EXTRACTOR_CPP_TRAP_CACHING";
|
const envVar = "CODEQL_EXTRACTOR_CPP_TRAP_CACHING";
|
||||||
if (process.env[envVar]) {
|
if (process.env[envVar]) {
|
||||||
|
|||||||
@@ -1,35 +1,16 @@
|
|||||||
import { CODEQL_VERSION_LANGUAGE_ALIASING, getCodeQL } from "./codeql";
|
import { getCodeQL } from "./codeql";
|
||||||
import { parseLanguage } from "./languages";
|
|
||||||
import { Logger } from "./logging";
|
import { Logger } from "./logging";
|
||||||
import * as util from "./util";
|
|
||||||
|
|
||||||
export async function runResolveBuildEnvironment(
|
export async function runResolveBuildEnvironment(
|
||||||
cmd: string,
|
cmd: string,
|
||||||
logger: Logger,
|
logger: Logger,
|
||||||
workingDir: string | undefined,
|
workingDir: string | undefined,
|
||||||
languageInput: string,
|
language: string,
|
||||||
) {
|
) {
|
||||||
logger.startGroup(
|
logger.startGroup(`Attempting to resolve build environment for ${language}`);
|
||||||
`Attempting to resolve build environment for ${languageInput}`,
|
|
||||||
);
|
|
||||||
|
|
||||||
const codeql = await getCodeQL(cmd);
|
const codeql = await getCodeQL(cmd);
|
||||||
|
|
||||||
let language = languageInput;
|
|
||||||
// If the CodeQL CLI version in use supports language aliasing, give the CLI the raw language
|
|
||||||
// input. Otherwise, parse the language input and give the CLI the parsed language.
|
|
||||||
if (
|
|
||||||
!(await util.codeQlVersionAtLeast(codeql, CODEQL_VERSION_LANGUAGE_ALIASING))
|
|
||||||
) {
|
|
||||||
const parsedLanguage = parseLanguage(languageInput)?.toString();
|
|
||||||
if (parsedLanguage === undefined) {
|
|
||||||
throw new util.ConfigurationError(
|
|
||||||
`Did not recognize the language '${languageInput}'.`,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
language = parsedLanguage;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (workingDir !== undefined) {
|
if (workingDir !== undefined) {
|
||||||
logger.info(`Using ${workingDir} as the working directory.`);
|
logger.info(`Using ${workingDir} as the working directory.`);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user