Merge pull request #3370 from github/copilot/update-overlay-git-version-check

Add git version check for overlay analysis enablement
This commit is contained in:
Henry Mercer
2025-12-18 15:47:40 +00:00
committed by GitHub
22 changed files with 1269 additions and 977 deletions
+1
View File
@@ -76,6 +76,7 @@ jobs:
- uses: ./../action/analyze
env:
https_proxy: http://squid-proxy:3128
CODEQL_ACTION_TOLERATE_MISSING_GIT_VERSION: true
CODEQL_ACTION_TEST_MODE: true
container:
image: ubuntu:22.04
@@ -6,6 +6,11 @@ env:
# Diff informed queries add an additional query filter which is not yet
# taken into account by these tests.
CODEQL_ACTION_DIFF_INFORMED_QUERIES: false
# Specify overlay enablement manually to ensure stability around the exclude-from-incremental
# query filter. Here we only enable for the default code scanning suite.
CODEQL_ACTION_OVERLAY_ANALYSIS: true
CODEQL_ACTION_OVERLAY_ANALYSIS_JAVASCRIPT: false
CODEQL_ACTION_OVERLAY_ANALYSIS_CODE_SCANNING_JAVASCRIPT: true
on:
push:
+66 -65
View File
@@ -26127,8 +26127,8 @@ var require_gte = __commonJS({
"node_modules/semver/functions/gte.js"(exports2, module2) {
"use strict";
var compare2 = require_compare();
var gte5 = (a, b, loose) => compare2(a, b, loose) >= 0;
module2.exports = gte5;
var gte6 = (a, b, loose) => compare2(a, b, loose) >= 0;
module2.exports = gte6;
}
});
@@ -26149,7 +26149,7 @@ var require_cmp = __commonJS({
var eq = require_eq();
var neq = require_neq();
var gt = require_gt();
var gte5 = require_gte();
var gte6 = require_gte();
var lt = require_lt();
var lte = require_lte();
var cmp = (a, op, b, loose) => {
@@ -26179,7 +26179,7 @@ var require_cmp = __commonJS({
case ">":
return gt(a, b, loose);
case ">=":
return gte5(a, b, loose);
return gte6(a, b, loose);
case "<":
return lt(a, b, loose);
case "<=":
@@ -26938,7 +26938,7 @@ var require_outside = __commonJS({
var gt = require_gt();
var lt = require_lt();
var lte = require_lte();
var gte5 = require_gte();
var gte6 = require_gte();
var outside = (version, range, hilo, options) => {
version = new SemVer(version, options);
range = new Range2(range, options);
@@ -26953,7 +26953,7 @@ var require_outside = __commonJS({
break;
case "<":
gtfn = lt;
ltefn = gte5;
ltefn = gte6;
ltfn = gt;
comp = "<";
ecomp = "<=";
@@ -27268,7 +27268,7 @@ var require_semver2 = __commonJS({
var lt = require_lt();
var eq = require_eq();
var neq = require_neq();
var gte5 = require_gte();
var gte6 = require_gte();
var lte = require_lte();
var cmp = require_cmp();
var coerce3 = require_coerce();
@@ -27306,7 +27306,7 @@ var require_semver2 = __commonJS({
lt,
eq,
neq,
gte: gte5,
gte: gte6,
lte,
cmp,
coerce: coerce3,
@@ -33489,7 +33489,7 @@ var require_brace_expansion = __commonJS({
function lte(i, y) {
return i <= y;
}
function gte5(i, y) {
function gte6(i, y) {
return i >= y;
}
function expand(str2, isTop) {
@@ -33534,7 +33534,7 @@ var require_brace_expansion = __commonJS({
var reverse = y < x;
if (reverse) {
incr *= -1;
test = gte5;
test = gte6;
}
var pad = n.some(isPadded);
N = [];
@@ -35435,8 +35435,8 @@ var require_semver3 = __commonJS({
function neq(a, b, loose) {
return compare2(a, b, loose) !== 0;
}
exports2.gte = gte5;
function gte5(a, b, loose) {
exports2.gte = gte6;
function gte6(a, b, loose) {
return compare2(a, b, loose) >= 0;
}
exports2.lte = lte;
@@ -35467,7 +35467,7 @@ var require_semver3 = __commonJS({
case ">":
return gt(a, b, loose);
case ">=":
return gte5(a, b, loose);
return gte6(a, b, loose);
case "<":
return lt(a, b, loose);
case "<=":
@@ -36012,7 +36012,7 @@ var require_semver3 = __commonJS({
break;
case "<":
gtfn = lt;
ltefn = gte5;
ltefn = gte6;
ltfn = gt;
comp = "<";
ecomp = "<=";
@@ -36232,7 +36232,7 @@ var require_cacheUtils = __commonJS({
var crypto2 = __importStar2(require("crypto"));
var fs8 = __importStar2(require("fs"));
var path7 = __importStar2(require("path"));
var semver8 = __importStar2(require_semver3());
var semver9 = __importStar2(require_semver3());
var util = __importStar2(require("util"));
var constants_1 = require_constants7();
var versionSalt = "1.0";
@@ -36325,7 +36325,7 @@ var require_cacheUtils = __commonJS({
function getCompressionMethod() {
return __awaiter2(this, void 0, void 0, function* () {
const versionOutput = yield getVersion("zstd", ["--quiet"]);
const version = semver8.clean(versionOutput);
const version = semver9.clean(versionOutput);
core14.debug(`zstd version: ${version}`);
if (versionOutput === "") {
return constants_1.CompressionMethod.Gzip;
@@ -85918,7 +85918,7 @@ var require_manifest = __commonJS({
};
Object.defineProperty(exports2, "__esModule", { value: true });
exports2._readLinuxVersionFile = exports2._getOsVersion = exports2._findMatch = void 0;
var semver8 = __importStar2(require_semver2());
var semver9 = __importStar2(require_semver2());
var core_1 = require_core3();
var os2 = require("os");
var cp = require("child_process");
@@ -85932,7 +85932,7 @@ var require_manifest = __commonJS({
for (const candidate of candidates) {
const version = candidate.version;
(0, core_1.debug)(`check ${version} satisfies ${versionSpec}`);
if (semver8.satisfies(version, versionSpec) && (!stable || candidate.stable === stable)) {
if (semver9.satisfies(version, versionSpec) && (!stable || candidate.stable === stable)) {
file = candidate.files.find((item) => {
(0, core_1.debug)(`${item.arch}===${archFilter} && ${item.platform}===${platFilter}`);
let chk = item.arch === archFilter && item.platform === platFilter;
@@ -85941,7 +85941,7 @@ var require_manifest = __commonJS({
if (osVersion === item.platform_version) {
chk = true;
} else {
chk = semver8.satisfies(osVersion, item.platform_version);
chk = semver9.satisfies(osVersion, item.platform_version);
}
}
return chk;
@@ -86171,7 +86171,7 @@ var require_tool_cache = __commonJS({
var os2 = __importStar2(require("os"));
var path7 = __importStar2(require("path"));
var httpm = __importStar2(require_lib5());
var semver8 = __importStar2(require_semver2());
var semver9 = __importStar2(require_semver2());
var stream = __importStar2(require("stream"));
var util = __importStar2(require("util"));
var assert_1 = require("assert");
@@ -86445,7 +86445,7 @@ var require_tool_cache = __commonJS({
}
function cacheDir(sourceDir, tool, version, arch) {
return __awaiter2(this, void 0, void 0, function* () {
version = semver8.clean(version) || version;
version = semver9.clean(version) || version;
arch = arch || os2.arch();
core14.debug(`Caching tool ${tool} ${version} ${arch}`);
core14.debug(`source dir: ${sourceDir}`);
@@ -86464,7 +86464,7 @@ var require_tool_cache = __commonJS({
exports2.cacheDir = cacheDir;
function cacheFile(sourceFile, targetFile, tool, version, arch) {
return __awaiter2(this, void 0, void 0, function* () {
version = semver8.clean(version) || version;
version = semver9.clean(version) || version;
arch = arch || os2.arch();
core14.debug(`Caching tool ${tool} ${version} ${arch}`);
core14.debug(`source file: ${sourceFile}`);
@@ -86495,7 +86495,7 @@ var require_tool_cache = __commonJS({
}
let toolPath = "";
if (versionSpec) {
versionSpec = semver8.clean(versionSpec) || "";
versionSpec = semver9.clean(versionSpec) || "";
const cachePath = path7.join(_getCacheDirectory(), toolName, versionSpec, arch);
core14.debug(`checking cache: ${cachePath}`);
if (fs8.existsSync(cachePath) && fs8.existsSync(`${cachePath}.complete`)) {
@@ -86579,7 +86579,7 @@ var require_tool_cache = __commonJS({
}
function _createToolPath(tool, version, arch) {
return __awaiter2(this, void 0, void 0, function* () {
const folderPath = path7.join(_getCacheDirectory(), tool, semver8.clean(version) || version, arch || "");
const folderPath = path7.join(_getCacheDirectory(), tool, semver9.clean(version) || version, arch || "");
core14.debug(`destination ${folderPath}`);
const markerPath = `${folderPath}.complete`;
yield io6.rmRF(folderPath);
@@ -86589,15 +86589,15 @@ var require_tool_cache = __commonJS({
});
}
function _completeToolPath(tool, version, arch) {
const folderPath = path7.join(_getCacheDirectory(), tool, semver8.clean(version) || version, arch || "");
const folderPath = path7.join(_getCacheDirectory(), tool, semver9.clean(version) || version, arch || "");
const markerPath = `${folderPath}.complete`;
fs8.writeFileSync(markerPath, "");
core14.debug("finished caching tool");
}
function isExplicitVersion(versionSpec) {
const c = semver8.clean(versionSpec) || "";
const c = semver9.clean(versionSpec) || "";
core14.debug(`isExplicit: ${c}`);
const valid3 = semver8.valid(c) != null;
const valid3 = semver9.valid(c) != null;
core14.debug(`explicit? ${valid3}`);
return valid3;
}
@@ -86606,14 +86606,14 @@ var require_tool_cache = __commonJS({
let version = "";
core14.debug(`evaluating ${versions.length} versions`);
versions = versions.sort((a, b) => {
if (semver8.gt(a, b)) {
if (semver9.gt(a, b)) {
return 1;
}
return -1;
});
for (let i = versions.length - 1; i >= 0; i--) {
const potential = versions[i];
const satisfied = semver8.satisfies(potential, versionSpec);
const satisfied = semver9.satisfies(potential, versionSpec);
if (satisfied) {
version = potential;
break;
@@ -90207,7 +90207,7 @@ var require_brace_expansion2 = __commonJS({
function lte(i, y) {
return i <= y;
}
function gte5(i, y) {
function gte6(i, y) {
return i >= y;
}
function expand(str2, isTop) {
@@ -90257,7 +90257,7 @@ var require_brace_expansion2 = __commonJS({
var reverse = y < x;
if (reverse) {
incr *= -1;
test = gte5;
test = gte6;
}
var pad = n.some(isPadded);
N = [];
@@ -103562,7 +103562,7 @@ var require_commonjs19 = __commonJS({
function lte(i, y) {
return i <= y;
}
function gte5(i, y) {
function gte6(i, y) {
return i >= y;
}
function expand_(str2, isTop) {
@@ -103611,7 +103611,7 @@ var require_commonjs19 = __commonJS({
const reverse = y < x;
if (reverse) {
incr *= -1;
test = gte5;
test = gte6;
}
const pad = n.some(isPadded);
N = [];
@@ -126714,8 +126714,30 @@ var PACK_IDENTIFIER_PATTERN = (function() {
return new RegExp(`^${component}/${component}$`);
})();
// src/logging.ts
var core7 = __toESM(require_core());
function getActionsLogger() {
return {
debug: core7.debug,
info: core7.info,
warning: core7.warning,
error: core7.error,
isDebug: core7.isDebug,
startGroup: core7.startGroup,
endGroup: core7.endGroup
};
}
function withGroup(groupName, f) {
core7.startGroup(groupName);
try {
return f();
} finally {
core7.endGroup();
}
}
// src/feature-flags.ts
var semver4 = __toESM(require_semver2());
var semver5 = __toESM(require_semver2());
// src/overlay-database-utils.ts
var fs2 = __toESM(require("fs"));
@@ -126723,13 +126745,14 @@ var path2 = __toESM(require("path"));
var actionsCache = __toESM(require_cache4());
// src/git-utils.ts
var core7 = __toESM(require_core());
var core8 = __toESM(require_core());
var toolrunner2 = __toESM(require_toolrunner());
var io3 = __toESM(require_io());
var semver3 = __toESM(require_semver2());
var runGitCommand = async function(workingDirectory, args, customErrorMessage) {
let stdout = "";
let stderr = "";
core7.debug(`Running git command: git ${args.join(" ")}`);
core8.debug(`Running git command: git ${args.join(" ")}`);
try {
await new toolrunner2.ToolRunner(await io3.which("git", true), args, {
silent: true,
@@ -126749,7 +126772,7 @@ var runGitCommand = async function(workingDirectory, args, customErrorMessage) {
if (stderr.includes("not a git repository")) {
reason = "The checkout path provided to the action does not appear to be a git repository.";
}
core7.info(`git call failed. ${customErrorMessage} Error: ${reason}`);
core8.info(`git call failed. ${customErrorMessage} Error: ${reason}`);
throw error3;
}
};
@@ -126860,7 +126883,7 @@ async function getRef() {
) !== head;
if (hasChangedRef) {
const newRef = ref.replace(pull_ref_regex, "refs/pull/$1/head");
core7.debug(
core8.debug(
`No longer on merge commit, rewriting ref from ${ref} to ${newRef}.`
);
return newRef;
@@ -126885,28 +126908,6 @@ async function isAnalyzingDefaultBranch() {
return currentRef === defaultBranch;
}
// src/logging.ts
var core8 = __toESM(require_core());
function getActionsLogger() {
return {
debug: core8.debug,
info: core8.info,
warning: core8.warning,
error: core8.error,
isDebug: core8.isDebug,
startGroup: core8.startGroup,
endGroup: core8.endGroup
};
}
function withGroup(groupName, f) {
core8.startGroup(groupName);
try {
return f();
} finally {
core8.endGroup();
}
}
// src/overlay-database-utils.ts
var CODEQL_OVERLAY_MINIMUM_VERSION = "2.23.5";
var OVERLAY_BASE_DATABASE_MAX_UPLOAD_SIZE_MB = 7500;
@@ -126969,13 +126970,13 @@ function computeChangedFiles(baseFileOids, overlayFileOids) {
}
// src/tools-features.ts
var semver3 = __toESM(require_semver2());
var semver4 = __toESM(require_semver2());
function isSupportedToolsFeature(versionInfo, feature) {
return !!versionInfo.features && versionInfo.features[feature];
}
var SafeArtifactUploadVersion = "2.20.3";
function isSafeArtifactUpload(codeQlVersion) {
return !codeQlVersion ? true : semver3.gte(codeQlVersion, SafeArtifactUploadVersion);
return !codeQlVersion ? true : semver4.gte(codeQlVersion, SafeArtifactUploadVersion);
}
// src/feature-flags.ts
@@ -127251,20 +127252,20 @@ function appendExtraQueryExclusions(extraQueryExclusions, cliConfig) {
// src/setup-codeql.ts
var toolcache3 = __toESM(require_tool_cache());
var import_fast_deep_equal = __toESM(require_fast_deep_equal());
var semver7 = __toESM(require_semver2());
var semver8 = __toESM(require_semver2());
// src/tar.ts
var import_toolrunner = __toESM(require_toolrunner());
var io4 = __toESM(require_io());
var toolcache = __toESM(require_tool_cache());
var semver5 = __toESM(require_semver2());
var semver6 = __toESM(require_semver2());
// src/tools-download.ts
var core9 = __toESM(require_core());
var import_http_client = __toESM(require_lib());
var toolcache2 = __toESM(require_tool_cache());
var import_follow_redirects = __toESM(require_follow_redirects());
var semver6 = __toESM(require_semver2());
var semver7 = __toESM(require_semver2());
var STREAMING_HIGH_WATERMARK_BYTES = 4 * 1024 * 1024;
// src/tracer-config.ts
+159 -156
View File
@@ -26127,8 +26127,8 @@ var require_gte = __commonJS({
"node_modules/semver/functions/gte.js"(exports2, module2) {
"use strict";
var compare3 = require_compare();
var gte5 = (a, b, loose) => compare3(a, b, loose) >= 0;
module2.exports = gte5;
var gte6 = (a, b, loose) => compare3(a, b, loose) >= 0;
module2.exports = gte6;
}
});
@@ -26149,7 +26149,7 @@ var require_cmp = __commonJS({
var eq = require_eq();
var neq = require_neq();
var gt = require_gt();
var gte5 = require_gte();
var gte6 = require_gte();
var lt = require_lt();
var lte = require_lte();
var cmp = (a, op, b, loose) => {
@@ -26179,7 +26179,7 @@ var require_cmp = __commonJS({
case ">":
return gt(a, b, loose);
case ">=":
return gte5(a, b, loose);
return gte6(a, b, loose);
case "<":
return lt(a, b, loose);
case "<=":
@@ -26938,7 +26938,7 @@ var require_outside = __commonJS({
var gt = require_gt();
var lt = require_lt();
var lte = require_lte();
var gte5 = require_gte();
var gte6 = require_gte();
var outside = (version, range, hilo, options) => {
version = new SemVer(version, options);
range = new Range2(range, options);
@@ -26953,7 +26953,7 @@ var require_outside = __commonJS({
break;
case "<":
gtfn = lt;
ltefn = gte5;
ltefn = gte6;
ltfn = gt;
comp = "<";
ecomp = "<=";
@@ -27268,7 +27268,7 @@ var require_semver2 = __commonJS({
var lt = require_lt();
var eq = require_eq();
var neq = require_neq();
var gte5 = require_gte();
var gte6 = require_gte();
var lte = require_lte();
var cmp = require_cmp();
var coerce3 = require_coerce();
@@ -27306,7 +27306,7 @@ var require_semver2 = __commonJS({
lt,
eq,
neq,
gte: gte5,
gte: gte6,
lte,
cmp,
coerce: coerce3,
@@ -33489,7 +33489,7 @@ var require_brace_expansion = __commonJS({
function lte(i, y) {
return i <= y;
}
function gte5(i, y) {
function gte6(i, y) {
return i >= y;
}
function expand(str2, isTop) {
@@ -33534,7 +33534,7 @@ var require_brace_expansion = __commonJS({
var reverse = y < x;
if (reverse) {
incr *= -1;
test = gte5;
test = gte6;
}
var pad = n.some(isPadded);
N = [];
@@ -35435,8 +35435,8 @@ var require_semver3 = __commonJS({
function neq(a, b, loose) {
return compare3(a, b, loose) !== 0;
}
exports2.gte = gte5;
function gte5(a, b, loose) {
exports2.gte = gte6;
function gte6(a, b, loose) {
return compare3(a, b, loose) >= 0;
}
exports2.lte = lte;
@@ -35467,7 +35467,7 @@ var require_semver3 = __commonJS({
case ">":
return gt(a, b, loose);
case ">=":
return gte5(a, b, loose);
return gte6(a, b, loose);
case "<":
return lt(a, b, loose);
case "<=":
@@ -36012,7 +36012,7 @@ var require_semver3 = __commonJS({
break;
case "<":
gtfn = lt;
ltefn = gte5;
ltefn = gte6;
ltfn = gt;
comp = "<";
ecomp = "<=";
@@ -36232,7 +36232,7 @@ var require_cacheUtils = __commonJS({
var crypto3 = __importStar2(require("crypto"));
var fs17 = __importStar2(require("fs"));
var path16 = __importStar2(require("path"));
var semver8 = __importStar2(require_semver3());
var semver9 = __importStar2(require_semver3());
var util = __importStar2(require("util"));
var constants_1 = require_constants7();
var versionSalt = "1.0";
@@ -36325,7 +36325,7 @@ var require_cacheUtils = __commonJS({
function getCompressionMethod() {
return __awaiter2(this, void 0, void 0, function* () {
const versionOutput = yield getVersion("zstd", ["--quiet"]);
const version = semver8.clean(versionOutput);
const version = semver9.clean(versionOutput);
core15.debug(`zstd version: ${version}`);
if (versionOutput === "") {
return constants_1.CompressionMethod.Gzip;
@@ -85918,7 +85918,7 @@ var require_manifest = __commonJS({
};
Object.defineProperty(exports2, "__esModule", { value: true });
exports2._readLinuxVersionFile = exports2._getOsVersion = exports2._findMatch = void 0;
var semver8 = __importStar2(require_semver2());
var semver9 = __importStar2(require_semver2());
var core_1 = require_core3();
var os5 = require("os");
var cp = require("child_process");
@@ -85932,7 +85932,7 @@ var require_manifest = __commonJS({
for (const candidate of candidates) {
const version = candidate.version;
(0, core_1.debug)(`check ${version} satisfies ${versionSpec}`);
if (semver8.satisfies(version, versionSpec) && (!stable || candidate.stable === stable)) {
if (semver9.satisfies(version, versionSpec) && (!stable || candidate.stable === stable)) {
file = candidate.files.find((item) => {
(0, core_1.debug)(`${item.arch}===${archFilter} && ${item.platform}===${platFilter}`);
let chk = item.arch === archFilter && item.platform === platFilter;
@@ -85941,7 +85941,7 @@ var require_manifest = __commonJS({
if (osVersion === item.platform_version) {
chk = true;
} else {
chk = semver8.satisfies(osVersion, item.platform_version);
chk = semver9.satisfies(osVersion, item.platform_version);
}
}
return chk;
@@ -86171,7 +86171,7 @@ var require_tool_cache = __commonJS({
var os5 = __importStar2(require("os"));
var path16 = __importStar2(require("path"));
var httpm = __importStar2(require_lib5());
var semver8 = __importStar2(require_semver2());
var semver9 = __importStar2(require_semver2());
var stream2 = __importStar2(require("stream"));
var util = __importStar2(require("util"));
var assert_1 = require("assert");
@@ -86445,7 +86445,7 @@ var require_tool_cache = __commonJS({
}
function cacheDir(sourceDir, tool, version, arch2) {
return __awaiter2(this, void 0, void 0, function* () {
version = semver8.clean(version) || version;
version = semver9.clean(version) || version;
arch2 = arch2 || os5.arch();
core15.debug(`Caching tool ${tool} ${version} ${arch2}`);
core15.debug(`source dir: ${sourceDir}`);
@@ -86464,7 +86464,7 @@ var require_tool_cache = __commonJS({
exports2.cacheDir = cacheDir;
function cacheFile(sourceFile, targetFile, tool, version, arch2) {
return __awaiter2(this, void 0, void 0, function* () {
version = semver8.clean(version) || version;
version = semver9.clean(version) || version;
arch2 = arch2 || os5.arch();
core15.debug(`Caching tool ${tool} ${version} ${arch2}`);
core15.debug(`source file: ${sourceFile}`);
@@ -86495,7 +86495,7 @@ var require_tool_cache = __commonJS({
}
let toolPath = "";
if (versionSpec) {
versionSpec = semver8.clean(versionSpec) || "";
versionSpec = semver9.clean(versionSpec) || "";
const cachePath = path16.join(_getCacheDirectory(), toolName, versionSpec, arch2);
core15.debug(`checking cache: ${cachePath}`);
if (fs17.existsSync(cachePath) && fs17.existsSync(`${cachePath}.complete`)) {
@@ -86579,7 +86579,7 @@ var require_tool_cache = __commonJS({
}
function _createToolPath(tool, version, arch2) {
return __awaiter2(this, void 0, void 0, function* () {
const folderPath = path16.join(_getCacheDirectory(), tool, semver8.clean(version) || version, arch2 || "");
const folderPath = path16.join(_getCacheDirectory(), tool, semver9.clean(version) || version, arch2 || "");
core15.debug(`destination ${folderPath}`);
const markerPath = `${folderPath}.complete`;
yield io7.rmRF(folderPath);
@@ -86589,15 +86589,15 @@ var require_tool_cache = __commonJS({
});
}
function _completeToolPath(tool, version, arch2) {
const folderPath = path16.join(_getCacheDirectory(), tool, semver8.clean(version) || version, arch2 || "");
const folderPath = path16.join(_getCacheDirectory(), tool, semver9.clean(version) || version, arch2 || "");
const markerPath = `${folderPath}.complete`;
fs17.writeFileSync(markerPath, "");
core15.debug("finished caching tool");
}
function isExplicitVersion(versionSpec) {
const c = semver8.clean(versionSpec) || "";
const c = semver9.clean(versionSpec) || "";
core15.debug(`isExplicit: ${c}`);
const valid3 = semver8.valid(c) != null;
const valid3 = semver9.valid(c) != null;
core15.debug(`explicit? ${valid3}`);
return valid3;
}
@@ -86606,14 +86606,14 @@ var require_tool_cache = __commonJS({
let version = "";
core15.debug(`evaluating ${versions.length} versions`);
versions = versions.sort((a, b) => {
if (semver8.gt(a, b)) {
if (semver9.gt(a, b)) {
return 1;
}
return -1;
});
for (let i = versions.length - 1; i >= 0; i--) {
const potential = versions[i];
const satisfied = semver8.satisfies(potential, versionSpec);
const satisfied = semver9.satisfies(potential, versionSpec);
if (satisfied) {
version = potential;
break;
@@ -93708,7 +93708,7 @@ function wrapApiConfigurationError(e) {
// src/codeql.ts
var fs11 = __toESM(require("fs"));
var path10 = __toESM(require("path"));
var path11 = __toESM(require("path"));
var core10 = __toESM(require_core());
var toolrunner3 = __toESM(require_toolrunner());
@@ -93954,7 +93954,7 @@ function wrapCliConfigurationError(cliError) {
// src/config-utils.ts
var fs6 = __toESM(require("fs"));
var path6 = __toESM(require("path"));
var path7 = __toESM(require("path"));
// src/caching-utils.ts
var crypto2 = __toESM(require("crypto"));
@@ -93984,14 +93984,94 @@ var PACK_IDENTIFIER_PATTERN = (function() {
return new RegExp(`^${component}/${component}$`);
})();
// src/diagnostics.ts
var import_fs = require("fs");
var import_path = __toESM(require("path"));
// src/logging.ts
var core7 = __toESM(require_core());
function getActionsLogger() {
return {
debug: core7.debug,
info: core7.info,
warning: core7.warning,
error: core7.error,
isDebug: core7.isDebug,
startGroup: core7.startGroup,
endGroup: core7.endGroup
};
}
async function withGroupAsync(groupName, f) {
core7.startGroup(groupName);
try {
return await f();
} finally {
core7.endGroup();
}
}
function formatDuration(durationMs) {
if (durationMs < 1e3) {
return `${durationMs}ms`;
}
if (durationMs < 60 * 1e3) {
return `${(durationMs / 1e3).toFixed(1)}s`;
}
const minutes = Math.floor(durationMs / (60 * 1e3));
const seconds = Math.floor(durationMs % (60 * 1e3) / 1e3);
return `${minutes}m${seconds}s`;
}
// src/diagnostics.ts
var unwrittenDiagnostics = [];
function makeDiagnostic(id, name, data = void 0) {
return {
...data,
timestamp: data?.timestamp ?? (/* @__PURE__ */ new Date()).toISOString(),
source: { ...data?.source, id, name }
};
}
function addDiagnostic(config, language, diagnostic) {
const logger = getActionsLogger();
const databasePath = language ? getCodeQLDatabasePath(config, language) : config.dbLocation;
if ((0, import_fs.existsSync)(databasePath)) {
writeDiagnostic(config, language, diagnostic);
} else {
logger.debug(
`Writing a diagnostic for ${language}, but the database at ${databasePath} does not exist yet.`
);
unwrittenDiagnostics.push({ diagnostic, language });
}
}
function writeDiagnostic(config, language, diagnostic) {
const logger = getActionsLogger();
const databasePath = language ? getCodeQLDatabasePath(config, language) : config.dbLocation;
const diagnosticsPath = import_path.default.resolve(
databasePath,
"diagnostic",
"codeql-action"
);
try {
(0, import_fs.mkdirSync)(diagnosticsPath, { recursive: true });
const jsonPath = import_path.default.resolve(
diagnosticsPath,
// Remove colons from the timestamp as these are not allowed in Windows filenames.
`codeql-action-${diagnostic.timestamp.replaceAll(":", "")}.json`
);
(0, import_fs.writeFileSync)(jsonPath, JSON.stringify(diagnostic));
} catch (err) {
logger.warning(`Unable to write diagnostic message to database: ${err}`);
logger.debug(JSON.stringify(diagnostic));
}
}
// src/diff-informed-analysis-utils.ts
var fs5 = __toESM(require("fs"));
var path5 = __toESM(require("path"));
var path6 = __toESM(require("path"));
// src/feature-flags.ts
var fs4 = __toESM(require("fs"));
var path4 = __toESM(require("path"));
var semver4 = __toESM(require_semver2());
var path5 = __toESM(require("path"));
var semver5 = __toESM(require_semver2());
// src/defaults.json
var bundleVersion = "codeql-bundle-v2.23.8";
@@ -93999,17 +94079,18 @@ var cliVersion = "2.23.8";
// src/overlay-database-utils.ts
var fs3 = __toESM(require("fs"));
var path3 = __toESM(require("path"));
var path4 = __toESM(require("path"));
var actionsCache = __toESM(require_cache4());
// src/git-utils.ts
var core7 = __toESM(require_core());
var core8 = __toESM(require_core());
var toolrunner2 = __toESM(require_toolrunner());
var io3 = __toESM(require_io());
var semver3 = __toESM(require_semver2());
var runGitCommand = async function(workingDirectory, args, customErrorMessage) {
let stdout = "";
let stderr = "";
core7.debug(`Running git command: git ${args.join(" ")}`);
core8.debug(`Running git command: git ${args.join(" ")}`);
try {
await new toolrunner2.ToolRunner(await io3.which("git", true), args, {
silent: true,
@@ -94029,7 +94110,7 @@ var runGitCommand = async function(workingDirectory, args, customErrorMessage) {
if (stderr.includes("not a git repository")) {
reason = "The checkout path provided to the action does not appear to be a git repository.";
}
core7.info(`git call failed. ${customErrorMessage} Error: ${reason}`);
core8.info(`git call failed. ${customErrorMessage} Error: ${reason}`);
throw error3;
}
};
@@ -94174,7 +94255,7 @@ async function getRef() {
) !== head;
if (hasChangedRef) {
const newRef = ref.replace(pull_ref_regex, "refs/pull/$1/head");
core7.debug(
core8.debug(
`No longer on merge commit, rewriting ref from ${ref} to ${newRef}.`
);
return newRef;
@@ -94199,39 +94280,6 @@ async function isAnalyzingDefaultBranch() {
return currentRef === defaultBranch;
}
// src/logging.ts
var core8 = __toESM(require_core());
function getActionsLogger() {
return {
debug: core8.debug,
info: core8.info,
warning: core8.warning,
error: core8.error,
isDebug: core8.isDebug,
startGroup: core8.startGroup,
endGroup: core8.endGroup
};
}
async function withGroupAsync(groupName, f) {
core8.startGroup(groupName);
try {
return await f();
} finally {
core8.endGroup();
}
}
function formatDuration(durationMs) {
if (durationMs < 1e3) {
return `${durationMs}ms`;
}
if (durationMs < 60 * 1e3) {
return `${(durationMs / 1e3).toFixed(1)}s`;
}
const minutes = Math.floor(durationMs / (60 * 1e3));
const seconds = Math.floor(durationMs % (60 * 1e3) / 1e3);
return `${minutes}m${seconds}s`;
}
// src/overlay-database-utils.ts
var CODEQL_OVERLAY_MINIMUM_VERSION = "2.23.5";
var OVERLAY_BASE_DATABASE_MAX_UPLOAD_SIZE_MB = 7500;
@@ -94258,7 +94306,7 @@ async function readBaseDatabaseOidsFile(config, logger) {
}
}
function getBaseDatabaseOidsFilePath(config) {
return path3.join(config.dbLocation, "base-database-oids.json");
return path4.join(config.dbLocation, "base-database-oids.json");
}
async function writeOverlayChangesFile(config, sourceRoot, logger) {
const baseFileOids = await readBaseDatabaseOidsFile(config, logger);
@@ -94268,7 +94316,7 @@ async function writeOverlayChangesFile(config, sourceRoot, logger) {
`Found ${changedFiles.length} changed file(s) under ${sourceRoot}.`
);
const changedFilesJson = JSON.stringify({ changes: changedFiles });
const overlayChangesFile = path3.join(
const overlayChangesFile = path4.join(
getTemporaryDirectory(),
"overlay-changes.json"
);
@@ -94429,7 +94477,7 @@ async function getCacheRestoreKeyPrefix(config, codeQlVersion) {
}
// src/tools-features.ts
var semver3 = __toESM(require_semver2());
var semver4 = __toESM(require_semver2());
function isSupportedToolsFeature(versionInfo, feature) {
return !!versionInfo.features && versionInfo.features[feature];
}
@@ -94639,7 +94687,7 @@ var Features = class {
this.gitHubFeatureFlags = new GitHubFeatureFlags(
gitHubVersion,
repositoryNwo,
path4.join(tempDir, FEATURE_FLAGS_FILE_NAME),
path5.join(tempDir, FEATURE_FLAGS_FILE_NAME),
logger
);
}
@@ -94738,7 +94786,7 @@ var GitHubFeatureFlags = class {
DEFAULT_VERSION_FEATURE_FLAG_PREFIX.length,
f.length - DEFAULT_VERSION_FEATURE_FLAG_SUFFIX.length
).replace(/_/g, ".");
if (!semver4.valid(version)) {
if (!semver5.valid(version)) {
this.logger.warning(
`Ignoring feature flag ${f} as it does not specify a valid CodeQL version.`
);
@@ -94919,7 +94967,7 @@ async function getDiffInformedAnalysisBranches(codeql, features, logger) {
return branches;
}
function getDiffRangesJsonFilePath() {
return path5.join(getTemporaryDirectory(), "pr-diff-range.json");
return path6.join(getTemporaryDirectory(), "pr-diff-range.json");
}
function writeDiffRangesJsonFile(logger, ranges) {
const jsonContents = JSON.stringify(ranges, null, 2);
@@ -94999,7 +95047,7 @@ Error Response: ${JSON.stringify(error3.response, null, 2)}`
}
}
function getDiffRanges(fileDiff, logger) {
const filename = path5.join(getRequiredInput("checkout_path"), fileDiff.filename).replaceAll(path5.sep, "/");
const filename = path6.join(getRequiredInput("checkout_path"), fileDiff.filename).replaceAll(path6.sep, "/");
if (fileDiff.patch === void 0) {
if (fileDiff.changes === 0) {
return [];
@@ -95206,7 +95254,7 @@ var OVERLAY_ANALYSIS_CODE_SCANNING_FEATURES = {
swift: "overlay_analysis_code_scanning_swift" /* OverlayAnalysisCodeScanningSwift */
};
function getPathToParsedConfigFile(tempDir) {
return path6.join(tempDir, "config");
return path7.join(tempDir, "config");
}
async function getConfig(tempDir, logger) {
const configFile = getPathToParsedConfigFile(tempDir);
@@ -95262,10 +95310,10 @@ function getPrimaryAnalysisConfig(config) {
// src/setup-codeql.ts
var fs9 = __toESM(require("fs"));
var path8 = __toESM(require("path"));
var path9 = __toESM(require("path"));
var toolcache3 = __toESM(require_tool_cache());
var import_fast_deep_equal = __toESM(require_fast_deep_equal());
var semver7 = __toESM(require_semver2());
var semver8 = __toESM(require_semver2());
// node_modules/uuid/dist-node/stringify.js
var byteToHex = [];
@@ -95328,7 +95376,7 @@ var stream = __toESM(require("stream"));
var import_toolrunner = __toESM(require_toolrunner());
var io4 = __toESM(require_io());
var toolcache = __toESM(require_tool_cache());
var semver5 = __toESM(require_semver2());
var semver6 = __toESM(require_semver2());
var MIN_REQUIRED_BSD_TAR_VERSION = "3.4.3";
var MIN_REQUIRED_GNU_TAR_VERSION = "1.31";
async function getTarVersion() {
@@ -95370,9 +95418,9 @@ async function isZstdAvailable(logger) {
case "gnu":
return {
available: foundZstdBinary && // GNU tar only uses major and minor version numbers
semver5.gte(
semver5.coerce(version),
semver5.coerce(MIN_REQUIRED_GNU_TAR_VERSION)
semver6.gte(
semver6.coerce(version),
semver6.coerce(MIN_REQUIRED_GNU_TAR_VERSION)
),
foundZstdBinary,
version: tarVersion
@@ -95381,7 +95429,7 @@ async function isZstdAvailable(logger) {
return {
available: foundZstdBinary && // Do a loose comparison since these version numbers don't contain
// a patch version number.
semver5.gte(version, MIN_REQUIRED_BSD_TAR_VERSION),
semver6.gte(version, MIN_REQUIRED_BSD_TAR_VERSION),
foundZstdBinary,
version: tarVersion
};
@@ -95482,13 +95530,13 @@ function inferCompressionMethod(tarPath) {
// src/tools-download.ts
var fs8 = __toESM(require("fs"));
var os2 = __toESM(require("os"));
var path7 = __toESM(require("path"));
var path8 = __toESM(require("path"));
var import_perf_hooks = require("perf_hooks");
var core9 = __toESM(require_core());
var import_http_client = __toESM(require_lib());
var toolcache2 = __toESM(require_tool_cache());
var import_follow_redirects = __toESM(require_follow_redirects());
var semver6 = __toESM(require_semver2());
var semver7 = __toESM(require_semver2());
var STREAMING_HIGH_WATERMARK_BYTES = 4 * 1024 * 1024;
var TOOLCACHE_TOOL_NAME = "CodeQL";
function makeDownloadFirstToolsDownloadDurations(downloadDurationMs, extractionDurationMs) {
@@ -95615,10 +95663,10 @@ async function downloadAndExtractZstdWithStreaming(codeqlURL, dest, authorizatio
await extractTarZst(response, dest, tarVersion, logger);
}
function getToolcacheDirectory(version) {
return path7.join(
return path8.join(
getRequiredEnvParam("RUNNER_TOOL_CACHE"),
TOOLCACHE_TOOL_NAME,
semver6.clean(version) || version,
semver7.clean(version) || version,
os2.arch() || ""
);
}
@@ -95743,13 +95791,13 @@ function tryGetTagNameFromUrl(url2, logger) {
return match[1];
}
function convertToSemVer(version, logger) {
if (!semver7.valid(version)) {
if (!semver8.valid(version)) {
logger.debug(
`Bundle version ${version} is not in SemVer format. Will treat it as pre-release 0.0.0-${version}.`
);
version = `0.0.0-${version}`;
}
const s = semver7.clean(version);
const s = semver8.clean(version);
if (!s) {
throw new Error(`Bundle version ${version} is not in SemVer format.`);
}
@@ -95759,7 +95807,7 @@ async function findOverridingToolsInCache(humanReadableVersion, logger) {
const candidates = toolcache3.findAllVersions("CodeQL").filter(isGoodVersion).map((version) => ({
folder: toolcache3.find("CodeQL", version),
version
})).filter(({ folder }) => fs9.existsSync(path8.join(folder, "pinned-version")));
})).filter(({ folder }) => fs9.existsSync(path9.join(folder, "pinned-version")));
if (candidates.length === 1) {
const candidate = candidates[0];
logger.debug(
@@ -95857,7 +95905,7 @@ async function getCodeQLSource(toolsInput, defaultCliVersion, apiDetails, varian
url2 = toolsInput;
if (tagName) {
const bundleVersion3 = tryGetBundleVersionFromTagName(tagName, logger);
if (bundleVersion3 && semver7.valid(bundleVersion3)) {
if (bundleVersion3 && semver8.valid(bundleVersion3)) {
cliVersion2 = convertToSemVer(bundleVersion3, logger);
}
}
@@ -96128,11 +96176,11 @@ async function setupCodeQLBundle(toolsInput, apiDetails, tempDir, variant, defau
async function useZstdBundle(cliVersion2, tarSupportsZstd) {
return (
// In testing, gzip performs better than zstd on Windows.
process.platform !== "win32" && tarSupportsZstd && semver7.gte(cliVersion2, CODEQL_VERSION_ZSTD_BUNDLE)
process.platform !== "win32" && tarSupportsZstd && semver8.gte(cliVersion2, CODEQL_VERSION_ZSTD_BUNDLE)
);
}
function getTempExtractionDir(tempDir) {
return path8.join(tempDir, v4_default());
return path9.join(tempDir, v4_default());
}
async function getNightlyToolsUrl(logger) {
const zstdAvailability = await isZstdAvailable(logger);
@@ -96160,7 +96208,7 @@ async function getNightlyToolsUrl(logger) {
}
}
function getLatestToolcacheVersion(logger) {
const allVersions = toolcache3.findAllVersions("CodeQL").sort((a, b) => semver7.compare(b, a));
const allVersions = toolcache3.findAllVersions("CodeQL").sort((a, b) => semver8.compare(b, a));
logger.debug(
`Found the following versions of the CodeQL tools in the toolcache: ${JSON.stringify(
allVersions
@@ -96181,7 +96229,7 @@ function isReservedToolsValue(tools) {
// src/tracer-config.ts
var fs10 = __toESM(require("fs"));
var path9 = __toESM(require("path"));
var path10 = __toESM(require("path"));
async function shouldEnableIndirectTracing(codeql, config) {
if (config.buildMode === "none" /* None */) {
return false;
@@ -96196,7 +96244,7 @@ async function endTracingForCluster(codeql, config, logger) {
logger.info(
"Unsetting build tracing environment variables. Subsequent steps of this job will not be traced."
);
const envVariablesFile = path9.resolve(
const envVariablesFile = path10.resolve(
config.dbLocation,
"temp/tracingEnvironment/end-tracing.json"
);
@@ -96253,7 +96301,7 @@ async function setupCodeQL(toolsInput, apiDetails, tempDir, variant, defaultCliV
toolsDownloadStatusReport
)}`
);
let codeqlCmd = path10.join(codeqlFolder, "codeql", "codeql");
let codeqlCmd = path11.join(codeqlFolder, "codeql", "codeql");
if (process.platform === "win32") {
codeqlCmd += ".exe";
} else if (process.platform !== "linux" && process.platform !== "darwin") {
@@ -96315,7 +96363,7 @@ async function getCodeQLForCmd(cmd, checkVersion) {
},
async isTracedLanguage(language) {
const extractorPath = await this.resolveExtractor(language);
const tracingConfigPath = path10.join(
const tracingConfigPath = path11.join(
extractorPath,
"tools",
"tracing-config.lua"
@@ -96391,7 +96439,7 @@ async function getCodeQLForCmd(cmd, checkVersion) {
},
async runAutobuild(config, language) {
applyAutobuildAzurePipelinesTimeoutFix();
const autobuildCmd = path10.join(
const autobuildCmd = path11.join(
await this.resolveExtractor(language),
"tools",
process.platform === "win32" ? "autobuild.cmd" : "autobuild.sh"
@@ -96814,7 +96862,7 @@ async function getTrapCachingExtractorConfigArgsForLang(config, language) {
];
}
function getGeneratedCodeScanningConfigPath(config) {
return path10.resolve(config.tempDir, "user-config.yaml");
return path11.resolve(config.tempDir, "user-config.yaml");
}
function getExtractionVerbosityArguments(enableDebugLogging) {
return enableDebugLogging ? [`--verbosity=${EXTRACTION_DEBUG_MODE_VERBOSITY}`] : [];
@@ -96882,31 +96930,31 @@ async function runAutobuild(config, language, logger) {
// src/dependency-caching.ts
var os3 = __toESM(require("os"));
var import_path = require("path");
var import_path2 = require("path");
var actionsCache3 = __toESM(require_cache4());
var glob = __toESM(require_glob());
var CODEQL_DEPENDENCY_CACHE_PREFIX = "codeql-dependencies";
var CODEQL_DEPENDENCY_CACHE_VERSION = 1;
function getJavaTempDependencyDir() {
return (0, import_path.join)(getTemporaryDirectory(), "codeql_java", "repository");
return (0, import_path2.join)(getTemporaryDirectory(), "codeql_java", "repository");
}
async function getJavaDependencyDirs() {
return [
// Maven
(0, import_path.join)(os3.homedir(), ".m2", "repository"),
(0, import_path2.join)(os3.homedir(), ".m2", "repository"),
// Gradle
(0, import_path.join)(os3.homedir(), ".gradle", "caches"),
(0, import_path2.join)(os3.homedir(), ".gradle", "caches"),
// CodeQL Java build-mode: none
getJavaTempDependencyDir()
];
}
function getCsharpTempDependencyDir() {
return (0, import_path.join)(getTemporaryDirectory(), "codeql_csharp", "repository");
return (0, import_path2.join)(getTemporaryDirectory(), "codeql_csharp", "repository");
}
async function getCsharpDependencyDirs(codeql, features) {
const dirs = [
// Nuget
(0, import_path.join)(os3.homedir(), ".nuget", "packages")
(0, import_path2.join)(os3.homedir(), ".nuget", "packages")
];
if (await features.getValue("csharp_cache_bmn" /* CsharpCacheBuildModeNone */, codeql)) {
dirs.push(getCsharpTempDependencyDir());
@@ -96961,7 +97009,7 @@ var defaultCacheConfigs = {
getHashPatterns: getCsharpHashPatterns
},
go: {
getDependencyPaths: async () => [(0, import_path.join)(os3.homedir(), "go", "pkg", "mod")],
getDependencyPaths: async () => [(0, import_path2.join)(os3.homedir(), "go", "pkg", "mod")],
getHashPatterns: async () => internal.makePatternCheck(["**/go.sum"])
}
};
@@ -97080,51 +97128,6 @@ var internal = {
makePatternCheck
};
// src/diagnostics.ts
var import_fs = require("fs");
var import_path2 = __toESM(require("path"));
var unwrittenDiagnostics = [];
function makeDiagnostic(id, name, data = void 0) {
return {
...data,
timestamp: data?.timestamp ?? (/* @__PURE__ */ new Date()).toISOString(),
source: { ...data?.source, id, name }
};
}
function addDiagnostic(config, language, diagnostic) {
const logger = getActionsLogger();
const databasePath = language ? getCodeQLDatabasePath(config, language) : config.dbLocation;
if ((0, import_fs.existsSync)(databasePath)) {
writeDiagnostic(config, language, diagnostic);
} else {
logger.debug(
`Writing a diagnostic for ${language}, but the database at ${databasePath} does not exist yet.`
);
unwrittenDiagnostics.push({ diagnostic, language });
}
}
function writeDiagnostic(config, language, diagnostic) {
const logger = getActionsLogger();
const databasePath = language ? getCodeQLDatabasePath(config, language) : config.dbLocation;
const diagnosticsPath = import_path2.default.resolve(
databasePath,
"diagnostic",
"codeql-action"
);
try {
(0, import_fs.mkdirSync)(diagnosticsPath, { recursive: true });
const jsonPath = import_path2.default.resolve(
diagnosticsPath,
// Remove colons from the timestamp as these are not allowed in Windows filenames.
`codeql-action-${diagnostic.timestamp.replaceAll(":", "")}.json`
);
(0, import_fs.writeFileSync)(jsonPath, JSON.stringify(diagnostic));
} catch (err) {
logger.warning(`Unable to write diagnostic message to database: ${err}`);
logger.debug(JSON.stringify(diagnostic));
}
}
// src/analyze.ts
var CodeQLAnalysisError = class extends Error {
constructor(queriesStatusReport, message, error3) {
+54 -53
View File
@@ -26127,8 +26127,8 @@ var require_gte = __commonJS({
"node_modules/semver/functions/gte.js"(exports2, module2) {
"use strict";
var compare2 = require_compare();
var gte5 = (a, b, loose) => compare2(a, b, loose) >= 0;
module2.exports = gte5;
var gte6 = (a, b, loose) => compare2(a, b, loose) >= 0;
module2.exports = gte6;
}
});
@@ -26149,7 +26149,7 @@ var require_cmp = __commonJS({
var eq = require_eq();
var neq = require_neq();
var gt = require_gt();
var gte5 = require_gte();
var gte6 = require_gte();
var lt = require_lt();
var lte = require_lte();
var cmp = (a, op, b, loose) => {
@@ -26179,7 +26179,7 @@ var require_cmp = __commonJS({
case ">":
return gt(a, b, loose);
case ">=":
return gte5(a, b, loose);
return gte6(a, b, loose);
case "<":
return lt(a, b, loose);
case "<=":
@@ -26938,7 +26938,7 @@ var require_outside = __commonJS({
var gt = require_gt();
var lt = require_lt();
var lte = require_lte();
var gte5 = require_gte();
var gte6 = require_gte();
var outside = (version, range, hilo, options) => {
version = new SemVer(version, options);
range = new Range2(range, options);
@@ -26953,7 +26953,7 @@ var require_outside = __commonJS({
break;
case "<":
gtfn = lt;
ltefn = gte5;
ltefn = gte6;
ltfn = gt;
comp = "<";
ecomp = "<=";
@@ -27268,7 +27268,7 @@ var require_semver2 = __commonJS({
var lt = require_lt();
var eq = require_eq();
var neq = require_neq();
var gte5 = require_gte();
var gte6 = require_gte();
var lte = require_lte();
var cmp = require_cmp();
var coerce3 = require_coerce();
@@ -27306,7 +27306,7 @@ var require_semver2 = __commonJS({
lt,
eq,
neq,
gte: gte5,
gte: gte6,
lte,
cmp,
coerce: coerce3,
@@ -33489,7 +33489,7 @@ var require_brace_expansion = __commonJS({
function lte(i, y) {
return i <= y;
}
function gte5(i, y) {
function gte6(i, y) {
return i >= y;
}
function expand(str2, isTop) {
@@ -33534,7 +33534,7 @@ var require_brace_expansion = __commonJS({
var reverse = y < x;
if (reverse) {
incr *= -1;
test = gte5;
test = gte6;
}
var pad = n.some(isPadded);
N = [];
@@ -35435,8 +35435,8 @@ var require_semver3 = __commonJS({
function neq(a, b, loose) {
return compare2(a, b, loose) !== 0;
}
exports2.gte = gte5;
function gte5(a, b, loose) {
exports2.gte = gte6;
function gte6(a, b, loose) {
return compare2(a, b, loose) >= 0;
}
exports2.lte = lte;
@@ -35467,7 +35467,7 @@ var require_semver3 = __commonJS({
case ">":
return gt(a, b, loose);
case ">=":
return gte5(a, b, loose);
return gte6(a, b, loose);
case "<":
return lt(a, b, loose);
case "<=":
@@ -36012,7 +36012,7 @@ var require_semver3 = __commonJS({
break;
case "<":
gtfn = lt;
ltefn = gte5;
ltefn = gte6;
ltfn = gt;
comp = "<";
ecomp = "<=";
@@ -36232,7 +36232,7 @@ var require_cacheUtils = __commonJS({
var crypto2 = __importStar2(require("crypto"));
var fs7 = __importStar2(require("fs"));
var path7 = __importStar2(require("path"));
var semver8 = __importStar2(require_semver3());
var semver9 = __importStar2(require_semver3());
var util = __importStar2(require("util"));
var constants_1 = require_constants7();
var versionSalt = "1.0";
@@ -36325,7 +36325,7 @@ var require_cacheUtils = __commonJS({
function getCompressionMethod() {
return __awaiter2(this, void 0, void 0, function* () {
const versionOutput = yield getVersion("zstd", ["--quiet"]);
const version = semver8.clean(versionOutput);
const version = semver9.clean(versionOutput);
core14.debug(`zstd version: ${version}`);
if (versionOutput === "") {
return constants_1.CompressionMethod.Gzip;
@@ -85918,7 +85918,7 @@ var require_manifest = __commonJS({
};
Object.defineProperty(exports2, "__esModule", { value: true });
exports2._readLinuxVersionFile = exports2._getOsVersion = exports2._findMatch = void 0;
var semver8 = __importStar2(require_semver2());
var semver9 = __importStar2(require_semver2());
var core_1 = require_core3();
var os2 = require("os");
var cp = require("child_process");
@@ -85932,7 +85932,7 @@ var require_manifest = __commonJS({
for (const candidate of candidates) {
const version = candidate.version;
(0, core_1.debug)(`check ${version} satisfies ${versionSpec}`);
if (semver8.satisfies(version, versionSpec) && (!stable || candidate.stable === stable)) {
if (semver9.satisfies(version, versionSpec) && (!stable || candidate.stable === stable)) {
file = candidate.files.find((item) => {
(0, core_1.debug)(`${item.arch}===${archFilter} && ${item.platform}===${platFilter}`);
let chk = item.arch === archFilter && item.platform === platFilter;
@@ -85941,7 +85941,7 @@ var require_manifest = __commonJS({
if (osVersion === item.platform_version) {
chk = true;
} else {
chk = semver8.satisfies(osVersion, item.platform_version);
chk = semver9.satisfies(osVersion, item.platform_version);
}
}
return chk;
@@ -86171,7 +86171,7 @@ var require_tool_cache = __commonJS({
var os2 = __importStar2(require("os"));
var path7 = __importStar2(require("path"));
var httpm = __importStar2(require_lib5());
var semver8 = __importStar2(require_semver2());
var semver9 = __importStar2(require_semver2());
var stream = __importStar2(require("stream"));
var util = __importStar2(require("util"));
var assert_1 = require("assert");
@@ -86445,7 +86445,7 @@ var require_tool_cache = __commonJS({
}
function cacheDir(sourceDir, tool, version, arch) {
return __awaiter2(this, void 0, void 0, function* () {
version = semver8.clean(version) || version;
version = semver9.clean(version) || version;
arch = arch || os2.arch();
core14.debug(`Caching tool ${tool} ${version} ${arch}`);
core14.debug(`source dir: ${sourceDir}`);
@@ -86464,7 +86464,7 @@ var require_tool_cache = __commonJS({
exports2.cacheDir = cacheDir;
function cacheFile(sourceFile, targetFile, tool, version, arch) {
return __awaiter2(this, void 0, void 0, function* () {
version = semver8.clean(version) || version;
version = semver9.clean(version) || version;
arch = arch || os2.arch();
core14.debug(`Caching tool ${tool} ${version} ${arch}`);
core14.debug(`source file: ${sourceFile}`);
@@ -86495,7 +86495,7 @@ var require_tool_cache = __commonJS({
}
let toolPath = "";
if (versionSpec) {
versionSpec = semver8.clean(versionSpec) || "";
versionSpec = semver9.clean(versionSpec) || "";
const cachePath = path7.join(_getCacheDirectory(), toolName, versionSpec, arch);
core14.debug(`checking cache: ${cachePath}`);
if (fs7.existsSync(cachePath) && fs7.existsSync(`${cachePath}.complete`)) {
@@ -86579,7 +86579,7 @@ var require_tool_cache = __commonJS({
}
function _createToolPath(tool, version, arch) {
return __awaiter2(this, void 0, void 0, function* () {
const folderPath = path7.join(_getCacheDirectory(), tool, semver8.clean(version) || version, arch || "");
const folderPath = path7.join(_getCacheDirectory(), tool, semver9.clean(version) || version, arch || "");
core14.debug(`destination ${folderPath}`);
const markerPath = `${folderPath}.complete`;
yield io5.rmRF(folderPath);
@@ -86589,15 +86589,15 @@ var require_tool_cache = __commonJS({
});
}
function _completeToolPath(tool, version, arch) {
const folderPath = path7.join(_getCacheDirectory(), tool, semver8.clean(version) || version, arch || "");
const folderPath = path7.join(_getCacheDirectory(), tool, semver9.clean(version) || version, arch || "");
const markerPath = `${folderPath}.complete`;
fs7.writeFileSync(markerPath, "");
core14.debug("finished caching tool");
}
function isExplicitVersion(versionSpec) {
const c = semver8.clean(versionSpec) || "";
const c = semver9.clean(versionSpec) || "";
core14.debug(`isExplicit: ${c}`);
const valid3 = semver8.valid(c) != null;
const valid3 = semver9.valid(c) != null;
core14.debug(`explicit? ${valid3}`);
return valid3;
}
@@ -86606,14 +86606,14 @@ var require_tool_cache = __commonJS({
let version = "";
core14.debug(`evaluating ${versions.length} versions`);
versions = versions.sort((a, b) => {
if (semver8.gt(a, b)) {
if (semver9.gt(a, b)) {
return 1;
}
return -1;
});
for (let i = versions.length - 1; i >= 0; i--) {
const potential = versions[i];
const satisfied = semver8.satisfies(potential, versionSpec);
const satisfied = semver9.satisfies(potential, versionSpec);
if (satisfied) {
version = potential;
break;
@@ -90575,10 +90575,24 @@ var PACK_IDENTIFIER_PATTERN = (function() {
return new RegExp(`^${component}/${component}$`);
})();
// src/logging.ts
var core7 = __toESM(require_core());
function getActionsLogger() {
return {
debug: core7.debug,
info: core7.info,
warning: core7.warning,
error: core7.error,
isDebug: core7.isDebug,
startGroup: core7.startGroup,
endGroup: core7.endGroup
};
}
// src/feature-flags.ts
var fs3 = __toESM(require("fs"));
var path3 = __toESM(require("path"));
var semver4 = __toESM(require_semver2());
var semver5 = __toESM(require_semver2());
// src/defaults.json
var bundleVersion = "codeql-bundle-v2.23.8";
@@ -90590,13 +90604,14 @@ var path2 = __toESM(require("path"));
var actionsCache = __toESM(require_cache4());
// src/git-utils.ts
var core7 = __toESM(require_core());
var core8 = __toESM(require_core());
var toolrunner2 = __toESM(require_toolrunner());
var io3 = __toESM(require_io());
var semver3 = __toESM(require_semver2());
var runGitCommand = async function(workingDirectory, args, customErrorMessage) {
let stdout = "";
let stderr = "";
core7.debug(`Running git command: git ${args.join(" ")}`);
core8.debug(`Running git command: git ${args.join(" ")}`);
try {
await new toolrunner2.ToolRunner(await io3.which("git", true), args, {
silent: true,
@@ -90616,7 +90631,7 @@ var runGitCommand = async function(workingDirectory, args, customErrorMessage) {
if (stderr.includes("not a git repository")) {
reason = "The checkout path provided to the action does not appear to be a git repository.";
}
core7.info(`git call failed. ${customErrorMessage} Error: ${reason}`);
core8.info(`git call failed. ${customErrorMessage} Error: ${reason}`);
throw error3;
}
};
@@ -90727,7 +90742,7 @@ async function getRef() {
) !== head;
if (hasChangedRef) {
const newRef = ref.replace(pull_ref_regex, "refs/pull/$1/head");
core7.debug(
core8.debug(
`No longer on merge commit, rewriting ref from ${ref} to ${newRef}.`
);
return newRef;
@@ -90752,20 +90767,6 @@ async function isAnalyzingDefaultBranch() {
return currentRef === defaultBranch;
}
// src/logging.ts
var core8 = __toESM(require_core());
function getActionsLogger() {
return {
debug: core8.debug,
info: core8.info,
warning: core8.warning,
error: core8.error,
isDebug: core8.isDebug,
startGroup: core8.startGroup,
endGroup: core8.endGroup
};
}
// src/overlay-database-utils.ts
var CODEQL_OVERLAY_MINIMUM_VERSION = "2.23.5";
var OVERLAY_BASE_DATABASE_MAX_UPLOAD_SIZE_MB = 7500;
@@ -90828,7 +90829,7 @@ function computeChangedFiles(baseFileOids, overlayFileOids) {
}
// src/tools-features.ts
var semver3 = __toESM(require_semver2());
var semver4 = __toESM(require_semver2());
function isSupportedToolsFeature(versionInfo, feature) {
return !!versionInfo.features && versionInfo.features[feature];
}
@@ -91136,7 +91137,7 @@ var GitHubFeatureFlags = class {
DEFAULT_VERSION_FEATURE_FLAG_PREFIX.length,
f.length - DEFAULT_VERSION_FEATURE_FLAG_SUFFIX.length
).replace(/_/g, ".");
if (!semver4.valid(version)) {
if (!semver5.valid(version)) {
this.logger.warning(
`Ignoring feature flag ${f} as it does not specify a valid CodeQL version.`
);
@@ -91376,20 +91377,20 @@ function appendExtraQueryExclusions(extraQueryExclusions, cliConfig) {
// src/setup-codeql.ts
var toolcache3 = __toESM(require_tool_cache());
var import_fast_deep_equal = __toESM(require_fast_deep_equal());
var semver7 = __toESM(require_semver2());
var semver8 = __toESM(require_semver2());
// src/tar.ts
var import_toolrunner = __toESM(require_toolrunner());
var io4 = __toESM(require_io());
var toolcache = __toESM(require_tool_cache());
var semver5 = __toESM(require_semver2());
var semver6 = __toESM(require_semver2());
// src/tools-download.ts
var core9 = __toESM(require_core());
var import_http_client = __toESM(require_lib());
var toolcache2 = __toESM(require_tool_cache());
var import_follow_redirects = __toESM(require_follow_redirects());
var semver6 = __toESM(require_semver2());
var semver7 = __toESM(require_semver2());
var STREAMING_HIGH_WATERMARK_BYTES = 4 * 1024 * 1024;
// src/tracer-config.ts
+88 -87
View File
@@ -26127,8 +26127,8 @@ var require_gte = __commonJS({
"node_modules/semver/functions/gte.js"(exports2, module2) {
"use strict";
var compare3 = require_compare();
var gte5 = (a, b, loose) => compare3(a, b, loose) >= 0;
module2.exports = gte5;
var gte6 = (a, b, loose) => compare3(a, b, loose) >= 0;
module2.exports = gte6;
}
});
@@ -26149,7 +26149,7 @@ var require_cmp = __commonJS({
var eq = require_eq();
var neq = require_neq();
var gt = require_gt();
var gte5 = require_gte();
var gte6 = require_gte();
var lt = require_lt();
var lte = require_lte();
var cmp = (a, op, b, loose) => {
@@ -26179,7 +26179,7 @@ var require_cmp = __commonJS({
case ">":
return gt(a, b, loose);
case ">=":
return gte5(a, b, loose);
return gte6(a, b, loose);
case "<":
return lt(a, b, loose);
case "<=":
@@ -26938,7 +26938,7 @@ var require_outside = __commonJS({
var gt = require_gt();
var lt = require_lt();
var lte = require_lte();
var gte5 = require_gte();
var gte6 = require_gte();
var outside = (version, range, hilo, options) => {
version = new SemVer(version, options);
range = new Range2(range, options);
@@ -26953,7 +26953,7 @@ var require_outside = __commonJS({
break;
case "<":
gtfn = lt;
ltefn = gte5;
ltefn = gte6;
ltfn = gt;
comp = "<";
ecomp = "<=";
@@ -27268,7 +27268,7 @@ var require_semver2 = __commonJS({
var lt = require_lt();
var eq = require_eq();
var neq = require_neq();
var gte5 = require_gte();
var gte6 = require_gte();
var lte = require_lte();
var cmp = require_cmp();
var coerce3 = require_coerce();
@@ -27306,7 +27306,7 @@ var require_semver2 = __commonJS({
lt,
eq,
neq,
gte: gte5,
gte: gte6,
lte,
cmp,
coerce: coerce3,
@@ -33489,7 +33489,7 @@ var require_brace_expansion = __commonJS({
function lte(i, y) {
return i <= y;
}
function gte5(i, y) {
function gte6(i, y) {
return i >= y;
}
function expand(str2, isTop) {
@@ -33534,7 +33534,7 @@ var require_brace_expansion = __commonJS({
var reverse = y < x;
if (reverse) {
incr *= -1;
test = gte5;
test = gte6;
}
var pad = n.some(isPadded);
N = [];
@@ -35435,8 +35435,8 @@ var require_semver3 = __commonJS({
function neq(a, b, loose) {
return compare3(a, b, loose) !== 0;
}
exports2.gte = gte5;
function gte5(a, b, loose) {
exports2.gte = gte6;
function gte6(a, b, loose) {
return compare3(a, b, loose) >= 0;
}
exports2.lte = lte;
@@ -35467,7 +35467,7 @@ var require_semver3 = __commonJS({
case ">":
return gt(a, b, loose);
case ">=":
return gte5(a, b, loose);
return gte6(a, b, loose);
case "<":
return lt(a, b, loose);
case "<=":
@@ -36012,7 +36012,7 @@ var require_semver3 = __commonJS({
break;
case "<":
gtfn = lt;
ltefn = gte5;
ltefn = gte6;
ltfn = gt;
comp = "<";
ecomp = "<=";
@@ -36232,7 +36232,7 @@ var require_cacheUtils = __commonJS({
var crypto2 = __importStar2(require("crypto"));
var fs18 = __importStar2(require("fs"));
var path16 = __importStar2(require("path"));
var semver8 = __importStar2(require_semver3());
var semver9 = __importStar2(require_semver3());
var util = __importStar2(require("util"));
var constants_1 = require_constants7();
var versionSalt = "1.0";
@@ -36325,7 +36325,7 @@ var require_cacheUtils = __commonJS({
function getCompressionMethod() {
return __awaiter2(this, void 0, void 0, function* () {
const versionOutput = yield getVersion("zstd", ["--quiet"]);
const version = semver8.clean(versionOutput);
const version = semver9.clean(versionOutput);
core18.debug(`zstd version: ${version}`);
if (versionOutput === "") {
return constants_1.CompressionMethod.Gzip;
@@ -85918,7 +85918,7 @@ var require_manifest = __commonJS({
};
Object.defineProperty(exports2, "__esModule", { value: true });
exports2._readLinuxVersionFile = exports2._getOsVersion = exports2._findMatch = void 0;
var semver8 = __importStar2(require_semver2());
var semver9 = __importStar2(require_semver2());
var core_1 = require_core3();
var os4 = require("os");
var cp = require("child_process");
@@ -85932,7 +85932,7 @@ var require_manifest = __commonJS({
for (const candidate of candidates) {
const version = candidate.version;
(0, core_1.debug)(`check ${version} satisfies ${versionSpec}`);
if (semver8.satisfies(version, versionSpec) && (!stable || candidate.stable === stable)) {
if (semver9.satisfies(version, versionSpec) && (!stable || candidate.stable === stable)) {
file = candidate.files.find((item) => {
(0, core_1.debug)(`${item.arch}===${archFilter} && ${item.platform}===${platFilter}`);
let chk = item.arch === archFilter && item.platform === platFilter;
@@ -85941,7 +85941,7 @@ var require_manifest = __commonJS({
if (osVersion === item.platform_version) {
chk = true;
} else {
chk = semver8.satisfies(osVersion, item.platform_version);
chk = semver9.satisfies(osVersion, item.platform_version);
}
}
return chk;
@@ -86171,7 +86171,7 @@ var require_tool_cache = __commonJS({
var os4 = __importStar2(require("os"));
var path16 = __importStar2(require("path"));
var httpm = __importStar2(require_lib5());
var semver8 = __importStar2(require_semver2());
var semver9 = __importStar2(require_semver2());
var stream2 = __importStar2(require("stream"));
var util = __importStar2(require("util"));
var assert_1 = require("assert");
@@ -86445,7 +86445,7 @@ var require_tool_cache = __commonJS({
}
function cacheDir(sourceDir, tool, version, arch2) {
return __awaiter2(this, void 0, void 0, function* () {
version = semver8.clean(version) || version;
version = semver9.clean(version) || version;
arch2 = arch2 || os4.arch();
core18.debug(`Caching tool ${tool} ${version} ${arch2}`);
core18.debug(`source dir: ${sourceDir}`);
@@ -86464,7 +86464,7 @@ var require_tool_cache = __commonJS({
exports2.cacheDir = cacheDir;
function cacheFile(sourceFile, targetFile, tool, version, arch2) {
return __awaiter2(this, void 0, void 0, function* () {
version = semver8.clean(version) || version;
version = semver9.clean(version) || version;
arch2 = arch2 || os4.arch();
core18.debug(`Caching tool ${tool} ${version} ${arch2}`);
core18.debug(`source file: ${sourceFile}`);
@@ -86495,7 +86495,7 @@ var require_tool_cache = __commonJS({
}
let toolPath = "";
if (versionSpec) {
versionSpec = semver8.clean(versionSpec) || "";
versionSpec = semver9.clean(versionSpec) || "";
const cachePath = path16.join(_getCacheDirectory(), toolName, versionSpec, arch2);
core18.debug(`checking cache: ${cachePath}`);
if (fs18.existsSync(cachePath) && fs18.existsSync(`${cachePath}.complete`)) {
@@ -86579,7 +86579,7 @@ var require_tool_cache = __commonJS({
}
function _createToolPath(tool, version, arch2) {
return __awaiter2(this, void 0, void 0, function* () {
const folderPath = path16.join(_getCacheDirectory(), tool, semver8.clean(version) || version, arch2 || "");
const folderPath = path16.join(_getCacheDirectory(), tool, semver9.clean(version) || version, arch2 || "");
core18.debug(`destination ${folderPath}`);
const markerPath = `${folderPath}.complete`;
yield io7.rmRF(folderPath);
@@ -86589,15 +86589,15 @@ var require_tool_cache = __commonJS({
});
}
function _completeToolPath(tool, version, arch2) {
const folderPath = path16.join(_getCacheDirectory(), tool, semver8.clean(version) || version, arch2 || "");
const folderPath = path16.join(_getCacheDirectory(), tool, semver9.clean(version) || version, arch2 || "");
const markerPath = `${folderPath}.complete`;
fs18.writeFileSync(markerPath, "");
core18.debug("finished caching tool");
}
function isExplicitVersion(versionSpec) {
const c = semver8.clean(versionSpec) || "";
const c = semver9.clean(versionSpec) || "";
core18.debug(`isExplicit: ${c}`);
const valid3 = semver8.valid(c) != null;
const valid3 = semver9.valid(c) != null;
core18.debug(`explicit? ${valid3}`);
return valid3;
}
@@ -86606,14 +86606,14 @@ var require_tool_cache = __commonJS({
let version = "";
core18.debug(`evaluating ${versions.length} versions`);
versions = versions.sort((a, b) => {
if (semver8.gt(a, b)) {
if (semver9.gt(a, b)) {
return 1;
}
return -1;
});
for (let i = versions.length - 1; i >= 0; i--) {
const potential = versions[i];
const satisfied = semver8.satisfies(potential, versionSpec);
const satisfied = semver9.satisfies(potential, versionSpec);
if (satisfied) {
version = potential;
break;
@@ -90207,7 +90207,7 @@ var require_brace_expansion2 = __commonJS({
function lte(i, y) {
return i <= y;
}
function gte5(i, y) {
function gte6(i, y) {
return i >= y;
}
function expand(str2, isTop) {
@@ -90257,7 +90257,7 @@ var require_brace_expansion2 = __commonJS({
var reverse = y < x;
if (reverse) {
incr *= -1;
test = gte5;
test = gte6;
}
var pad = n.some(isPadded);
N = [];
@@ -103562,7 +103562,7 @@ var require_commonjs19 = __commonJS({
function lte(i, y) {
return i <= y;
}
function gte5(i, y) {
function gte6(i, y) {
return i >= y;
}
function expand_(str2, isTop) {
@@ -103611,7 +103611,7 @@ var require_commonjs19 = __commonJS({
const reverse = y < x;
if (reverse) {
incr *= -1;
test = gte5;
test = gte6;
}
const pad = n.some(isPadded);
N = [];
@@ -130034,6 +130034,39 @@ var PACK_IDENTIFIER_PATTERN = (function() {
return new RegExp(`^${component}/${component}$`);
})();
// src/logging.ts
var core7 = __toESM(require_core());
function getActionsLogger() {
return {
debug: core7.debug,
info: core7.info,
warning: core7.warning,
error: core7.error,
isDebug: core7.isDebug,
startGroup: core7.startGroup,
endGroup: core7.endGroup
};
}
function withGroup(groupName, f) {
core7.startGroup(groupName);
try {
return f();
} finally {
core7.endGroup();
}
}
function formatDuration(durationMs) {
if (durationMs < 1e3) {
return `${durationMs}ms`;
}
if (durationMs < 60 * 1e3) {
return `${(durationMs / 1e3).toFixed(1)}s`;
}
const minutes = Math.floor(durationMs / (60 * 1e3));
const seconds = Math.floor(durationMs % (60 * 1e3) / 1e3);
return `${minutes}m${seconds}s`;
}
// src/diff-informed-analysis-utils.ts
var fs5 = __toESM(require("fs"));
var path5 = __toESM(require("path"));
@@ -130041,7 +130074,7 @@ var path5 = __toESM(require("path"));
// src/feature-flags.ts
var fs4 = __toESM(require("fs"));
var path4 = __toESM(require("path"));
var semver4 = __toESM(require_semver2());
var semver5 = __toESM(require_semver2());
// src/defaults.json
var bundleVersion = "codeql-bundle-v2.23.8";
@@ -130053,13 +130086,14 @@ var path3 = __toESM(require("path"));
var actionsCache = __toESM(require_cache4());
// src/git-utils.ts
var core7 = __toESM(require_core());
var core8 = __toESM(require_core());
var toolrunner2 = __toESM(require_toolrunner());
var io3 = __toESM(require_io());
var semver3 = __toESM(require_semver2());
var runGitCommand = async function(workingDirectory, args, customErrorMessage) {
let stdout = "";
let stderr = "";
core7.debug(`Running git command: git ${args.join(" ")}`);
core8.debug(`Running git command: git ${args.join(" ")}`);
try {
await new toolrunner2.ToolRunner(await io3.which("git", true), args, {
silent: true,
@@ -130079,7 +130113,7 @@ var runGitCommand = async function(workingDirectory, args, customErrorMessage) {
if (stderr.includes("not a git repository")) {
reason = "The checkout path provided to the action does not appear to be a git repository.";
}
core7.info(`git call failed. ${customErrorMessage} Error: ${reason}`);
core8.info(`git call failed. ${customErrorMessage} Error: ${reason}`);
throw error3;
}
};
@@ -130224,7 +130258,7 @@ async function getRef() {
) !== head;
if (hasChangedRef) {
const newRef = ref.replace(pull_ref_regex, "refs/pull/$1/head");
core7.debug(
core8.debug(
`No longer on merge commit, rewriting ref from ${ref} to ${newRef}.`
);
return newRef;
@@ -130249,39 +130283,6 @@ async function isAnalyzingDefaultBranch() {
return currentRef === defaultBranch;
}
// src/logging.ts
var core8 = __toESM(require_core());
function getActionsLogger() {
return {
debug: core8.debug,
info: core8.info,
warning: core8.warning,
error: core8.error,
isDebug: core8.isDebug,
startGroup: core8.startGroup,
endGroup: core8.endGroup
};
}
function withGroup(groupName, f) {
core8.startGroup(groupName);
try {
return f();
} finally {
core8.endGroup();
}
}
function formatDuration(durationMs) {
if (durationMs < 1e3) {
return `${durationMs}ms`;
}
if (durationMs < 60 * 1e3) {
return `${(durationMs / 1e3).toFixed(1)}s`;
}
const minutes = Math.floor(durationMs / (60 * 1e3));
const seconds = Math.floor(durationMs % (60 * 1e3) / 1e3);
return `${minutes}m${seconds}s`;
}
// src/overlay-database-utils.ts
var CODEQL_OVERLAY_MINIMUM_VERSION = "2.23.5";
var OVERLAY_BASE_DATABASE_MAX_UPLOAD_SIZE_MB = 7500;
@@ -130344,13 +130345,13 @@ function computeChangedFiles(baseFileOids, overlayFileOids) {
}
// src/tools-features.ts
var semver3 = __toESM(require_semver2());
var semver4 = __toESM(require_semver2());
function isSupportedToolsFeature(versionInfo, feature) {
return !!versionInfo.features && versionInfo.features[feature];
}
var SafeArtifactUploadVersion = "2.20.3";
function isSafeArtifactUpload(codeQlVersion) {
return !codeQlVersion ? true : semver3.gte(codeQlVersion, SafeArtifactUploadVersion);
return !codeQlVersion ? true : semver4.gte(codeQlVersion, SafeArtifactUploadVersion);
}
// src/feature-flags.ts
@@ -130657,7 +130658,7 @@ var GitHubFeatureFlags = class {
DEFAULT_VERSION_FEATURE_FLAG_PREFIX.length,
f.length - DEFAULT_VERSION_FEATURE_FLAG_SUFFIX.length
).replace(/_/g, ".");
if (!semver4.valid(version)) {
if (!semver5.valid(version)) {
this.logger.warning(
`Ignoring feature flag ${f} as it does not specify a valid CodeQL version.`
);
@@ -130920,7 +130921,7 @@ var fs9 = __toESM(require("fs"));
var path8 = __toESM(require("path"));
var toolcache3 = __toESM(require_tool_cache());
var import_fast_deep_equal = __toESM(require_fast_deep_equal());
var semver7 = __toESM(require_semver2());
var semver8 = __toESM(require_semver2());
// node_modules/uuid/dist-node/stringify.js
var byteToHex = [];
@@ -130983,7 +130984,7 @@ var stream = __toESM(require("stream"));
var import_toolrunner = __toESM(require_toolrunner());
var io4 = __toESM(require_io());
var toolcache = __toESM(require_tool_cache());
var semver5 = __toESM(require_semver2());
var semver6 = __toESM(require_semver2());
var MIN_REQUIRED_BSD_TAR_VERSION = "3.4.3";
var MIN_REQUIRED_GNU_TAR_VERSION = "1.31";
async function getTarVersion() {
@@ -131025,9 +131026,9 @@ async function isZstdAvailable(logger) {
case "gnu":
return {
available: foundZstdBinary && // GNU tar only uses major and minor version numbers
semver5.gte(
semver5.coerce(version),
semver5.coerce(MIN_REQUIRED_GNU_TAR_VERSION)
semver6.gte(
semver6.coerce(version),
semver6.coerce(MIN_REQUIRED_GNU_TAR_VERSION)
),
foundZstdBinary,
version: tarVersion
@@ -131036,7 +131037,7 @@ async function isZstdAvailable(logger) {
return {
available: foundZstdBinary && // Do a loose comparison since these version numbers don't contain
// a patch version number.
semver5.gte(version, MIN_REQUIRED_BSD_TAR_VERSION),
semver6.gte(version, MIN_REQUIRED_BSD_TAR_VERSION),
foundZstdBinary,
version: tarVersion
};
@@ -131143,7 +131144,7 @@ var core9 = __toESM(require_core());
var import_http_client = __toESM(require_lib());
var toolcache2 = __toESM(require_tool_cache());
var import_follow_redirects = __toESM(require_follow_redirects());
var semver6 = __toESM(require_semver2());
var semver7 = __toESM(require_semver2());
var STREAMING_HIGH_WATERMARK_BYTES = 4 * 1024 * 1024;
var TOOLCACHE_TOOL_NAME = "CodeQL";
function makeDownloadFirstToolsDownloadDurations(downloadDurationMs, extractionDurationMs) {
@@ -131273,7 +131274,7 @@ function getToolcacheDirectory(version) {
return path7.join(
getRequiredEnvParam("RUNNER_TOOL_CACHE"),
TOOLCACHE_TOOL_NAME,
semver6.clean(version) || version,
semver7.clean(version) || version,
os.arch() || ""
);
}
@@ -131398,13 +131399,13 @@ function tryGetTagNameFromUrl(url2, logger) {
return match[1];
}
function convertToSemVer(version, logger) {
if (!semver7.valid(version)) {
if (!semver8.valid(version)) {
logger.debug(
`Bundle version ${version} is not in SemVer format. Will treat it as pre-release 0.0.0-${version}.`
);
version = `0.0.0-${version}`;
}
const s = semver7.clean(version);
const s = semver8.clean(version);
if (!s) {
throw new Error(`Bundle version ${version} is not in SemVer format.`);
}
@@ -131512,7 +131513,7 @@ async function getCodeQLSource(toolsInput, defaultCliVersion, apiDetails, varian
url2 = toolsInput;
if (tagName) {
const bundleVersion3 = tryGetBundleVersionFromTagName(tagName, logger);
if (bundleVersion3 && semver7.valid(bundleVersion3)) {
if (bundleVersion3 && semver8.valid(bundleVersion3)) {
cliVersion2 = convertToSemVer(bundleVersion3, logger);
}
}
@@ -131783,7 +131784,7 @@ async function setupCodeQLBundle(toolsInput, apiDetails, tempDir, variant, defau
async function useZstdBundle(cliVersion2, tarSupportsZstd) {
return (
// In testing, gzip performs better than zstd on Windows.
process.platform !== "win32" && tarSupportsZstd && semver7.gte(cliVersion2, CODEQL_VERSION_ZSTD_BUNDLE)
process.platform !== "win32" && tarSupportsZstd && semver8.gte(cliVersion2, CODEQL_VERSION_ZSTD_BUNDLE)
);
}
function getTempExtractionDir(tempDir) {
@@ -131815,7 +131816,7 @@ async function getNightlyToolsUrl(logger) {
}
}
function getLatestToolcacheVersion(logger) {
const allVersions = toolcache3.findAllVersions("CodeQL").sort((a, b) => semver7.compare(b, a));
const allVersions = toolcache3.findAllVersions("CodeQL").sort((a, b) => semver8.compare(b, a));
logger.debug(
`Found the following versions of the CodeQL tools in the toolcache: ${JSON.stringify(
allVersions
+259 -196
View File
@@ -20709,8 +20709,8 @@ var require_gte = __commonJS({
"node_modules/semver/functions/gte.js"(exports2, module2) {
"use strict";
var compare2 = require_compare();
var gte5 = (a, b, loose) => compare2(a, b, loose) >= 0;
module2.exports = gte5;
var gte6 = (a, b, loose) => compare2(a, b, loose) >= 0;
module2.exports = gte6;
}
});
@@ -20731,7 +20731,7 @@ var require_cmp = __commonJS({
var eq = require_eq();
var neq = require_neq();
var gt = require_gt();
var gte5 = require_gte();
var gte6 = require_gte();
var lt2 = require_lt();
var lte = require_lte();
var cmp = (a, op, b, loose) => {
@@ -20761,7 +20761,7 @@ var require_cmp = __commonJS({
case ">":
return gt(a, b, loose);
case ">=":
return gte5(a, b, loose);
return gte6(a, b, loose);
case "<":
return lt2(a, b, loose);
case "<=":
@@ -21520,7 +21520,7 @@ var require_outside = __commonJS({
var gt = require_gt();
var lt2 = require_lt();
var lte = require_lte();
var gte5 = require_gte();
var gte6 = require_gte();
var outside = (version, range, hilo, options) => {
version = new SemVer(version, options);
range = new Range2(range, options);
@@ -21535,7 +21535,7 @@ var require_outside = __commonJS({
break;
case "<":
gtfn = lt2;
ltefn = gte5;
ltefn = gte6;
ltfn = gt;
comp = "<";
ecomp = "<=";
@@ -21850,7 +21850,7 @@ var require_semver2 = __commonJS({
var lt2 = require_lt();
var eq = require_eq();
var neq = require_neq();
var gte5 = require_gte();
var gte6 = require_gte();
var lte = require_lte();
var cmp = require_cmp();
var coerce3 = require_coerce();
@@ -21888,7 +21888,7 @@ var require_semver2 = __commonJS({
lt: lt2,
eq,
neq,
gte: gte5,
gte: gte6,
lte,
cmp,
coerce: coerce3,
@@ -33640,7 +33640,7 @@ var require_brace_expansion = __commonJS({
function lte(i, y) {
return i <= y;
}
function gte5(i, y) {
function gte6(i, y) {
return i >= y;
}
function expand(str2, isTop) {
@@ -33685,7 +33685,7 @@ var require_brace_expansion = __commonJS({
var reverse = y < x;
if (reverse) {
incr *= -1;
test = gte5;
test = gte6;
}
var pad = n.some(isPadded);
N = [];
@@ -35586,8 +35586,8 @@ var require_semver3 = __commonJS({
function neq(a, b, loose) {
return compare2(a, b, loose) !== 0;
}
exports2.gte = gte5;
function gte5(a, b, loose) {
exports2.gte = gte6;
function gte6(a, b, loose) {
return compare2(a, b, loose) >= 0;
}
exports2.lte = lte;
@@ -35618,7 +35618,7 @@ var require_semver3 = __commonJS({
case ">":
return gt(a, b, loose);
case ">=":
return gte5(a, b, loose);
return gte6(a, b, loose);
case "<":
return lt2(a, b, loose);
case "<=":
@@ -36163,7 +36163,7 @@ var require_semver3 = __commonJS({
break;
case "<":
gtfn = lt2;
ltefn = gte5;
ltefn = gte6;
ltfn = gt;
comp = "<";
ecomp = "<=";
@@ -36383,7 +36383,7 @@ var require_cacheUtils = __commonJS({
var crypto3 = __importStar2(require("crypto"));
var fs15 = __importStar2(require("fs"));
var path16 = __importStar2(require("path"));
var semver9 = __importStar2(require_semver3());
var semver10 = __importStar2(require_semver3());
var util = __importStar2(require("util"));
var constants_1 = require_constants7();
var versionSalt = "1.0";
@@ -36476,7 +36476,7 @@ var require_cacheUtils = __commonJS({
function getCompressionMethod() {
return __awaiter2(this, void 0, void 0, function* () {
const versionOutput = yield getVersion("zstd", ["--quiet"]);
const version = semver9.clean(versionOutput);
const version = semver10.clean(versionOutput);
core14.debug(`zstd version: ${version}`);
if (versionOutput === "") {
return constants_1.CompressionMethod.Gzip;
@@ -86069,7 +86069,7 @@ var require_manifest = __commonJS({
};
Object.defineProperty(exports2, "__esModule", { value: true });
exports2._readLinuxVersionFile = exports2._getOsVersion = exports2._findMatch = void 0;
var semver9 = __importStar2(require_semver2());
var semver10 = __importStar2(require_semver2());
var core_1 = require_core3();
var os5 = require("os");
var cp = require("child_process");
@@ -86083,7 +86083,7 @@ var require_manifest = __commonJS({
for (const candidate of candidates) {
const version = candidate.version;
(0, core_1.debug)(`check ${version} satisfies ${versionSpec}`);
if (semver9.satisfies(version, versionSpec) && (!stable || candidate.stable === stable)) {
if (semver10.satisfies(version, versionSpec) && (!stable || candidate.stable === stable)) {
file = candidate.files.find((item) => {
(0, core_1.debug)(`${item.arch}===${archFilter} && ${item.platform}===${platFilter}`);
let chk = item.arch === archFilter && item.platform === platFilter;
@@ -86092,7 +86092,7 @@ var require_manifest = __commonJS({
if (osVersion === item.platform_version) {
chk = true;
} else {
chk = semver9.satisfies(osVersion, item.platform_version);
chk = semver10.satisfies(osVersion, item.platform_version);
}
}
return chk;
@@ -86322,7 +86322,7 @@ var require_tool_cache = __commonJS({
var os5 = __importStar2(require("os"));
var path16 = __importStar2(require("path"));
var httpm = __importStar2(require_lib5());
var semver9 = __importStar2(require_semver2());
var semver10 = __importStar2(require_semver2());
var stream2 = __importStar2(require("stream"));
var util = __importStar2(require("util"));
var assert_1 = require("assert");
@@ -86596,7 +86596,7 @@ var require_tool_cache = __commonJS({
}
function cacheDir(sourceDir, tool, version, arch2) {
return __awaiter2(this, void 0, void 0, function* () {
version = semver9.clean(version) || version;
version = semver10.clean(version) || version;
arch2 = arch2 || os5.arch();
core14.debug(`Caching tool ${tool} ${version} ${arch2}`);
core14.debug(`source dir: ${sourceDir}`);
@@ -86615,7 +86615,7 @@ var require_tool_cache = __commonJS({
exports2.cacheDir = cacheDir;
function cacheFile(sourceFile, targetFile, tool, version, arch2) {
return __awaiter2(this, void 0, void 0, function* () {
version = semver9.clean(version) || version;
version = semver10.clean(version) || version;
arch2 = arch2 || os5.arch();
core14.debug(`Caching tool ${tool} ${version} ${arch2}`);
core14.debug(`source file: ${sourceFile}`);
@@ -86646,7 +86646,7 @@ var require_tool_cache = __commonJS({
}
let toolPath = "";
if (versionSpec) {
versionSpec = semver9.clean(versionSpec) || "";
versionSpec = semver10.clean(versionSpec) || "";
const cachePath = path16.join(_getCacheDirectory(), toolName, versionSpec, arch2);
core14.debug(`checking cache: ${cachePath}`);
if (fs15.existsSync(cachePath) && fs15.existsSync(`${cachePath}.complete`)) {
@@ -86730,7 +86730,7 @@ var require_tool_cache = __commonJS({
}
function _createToolPath(tool, version, arch2) {
return __awaiter2(this, void 0, void 0, function* () {
const folderPath = path16.join(_getCacheDirectory(), tool, semver9.clean(version) || version, arch2 || "");
const folderPath = path16.join(_getCacheDirectory(), tool, semver10.clean(version) || version, arch2 || "");
core14.debug(`destination ${folderPath}`);
const markerPath = `${folderPath}.complete`;
yield io7.rmRF(folderPath);
@@ -86740,15 +86740,15 @@ var require_tool_cache = __commonJS({
});
}
function _completeToolPath(tool, version, arch2) {
const folderPath = path16.join(_getCacheDirectory(), tool, semver9.clean(version) || version, arch2 || "");
const folderPath = path16.join(_getCacheDirectory(), tool, semver10.clean(version) || version, arch2 || "");
const markerPath = `${folderPath}.complete`;
fs15.writeFileSync(markerPath, "");
core14.debug("finished caching tool");
}
function isExplicitVersion(versionSpec) {
const c = semver9.clean(versionSpec) || "";
const c = semver10.clean(versionSpec) || "";
core14.debug(`isExplicit: ${c}`);
const valid3 = semver9.valid(c) != null;
const valid3 = semver10.valid(c) != null;
core14.debug(`explicit? ${valid3}`);
return valid3;
}
@@ -86757,14 +86757,14 @@ var require_tool_cache = __commonJS({
let version = "";
core14.debug(`evaluating ${versions.length} versions`);
versions = versions.sort((a, b) => {
if (semver9.gt(a, b)) {
if (semver10.gt(a, b)) {
return 1;
}
return -1;
});
for (let i = versions.length - 1; i >= 0; i--) {
const potential = versions[i];
const satisfied = semver9.satisfies(potential, versionSpec);
const satisfied = semver10.satisfies(potential, versionSpec);
if (satisfied) {
version = potential;
break;
@@ -87359,7 +87359,7 @@ var fs14 = __toESM(require("fs"));
var path15 = __toESM(require("path"));
var core13 = __toESM(require_core());
var io6 = __toESM(require_io());
var semver8 = __toESM(require_semver2());
var semver9 = __toESM(require_semver2());
// node_modules/uuid/dist-node/stringify.js
var byteToHex = [];
@@ -91071,7 +91071,7 @@ function getDependencyCachingEnabled() {
// src/config-utils.ts
var fs6 = __toESM(require("fs"));
var path7 = __toESM(require("path"));
var path8 = __toESM(require("path"));
var import_perf_hooks = require("perf_hooks");
// src/config/db-config.ts
@@ -91417,10 +91417,122 @@ function parseUserConfig(logger, pathInput, contents, validateConfig) {
}
}
// src/diagnostics.ts
var import_fs = require("fs");
var import_path = __toESM(require("path"));
// src/logging.ts
var core7 = __toESM(require_core());
function getActionsLogger() {
return {
debug: core7.debug,
info: core7.info,
warning: core7.warning,
error: core7.error,
isDebug: core7.isDebug,
startGroup: core7.startGroup,
endGroup: core7.endGroup
};
}
async function withGroupAsync(groupName, f) {
core7.startGroup(groupName);
try {
return await f();
} finally {
core7.endGroup();
}
}
function formatDuration(durationMs) {
if (durationMs < 1e3) {
return `${durationMs}ms`;
}
if (durationMs < 60 * 1e3) {
return `${(durationMs / 1e3).toFixed(1)}s`;
}
const minutes = Math.floor(durationMs / (60 * 1e3));
const seconds = Math.floor(durationMs % (60 * 1e3) / 1e3);
return `${minutes}m${seconds}s`;
}
// src/diagnostics.ts
var unwrittenDiagnostics = [];
function makeDiagnostic(id, name, data = void 0) {
return {
...data,
timestamp: data?.timestamp ?? (/* @__PURE__ */ new Date()).toISOString(),
source: { ...data?.source, id, name }
};
}
function addDiagnostic(config, language, diagnostic) {
const logger = getActionsLogger();
const databasePath = language ? getCodeQLDatabasePath(config, language) : config.dbLocation;
if ((0, import_fs.existsSync)(databasePath)) {
writeDiagnostic(config, language, diagnostic);
} else {
logger.debug(
`Writing a diagnostic for ${language}, but the database at ${databasePath} does not exist yet.`
);
unwrittenDiagnostics.push({ diagnostic, language });
}
}
function writeDiagnostic(config, language, diagnostic) {
const logger = getActionsLogger();
const databasePath = language ? getCodeQLDatabasePath(config, language) : config.dbLocation;
const diagnosticsPath = import_path.default.resolve(
databasePath,
"diagnostic",
"codeql-action"
);
try {
(0, import_fs.mkdirSync)(diagnosticsPath, { recursive: true });
const jsonPath = import_path.default.resolve(
diagnosticsPath,
// Remove colons from the timestamp as these are not allowed in Windows filenames.
`codeql-action-${diagnostic.timestamp.replaceAll(":", "")}.json`
);
(0, import_fs.writeFileSync)(jsonPath, JSON.stringify(diagnostic));
} catch (err) {
logger.warning(`Unable to write diagnostic message to database: ${err}`);
logger.debug(JSON.stringify(diagnostic));
}
}
function logUnwrittenDiagnostics() {
const logger = getActionsLogger();
const num = unwrittenDiagnostics.length;
if (num > 0) {
logger.warning(
`${num} diagnostic(s) could not be written to the database and will not appear on the Tool Status Page.`
);
for (const unwritten of unwrittenDiagnostics) {
logger.debug(JSON.stringify(unwritten.diagnostic));
}
}
}
function flushDiagnostics(config) {
const logger = getActionsLogger();
logger.debug(
`Writing ${unwrittenDiagnostics.length} diagnostic(s) to database.`
);
for (const unwritten of unwrittenDiagnostics) {
writeDiagnostic(config, unwritten.language, unwritten.diagnostic);
}
unwrittenDiagnostics = [];
}
function makeTelemetryDiagnostic(id, name, attributes) {
return makeDiagnostic(id, name, {
attributes,
visibility: {
cliSummaryTable: false,
statusPage: false,
telemetry: true
}
});
}
// src/feature-flags.ts
var fs4 = __toESM(require("fs"));
var path5 = __toESM(require("path"));
var semver4 = __toESM(require_semver2());
var path6 = __toESM(require("path"));
var semver5 = __toESM(require_semver2());
// src/defaults.json
var bundleVersion = "codeql-bundle-v2.23.8";
@@ -91428,17 +91540,40 @@ var cliVersion = "2.23.8";
// src/overlay-database-utils.ts
var fs3 = __toESM(require("fs"));
var path4 = __toESM(require("path"));
var path5 = __toESM(require("path"));
var actionsCache = __toESM(require_cache4());
// src/git-utils.ts
var core7 = __toESM(require_core());
var core8 = __toESM(require_core());
var toolrunner2 = __toESM(require_toolrunner());
var io3 = __toESM(require_io());
var semver3 = __toESM(require_semver2());
var GIT_MINIMUM_VERSION_FOR_OVERLAY = "2.38.0";
var GitVersionInfo = class {
constructor(truncatedVersion, fullVersion) {
this.truncatedVersion = truncatedVersion;
this.fullVersion = fullVersion;
}
isAtLeast(minVersion) {
return semver3.gte(this.truncatedVersion, minVersion);
}
};
async function getGitVersionOrThrow() {
const stdout = await runGitCommand(
void 0,
["--version"],
"Failed to get git version."
);
const match = stdout.trim().match(/^git version ((\d+\.\d+\.\d+).*)$/);
if (match?.[1] && match?.[2]) {
return new GitVersionInfo(match[2], match[1]);
}
throw new Error(`Could not parse Git version from output: ${stdout.trim()}`);
}
var runGitCommand = async function(workingDirectory, args, customErrorMessage) {
let stdout = "";
let stderr = "";
core7.debug(`Running git command: git ${args.join(" ")}`);
core8.debug(`Running git command: git ${args.join(" ")}`);
try {
await new toolrunner2.ToolRunner(await io3.which("git", true), args, {
silent: true,
@@ -91458,7 +91593,7 @@ var runGitCommand = async function(workingDirectory, args, customErrorMessage) {
if (stderr.includes("not a git repository")) {
reason = "The checkout path provided to the action does not appear to be a git repository.";
}
core7.info(`git call failed. ${customErrorMessage} Error: ${reason}`);
core8.info(`git call failed. ${customErrorMessage} Error: ${reason}`);
throw error3;
}
};
@@ -91581,7 +91716,7 @@ async function getRef() {
) !== head;
if (hasChangedRef) {
const newRef = ref.replace(pull_ref_regex, "refs/pull/$1/head");
core7.debug(
core8.debug(
`No longer on merge commit, rewriting ref from ${ref} to ${newRef}.`
);
return newRef;
@@ -91606,39 +91741,6 @@ async function isAnalyzingDefaultBranch() {
return currentRef === defaultBranch;
}
// src/logging.ts
var core8 = __toESM(require_core());
function getActionsLogger() {
return {
debug: core8.debug,
info: core8.info,
warning: core8.warning,
error: core8.error,
isDebug: core8.isDebug,
startGroup: core8.startGroup,
endGroup: core8.endGroup
};
}
async function withGroupAsync(groupName, f) {
core8.startGroup(groupName);
try {
return await f();
} finally {
core8.endGroup();
}
}
function formatDuration(durationMs) {
if (durationMs < 1e3) {
return `${durationMs}ms`;
}
if (durationMs < 60 * 1e3) {
return `${(durationMs / 1e3).toFixed(1)}s`;
}
const minutes = Math.floor(durationMs / (60 * 1e3));
const seconds = Math.floor(durationMs % (60 * 1e3) / 1e3);
return `${minutes}m${seconds}s`;
}
// src/overlay-database-utils.ts
var CODEQL_OVERLAY_MINIMUM_VERSION = "2.23.5";
var OVERLAY_BASE_DATABASE_MAX_UPLOAD_SIZE_MB = 7500;
@@ -91665,7 +91767,7 @@ async function readBaseDatabaseOidsFile(config, logger) {
}
}
function getBaseDatabaseOidsFilePath(config) {
return path4.join(config.dbLocation, "base-database-oids.json");
return path5.join(config.dbLocation, "base-database-oids.json");
}
async function writeOverlayChangesFile(config, sourceRoot, logger) {
const baseFileOids = await readBaseDatabaseOidsFile(config, logger);
@@ -91675,7 +91777,7 @@ async function writeOverlayChangesFile(config, sourceRoot, logger) {
`Found ${changedFiles.length} changed file(s) under ${sourceRoot}.`
);
const changedFilesJson = JSON.stringify({ changes: changedFiles });
const overlayChangesFile = path4.join(
const overlayChangesFile = path5.join(
getTemporaryDirectory(),
"overlay-changes.json"
);
@@ -91848,7 +91950,7 @@ async function getCacheRestoreKeyPrefix(config, codeQlVersion) {
}
// src/tools-features.ts
var semver3 = __toESM(require_semver2());
var semver4 = __toESM(require_semver2());
function isSupportedToolsFeature(versionInfo, feature) {
return !!versionInfo.features && versionInfo.features[feature];
}
@@ -92058,7 +92160,7 @@ var Features = class {
this.gitHubFeatureFlags = new GitHubFeatureFlags(
gitHubVersion,
repositoryNwo,
path5.join(tempDir, FEATURE_FLAGS_FILE_NAME),
path6.join(tempDir, FEATURE_FLAGS_FILE_NAME),
logger
);
}
@@ -92157,7 +92259,7 @@ var GitHubFeatureFlags = class {
DEFAULT_VERSION_FEATURE_FLAG_PREFIX.length,
f.length - DEFAULT_VERSION_FEATURE_FLAG_SUFFIX.length
).replace(/_/g, ".");
if (!semver4.valid(version)) {
if (!semver5.valid(version)) {
this.logger.warning(
`Ignoring feature flag ${f} as it does not specify a valid CodeQL version.`
);
@@ -92358,7 +92460,7 @@ var KnownLanguage = /* @__PURE__ */ ((KnownLanguage2) => {
// src/trap-caching.ts
var fs5 = __toESM(require("fs"));
var path6 = __toESM(require("path"));
var path7 = __toESM(require("path"));
var actionsCache2 = __toESM(require_cache4());
var CACHE_VERSION2 = 1;
var CODEQL_TRAP_CACHE_PREFIX = "codeql-trap";
@@ -92374,12 +92476,12 @@ async function downloadTrapCaches(codeql, languages, logger) {
`Found ${languagesSupportingCaching.length} languages that support TRAP caching`
);
if (languagesSupportingCaching.length === 0) return result;
const cachesDir = path6.join(
const cachesDir = path7.join(
getTemporaryDirectory(),
"trapCaches"
);
for (const language of languagesSupportingCaching) {
const cacheDir = path6.join(cachesDir, language);
const cacheDir = path7.join(cachesDir, language);
fs5.mkdirSync(cacheDir, { recursive: true });
result[language] = cacheDir;
}
@@ -92392,7 +92494,7 @@ async function downloadTrapCaches(codeql, languages, logger) {
let baseSha = "unknown";
const eventPath = process.env.GITHUB_EVENT_PATH;
if (getWorkflowEventName() === "pull_request" && eventPath !== void 0) {
const event = JSON.parse(fs5.readFileSync(path6.resolve(eventPath), "utf-8"));
const event = JSON.parse(fs5.readFileSync(path7.resolve(eventPath), "utf-8"));
baseSha = event.pull_request?.base?.sha || baseSha;
}
for (const language of languages) {
@@ -92496,7 +92598,7 @@ async function getSupportedLanguageMap(codeql, logger) {
}
var baseWorkflowsPath = ".github/workflows";
function hasActionsWorkflows(sourceRoot) {
const workflowsPath = path7.resolve(sourceRoot, baseWorkflowsPath);
const workflowsPath = path8.resolve(sourceRoot, baseWorkflowsPath);
const stats = fs6.lstatSync(workflowsPath, { throwIfNoEntry: false });
return stats !== void 0 && stats.isDirectory() && fs6.readdirSync(workflowsPath).length > 0;
}
@@ -92663,8 +92765,8 @@ async function downloadCacheWithTime(trapCachingEnabled, codeQL, languages, logg
async function loadUserConfig(logger, configFile, workspacePath, apiDetails, tempDir, validateConfig) {
if (isLocal(configFile)) {
if (configFile !== userConfigFromActionPath(tempDir)) {
configFile = path7.resolve(workspacePath, configFile);
if (!(configFile + path7.sep).startsWith(workspacePath + path7.sep)) {
configFile = path8.resolve(workspacePath, configFile);
if (!(configFile + path8.sep).startsWith(workspacePath + path8.sep)) {
throw new ConfigurationError(
getConfigFileOutsideWorkspaceErrorMessage(configFile)
);
@@ -92744,7 +92846,7 @@ async function runnerSupportsOverlayAnalysis(ramInput, logger) {
}
return true;
}
async function getOverlayDatabaseMode(codeql, features, languages, sourceRoot, buildMode, ramInput, codeScanningConfig, logger) {
async function getOverlayDatabaseMode(codeql, features, languages, sourceRoot, buildMode, ramInput, codeScanningConfig, gitVersion, logger) {
let overlayDatabaseMode = "none" /* None */;
let useOverlayDatabaseCaching = false;
const modeEnv = process.env.CODEQL_OVERLAY_DATABASE_MODE;
@@ -92812,16 +92914,28 @@ async function getOverlayDatabaseMode(codeql, features, languages, sourceRoot, b
);
return nonOverlayAnalysis;
}
if (gitVersion === void 0) {
logger.warning(
`Cannot build an ${overlayDatabaseMode} database because the Git version could not be determined. Falling back to creating a normal full database instead.`
);
return nonOverlayAnalysis;
}
if (!gitVersion.isAtLeast(GIT_MINIMUM_VERSION_FOR_OVERLAY)) {
logger.warning(
`Cannot build an ${overlayDatabaseMode} database because the installed Git version is older than ${GIT_MINIMUM_VERSION_FOR_OVERLAY}. Falling back to creating a normal full database instead.`
);
return nonOverlayAnalysis;
}
return {
overlayDatabaseMode,
useOverlayDatabaseCaching
};
}
function dbLocationOrDefault(dbLocation, tempDir) {
return dbLocation || path7.resolve(tempDir, "codeql_databases");
return dbLocation || path8.resolve(tempDir, "codeql_databases");
}
function userConfigFromActionPath(tempDir) {
return path7.resolve(tempDir, "user-config-from-action.yml");
return path8.resolve(tempDir, "user-config-from-action.yml");
}
function hasQueryCustomisation(userConfig) {
return isDefined(userConfig["disable-default-queries"]) || isDefined(userConfig.queries) || isDefined(userConfig["query-filters"]);
@@ -92865,6 +92979,17 @@ async function initConfig(features, inputs) {
config.computedConfig.queries = queries;
config.computedConfig["query-filters"] = [];
}
let gitVersion = void 0;
try {
gitVersion = await getGitVersionOrThrow();
logger.info(`Using Git version ${gitVersion.fullVersion}`);
await logGitVersionTelemetry(config, gitVersion);
} catch (e) {
logger.warning(`Could not determine Git version: ${getErrorMessage(e)}`);
if (isInTestMode() && process.env["CODEQL_ACTION_TOLERATE_MISSING_GIT_VERSION" /* TOLERATE_MISSING_GIT_VERSION */] !== "true") {
throw e;
}
}
const { overlayDatabaseMode, useOverlayDatabaseCaching } = await getOverlayDatabaseMode(
inputs.codeql,
inputs.features,
@@ -92873,6 +92998,7 @@ async function initConfig(features, inputs) {
config.buildMode,
inputs.ramInput,
config.computedConfig,
gitVersion,
logger
);
logger.info(
@@ -92961,12 +93087,12 @@ async function getRemoteConfig(logger, configFile, apiDetails, validateConfig) {
);
}
function getPathToParsedConfigFile(tempDir) {
return path7.join(tempDir, "config");
return path8.join(tempDir, "config");
}
async function saveConfig(config, logger) {
const configString = JSON.stringify(config);
const configFile = getPathToParsedConfigFile(config.tempDir);
fs6.mkdirSync(path7.dirname(configFile), { recursive: true });
fs6.mkdirSync(path8.dirname(configFile), { recursive: true });
fs6.writeFileSync(configFile, configString, "utf8");
logger.debug("Saved config:");
logger.debug(configString);
@@ -92977,7 +93103,7 @@ async function generateRegistries(registriesInput, tempDir, logger) {
let qlconfigFile;
if (registries) {
const qlconfig = createRegistriesBlock(registries);
qlconfigFile = path7.join(tempDir, "qlconfig.yml");
qlconfigFile = path8.join(tempDir, "qlconfig.yml");
const qlconfigContents = dump(qlconfig);
fs6.writeFileSync(qlconfigFile, qlconfigContents, "utf8");
logger.debug("Generated qlconfig.yml:");
@@ -93075,34 +93201,52 @@ function appendExtraQueryExclusions(extraQueryExclusions, cliConfig) {
function isCodeQualityEnabled(config) {
return config.analysisKinds.includes("code-quality" /* CodeQuality */);
}
async function logGitVersionTelemetry(config, gitVersion) {
if (config.languages.length > 0) {
addDiagnostic(
config,
// Arbitrarily choose the first language. We could also choose all languages, but that
// increases the risk of misinterpreting the data.
config.languages[0],
makeTelemetryDiagnostic(
"codeql-action/git-version-telemetry",
"Git version telemetry",
{
fullVersion: gitVersion.fullVersion,
truncatedVersion: gitVersion.truncatedVersion
}
)
);
}
}
// src/dependency-caching.ts
var os2 = __toESM(require("os"));
var import_path = require("path");
var import_path2 = require("path");
var actionsCache3 = __toESM(require_cache4());
var glob = __toESM(require_glob());
var CODEQL_DEPENDENCY_CACHE_PREFIX = "codeql-dependencies";
var CODEQL_DEPENDENCY_CACHE_VERSION = 1;
function getJavaTempDependencyDir() {
return (0, import_path.join)(getTemporaryDirectory(), "codeql_java", "repository");
return (0, import_path2.join)(getTemporaryDirectory(), "codeql_java", "repository");
}
async function getJavaDependencyDirs() {
return [
// Maven
(0, import_path.join)(os2.homedir(), ".m2", "repository"),
(0, import_path2.join)(os2.homedir(), ".m2", "repository"),
// Gradle
(0, import_path.join)(os2.homedir(), ".gradle", "caches"),
(0, import_path2.join)(os2.homedir(), ".gradle", "caches"),
// CodeQL Java build-mode: none
getJavaTempDependencyDir()
];
}
function getCsharpTempDependencyDir() {
return (0, import_path.join)(getTemporaryDirectory(), "codeql_csharp", "repository");
return (0, import_path2.join)(getTemporaryDirectory(), "codeql_csharp", "repository");
}
async function getCsharpDependencyDirs(codeql, features) {
const dirs = [
// Nuget
(0, import_path.join)(os2.homedir(), ".nuget", "packages")
(0, import_path2.join)(os2.homedir(), ".nuget", "packages")
];
if (await features.getValue("csharp_cache_bmn" /* CsharpCacheBuildModeNone */, codeql)) {
dirs.push(getCsharpTempDependencyDir());
@@ -93157,7 +93301,7 @@ var defaultCacheConfigs = {
getHashPatterns: getCsharpHashPatterns
},
go: {
getDependencyPaths: async () => [(0, import_path.join)(os2.homedir(), "go", "pkg", "mod")],
getDependencyPaths: async () => [(0, import_path2.join)(os2.homedir(), "go", "pkg", "mod")],
getHashPatterns: async () => internal.makePatternCheck(["**/go.sum"])
}
};
@@ -93265,73 +93409,6 @@ var internal = {
makePatternCheck
};
// src/diagnostics.ts
var import_fs = require("fs");
var import_path2 = __toESM(require("path"));
var unwrittenDiagnostics = [];
function makeDiagnostic(id, name, data = void 0) {
return {
...data,
timestamp: data?.timestamp ?? (/* @__PURE__ */ new Date()).toISOString(),
source: { ...data?.source, id, name }
};
}
function addDiagnostic(config, language, diagnostic) {
const logger = getActionsLogger();
const databasePath = language ? getCodeQLDatabasePath(config, language) : config.dbLocation;
if ((0, import_fs.existsSync)(databasePath)) {
writeDiagnostic(config, language, diagnostic);
} else {
logger.debug(
`Writing a diagnostic for ${language}, but the database at ${databasePath} does not exist yet.`
);
unwrittenDiagnostics.push({ diagnostic, language });
}
}
function writeDiagnostic(config, language, diagnostic) {
const logger = getActionsLogger();
const databasePath = language ? getCodeQLDatabasePath(config, language) : config.dbLocation;
const diagnosticsPath = import_path2.default.resolve(
databasePath,
"diagnostic",
"codeql-action"
);
try {
(0, import_fs.mkdirSync)(diagnosticsPath, { recursive: true });
const jsonPath = import_path2.default.resolve(
diagnosticsPath,
// Remove colons from the timestamp as these are not allowed in Windows filenames.
`codeql-action-${diagnostic.timestamp.replaceAll(":", "")}.json`
);
(0, import_fs.writeFileSync)(jsonPath, JSON.stringify(diagnostic));
} catch (err) {
logger.warning(`Unable to write diagnostic message to database: ${err}`);
logger.debug(JSON.stringify(diagnostic));
}
}
function logUnwrittenDiagnostics() {
const logger = getActionsLogger();
const num = unwrittenDiagnostics.length;
if (num > 0) {
logger.warning(
`${num} diagnostic(s) could not be written to the database and will not appear on the Tool Status Page.`
);
for (const unwritten of unwrittenDiagnostics) {
logger.debug(JSON.stringify(unwritten.diagnostic));
}
}
}
function flushDiagnostics(config) {
const logger = getActionsLogger();
logger.debug(
`Writing ${unwrittenDiagnostics.length} diagnostic(s) to database.`
);
for (const unwritten of unwrittenDiagnostics) {
writeDiagnostic(config, unwritten.language, unwritten.diagnostic);
}
unwrittenDiagnostics = [];
}
// src/init.ts
var fs12 = __toESM(require("fs"));
var path13 = __toESM(require("path"));
@@ -93589,7 +93666,7 @@ var fs9 = __toESM(require("fs"));
var path10 = __toESM(require("path"));
var toolcache3 = __toESM(require_tool_cache());
var import_fast_deep_equal = __toESM(require_fast_deep_equal());
var semver7 = __toESM(require_semver2());
var semver8 = __toESM(require_semver2());
// src/tar.ts
var import_child_process = require("child_process");
@@ -93598,7 +93675,7 @@ var stream = __toESM(require("stream"));
var import_toolrunner = __toESM(require_toolrunner());
var io4 = __toESM(require_io());
var toolcache = __toESM(require_tool_cache());
var semver5 = __toESM(require_semver2());
var semver6 = __toESM(require_semver2());
var MIN_REQUIRED_BSD_TAR_VERSION = "3.4.3";
var MIN_REQUIRED_GNU_TAR_VERSION = "1.31";
async function getTarVersion() {
@@ -93640,9 +93717,9 @@ async function isZstdAvailable(logger) {
case "gnu":
return {
available: foundZstdBinary && // GNU tar only uses major and minor version numbers
semver5.gte(
semver5.coerce(version),
semver5.coerce(MIN_REQUIRED_GNU_TAR_VERSION)
semver6.gte(
semver6.coerce(version),
semver6.coerce(MIN_REQUIRED_GNU_TAR_VERSION)
),
foundZstdBinary,
version: tarVersion
@@ -93651,7 +93728,7 @@ async function isZstdAvailable(logger) {
return {
available: foundZstdBinary && // Do a loose comparison since these version numbers don't contain
// a patch version number.
semver5.gte(version, MIN_REQUIRED_BSD_TAR_VERSION),
semver6.gte(version, MIN_REQUIRED_BSD_TAR_VERSION),
foundZstdBinary,
version: tarVersion
};
@@ -93758,7 +93835,7 @@ var core9 = __toESM(require_core());
var import_http_client = __toESM(require_lib());
var toolcache2 = __toESM(require_tool_cache());
var import_follow_redirects = __toESM(require_follow_redirects());
var semver6 = __toESM(require_semver2());
var semver7 = __toESM(require_semver2());
var STREAMING_HIGH_WATERMARK_BYTES = 4 * 1024 * 1024;
var TOOLCACHE_TOOL_NAME = "CodeQL";
function makeDownloadFirstToolsDownloadDurations(downloadDurationMs, extractionDurationMs) {
@@ -93888,7 +93965,7 @@ function getToolcacheDirectory(version) {
return path9.join(
getRequiredEnvParam("RUNNER_TOOL_CACHE"),
TOOLCACHE_TOOL_NAME,
semver6.clean(version) || version,
semver7.clean(version) || version,
os3.arch() || ""
);
}
@@ -94013,13 +94090,13 @@ function tryGetTagNameFromUrl(url, logger) {
return match[1];
}
function convertToSemVer(version, logger) {
if (!semver7.valid(version)) {
if (!semver8.valid(version)) {
logger.debug(
`Bundle version ${version} is not in SemVer format. Will treat it as pre-release 0.0.0-${version}.`
);
version = `0.0.0-${version}`;
}
const s = semver7.clean(version);
const s = semver8.clean(version);
if (!s) {
throw new Error(`Bundle version ${version} is not in SemVer format.`);
}
@@ -94127,7 +94204,7 @@ async function getCodeQLSource(toolsInput, defaultCliVersion, apiDetails, varian
url = toolsInput;
if (tagName) {
const bundleVersion3 = tryGetBundleVersionFromTagName(tagName, logger);
if (bundleVersion3 && semver7.valid(bundleVersion3)) {
if (bundleVersion3 && semver8.valid(bundleVersion3)) {
cliVersion2 = convertToSemVer(bundleVersion3, logger);
}
}
@@ -94398,7 +94475,7 @@ async function setupCodeQLBundle(toolsInput, apiDetails, tempDir, variant, defau
async function useZstdBundle(cliVersion2, tarSupportsZstd) {
return (
// In testing, gzip performs better than zstd on Windows.
process.platform !== "win32" && tarSupportsZstd && semver7.gte(cliVersion2, CODEQL_VERSION_ZSTD_BUNDLE)
process.platform !== "win32" && tarSupportsZstd && semver8.gte(cliVersion2, CODEQL_VERSION_ZSTD_BUNDLE)
);
}
function getTempExtractionDir(tempDir) {
@@ -94430,7 +94507,7 @@ async function getNightlyToolsUrl(logger) {
}
}
function getLatestToolcacheVersion(logger) {
const allVersions = toolcache3.findAllVersions("CodeQL").sort((a, b) => semver7.compare(b, a));
const allVersions = toolcache3.findAllVersions("CodeQL").sort((a, b) => semver8.compare(b, a));
logger.debug(
`Found the following versions of the CodeQL tools in the toolcache: ${JSON.stringify(
allVersions
@@ -95808,12 +95885,12 @@ async function run() {
const experimental = "2.19.3";
const publicPreview = "2.22.1";
const actualVer = (await codeql.getVersion()).version;
if (semver8.lt(actualVer, experimental)) {
if (semver9.lt(actualVer, experimental)) {
throw new ConfigurationError(
`Rust analysis is supported by CodeQL CLI version ${experimental} or higher, but found version ${actualVer}`
);
}
if (semver8.lt(actualVer, publicPreview)) {
if (semver9.lt(actualVer, publicPreview)) {
core13.exportVariable("CODEQL_ENABLE_EXPERIMENTAL_FEATURES" /* EXPERIMENTAL_FEATURES */, "true");
logger.info("Experimental Rust analysis enabled");
}
@@ -95896,17 +95973,10 @@ async function run() {
// Arbitrarily choose the first language. We could also choose all languages, but that
// increases the risk of misinterpreting the data.
config.languages[0],
makeDiagnostic(
makeTelemetryDiagnostic(
"codeql-action/bundle-download-telemetry",
"CodeQL bundle download telemetry",
{
attributes: toolsDownloadStatusReport,
visibility: {
cliSummaryTable: false,
statusPage: false,
telemetry: true
}
}
toolsDownloadStatusReport
)
);
}
@@ -96152,17 +96222,10 @@ async function recordZstdAvailability(config, zstdAvailability) {
// Arbitrarily choose the first language. We could also choose all languages, but that
// increases the risk of misinterpreting the data.
config.languages[0],
makeDiagnostic(
makeTelemetryDiagnostic(
"codeql-action/zstd-availability",
"Zstandard availability",
{
attributes: zstdAvailability,
visibility: {
cliSummaryTable: false,
statusPage: false,
telemetry: true
}
}
zstdAvailability
)
);
}
+53 -52
View File
@@ -26127,8 +26127,8 @@ var require_gte = __commonJS({
"node_modules/semver/functions/gte.js"(exports2, module2) {
"use strict";
var compare2 = require_compare();
var gte5 = (a, b, loose) => compare2(a, b, loose) >= 0;
module2.exports = gte5;
var gte6 = (a, b, loose) => compare2(a, b, loose) >= 0;
module2.exports = gte6;
}
});
@@ -26149,7 +26149,7 @@ var require_cmp = __commonJS({
var eq = require_eq();
var neq = require_neq();
var gt = require_gt();
var gte5 = require_gte();
var gte6 = require_gte();
var lt = require_lt();
var lte = require_lte();
var cmp = (a, op, b, loose) => {
@@ -26179,7 +26179,7 @@ var require_cmp = __commonJS({
case ">":
return gt(a, b, loose);
case ">=":
return gte5(a, b, loose);
return gte6(a, b, loose);
case "<":
return lt(a, b, loose);
case "<=":
@@ -26938,7 +26938,7 @@ var require_outside = __commonJS({
var gt = require_gt();
var lt = require_lt();
var lte = require_lte();
var gte5 = require_gte();
var gte6 = require_gte();
var outside = (version, range, hilo, options) => {
version = new SemVer(version, options);
range = new Range2(range, options);
@@ -26953,7 +26953,7 @@ var require_outside = __commonJS({
break;
case "<":
gtfn = lt;
ltefn = gte5;
ltefn = gte6;
ltfn = gt;
comp = "<";
ecomp = "<=";
@@ -27268,7 +27268,7 @@ var require_semver2 = __commonJS({
var lt = require_lt();
var eq = require_eq();
var neq = require_neq();
var gte5 = require_gte();
var gte6 = require_gte();
var lte = require_lte();
var cmp = require_cmp();
var coerce3 = require_coerce();
@@ -27306,7 +27306,7 @@ var require_semver2 = __commonJS({
lt,
eq,
neq,
gte: gte5,
gte: gte6,
lte,
cmp,
coerce: coerce3,
@@ -33489,7 +33489,7 @@ var require_brace_expansion = __commonJS({
function lte(i, y) {
return i <= y;
}
function gte5(i, y) {
function gte6(i, y) {
return i >= y;
}
function expand(str2, isTop) {
@@ -33534,7 +33534,7 @@ var require_brace_expansion = __commonJS({
var reverse = y < x;
if (reverse) {
incr *= -1;
test = gte5;
test = gte6;
}
var pad = n.some(isPadded);
N = [];
@@ -35435,8 +35435,8 @@ var require_semver3 = __commonJS({
function neq(a, b, loose) {
return compare2(a, b, loose) !== 0;
}
exports2.gte = gte5;
function gte5(a, b, loose) {
exports2.gte = gte6;
function gte6(a, b, loose) {
return compare2(a, b, loose) >= 0;
}
exports2.lte = lte;
@@ -35467,7 +35467,7 @@ var require_semver3 = __commonJS({
case ">":
return gt(a, b, loose);
case ">=":
return gte5(a, b, loose);
return gte6(a, b, loose);
case "<":
return lt(a, b, loose);
case "<=":
@@ -36012,7 +36012,7 @@ var require_semver3 = __commonJS({
break;
case "<":
gtfn = lt;
ltefn = gte5;
ltefn = gte6;
ltfn = gt;
comp = "<";
ecomp = "<=";
@@ -36232,7 +36232,7 @@ var require_cacheUtils = __commonJS({
var crypto2 = __importStar2(require("crypto"));
var fs5 = __importStar2(require("fs"));
var path5 = __importStar2(require("path"));
var semver8 = __importStar2(require_semver3());
var semver9 = __importStar2(require_semver3());
var util = __importStar2(require("util"));
var constants_1 = require_constants7();
var versionSalt = "1.0";
@@ -36325,7 +36325,7 @@ var require_cacheUtils = __commonJS({
function getCompressionMethod() {
return __awaiter2(this, void 0, void 0, function* () {
const versionOutput = yield getVersion("zstd", ["--quiet"]);
const version = semver8.clean(versionOutput);
const version = semver9.clean(versionOutput);
core13.debug(`zstd version: ${version}`);
if (versionOutput === "") {
return constants_1.CompressionMethod.Gzip;
@@ -85918,7 +85918,7 @@ var require_manifest = __commonJS({
};
Object.defineProperty(exports2, "__esModule", { value: true });
exports2._readLinuxVersionFile = exports2._getOsVersion = exports2._findMatch = void 0;
var semver8 = __importStar2(require_semver2());
var semver9 = __importStar2(require_semver2());
var core_1 = require_core3();
var os2 = require("os");
var cp = require("child_process");
@@ -85932,7 +85932,7 @@ var require_manifest = __commonJS({
for (const candidate of candidates) {
const version = candidate.version;
(0, core_1.debug)(`check ${version} satisfies ${versionSpec}`);
if (semver8.satisfies(version, versionSpec) && (!stable || candidate.stable === stable)) {
if (semver9.satisfies(version, versionSpec) && (!stable || candidate.stable === stable)) {
file = candidate.files.find((item) => {
(0, core_1.debug)(`${item.arch}===${archFilter} && ${item.platform}===${platFilter}`);
let chk = item.arch === archFilter && item.platform === platFilter;
@@ -85941,7 +85941,7 @@ var require_manifest = __commonJS({
if (osVersion === item.platform_version) {
chk = true;
} else {
chk = semver8.satisfies(osVersion, item.platform_version);
chk = semver9.satisfies(osVersion, item.platform_version);
}
}
return chk;
@@ -86171,7 +86171,7 @@ var require_tool_cache = __commonJS({
var os2 = __importStar2(require("os"));
var path5 = __importStar2(require("path"));
var httpm = __importStar2(require_lib5());
var semver8 = __importStar2(require_semver2());
var semver9 = __importStar2(require_semver2());
var stream = __importStar2(require("stream"));
var util = __importStar2(require("util"));
var assert_1 = require("assert");
@@ -86445,7 +86445,7 @@ var require_tool_cache = __commonJS({
}
function cacheDir(sourceDir, tool, version, arch) {
return __awaiter2(this, void 0, void 0, function* () {
version = semver8.clean(version) || version;
version = semver9.clean(version) || version;
arch = arch || os2.arch();
core13.debug(`Caching tool ${tool} ${version} ${arch}`);
core13.debug(`source dir: ${sourceDir}`);
@@ -86464,7 +86464,7 @@ var require_tool_cache = __commonJS({
exports2.cacheDir = cacheDir;
function cacheFile(sourceFile, targetFile, tool, version, arch) {
return __awaiter2(this, void 0, void 0, function* () {
version = semver8.clean(version) || version;
version = semver9.clean(version) || version;
arch = arch || os2.arch();
core13.debug(`Caching tool ${tool} ${version} ${arch}`);
core13.debug(`source file: ${sourceFile}`);
@@ -86495,7 +86495,7 @@ var require_tool_cache = __commonJS({
}
let toolPath = "";
if (versionSpec) {
versionSpec = semver8.clean(versionSpec) || "";
versionSpec = semver9.clean(versionSpec) || "";
const cachePath = path5.join(_getCacheDirectory(), toolName, versionSpec, arch);
core13.debug(`checking cache: ${cachePath}`);
if (fs5.existsSync(cachePath) && fs5.existsSync(`${cachePath}.complete`)) {
@@ -86579,7 +86579,7 @@ var require_tool_cache = __commonJS({
}
function _createToolPath(tool, version, arch) {
return __awaiter2(this, void 0, void 0, function* () {
const folderPath = path5.join(_getCacheDirectory(), tool, semver8.clean(version) || version, arch || "");
const folderPath = path5.join(_getCacheDirectory(), tool, semver9.clean(version) || version, arch || "");
core13.debug(`destination ${folderPath}`);
const markerPath = `${folderPath}.complete`;
yield io5.rmRF(folderPath);
@@ -86589,15 +86589,15 @@ var require_tool_cache = __commonJS({
});
}
function _completeToolPath(tool, version, arch) {
const folderPath = path5.join(_getCacheDirectory(), tool, semver8.clean(version) || version, arch || "");
const folderPath = path5.join(_getCacheDirectory(), tool, semver9.clean(version) || version, arch || "");
const markerPath = `${folderPath}.complete`;
fs5.writeFileSync(markerPath, "");
core13.debug("finished caching tool");
}
function isExplicitVersion(versionSpec) {
const c = semver8.clean(versionSpec) || "";
const c = semver9.clean(versionSpec) || "";
core13.debug(`isExplicit: ${c}`);
const valid3 = semver8.valid(c) != null;
const valid3 = semver9.valid(c) != null;
core13.debug(`explicit? ${valid3}`);
return valid3;
}
@@ -86606,14 +86606,14 @@ var require_tool_cache = __commonJS({
let version = "";
core13.debug(`evaluating ${versions.length} versions`);
versions = versions.sort((a, b) => {
if (semver8.gt(a, b)) {
if (semver9.gt(a, b)) {
return 1;
}
return -1;
});
for (let i = versions.length - 1; i >= 0; i--) {
const potential = versions[i];
const satisfied = semver8.satisfies(potential, versionSpec);
const satisfied = semver9.satisfies(potential, versionSpec);
if (satisfied) {
version = potential;
break;
@@ -90574,8 +90574,22 @@ var PACK_IDENTIFIER_PATTERN = (function() {
return new RegExp(`^${component}/${component}$`);
})();
// src/logging.ts
var core7 = __toESM(require_core());
function getActionsLogger() {
return {
debug: core7.debug,
info: core7.info,
warning: core7.warning,
error: core7.error,
isDebug: core7.isDebug,
startGroup: core7.startGroup,
endGroup: core7.endGroup
};
}
// src/feature-flags.ts
var semver4 = __toESM(require_semver2());
var semver5 = __toESM(require_semver2());
// src/overlay-database-utils.ts
var fs2 = __toESM(require("fs"));
@@ -90583,13 +90597,14 @@ var path2 = __toESM(require("path"));
var actionsCache = __toESM(require_cache4());
// src/git-utils.ts
var core7 = __toESM(require_core());
var core8 = __toESM(require_core());
var toolrunner2 = __toESM(require_toolrunner());
var io3 = __toESM(require_io());
var semver3 = __toESM(require_semver2());
var runGitCommand = async function(workingDirectory, args, customErrorMessage) {
let stdout = "";
let stderr = "";
core7.debug(`Running git command: git ${args.join(" ")}`);
core8.debug(`Running git command: git ${args.join(" ")}`);
try {
await new toolrunner2.ToolRunner(await io3.which("git", true), args, {
silent: true,
@@ -90609,7 +90624,7 @@ var runGitCommand = async function(workingDirectory, args, customErrorMessage) {
if (stderr.includes("not a git repository")) {
reason = "The checkout path provided to the action does not appear to be a git repository.";
}
core7.info(`git call failed. ${customErrorMessage} Error: ${reason}`);
core8.info(`git call failed. ${customErrorMessage} Error: ${reason}`);
throw error3;
}
};
@@ -90720,7 +90735,7 @@ async function getRef() {
) !== head;
if (hasChangedRef) {
const newRef = ref.replace(pull_ref_regex, "refs/pull/$1/head");
core7.debug(
core8.debug(
`No longer on merge commit, rewriting ref from ${ref} to ${newRef}.`
);
return newRef;
@@ -90745,20 +90760,6 @@ async function isAnalyzingDefaultBranch() {
return currentRef === defaultBranch;
}
// src/logging.ts
var core8 = __toESM(require_core());
function getActionsLogger() {
return {
debug: core8.debug,
info: core8.info,
warning: core8.warning,
error: core8.error,
isDebug: core8.isDebug,
startGroup: core8.startGroup,
endGroup: core8.endGroup
};
}
// src/overlay-database-utils.ts
var CODEQL_OVERLAY_MINIMUM_VERSION = "2.23.5";
var OVERLAY_BASE_DATABASE_MAX_UPLOAD_SIZE_MB = 7500;
@@ -90821,7 +90822,7 @@ function computeChangedFiles(baseFileOids, overlayFileOids) {
}
// src/tools-features.ts
var semver3 = __toESM(require_semver2());
var semver4 = __toESM(require_semver2());
function isSupportedToolsFeature(versionInfo, feature) {
return !!versionInfo.features && versionInfo.features[feature];
}
@@ -91105,20 +91106,20 @@ var toolrunner3 = __toESM(require_toolrunner());
// src/setup-codeql.ts
var toolcache3 = __toESM(require_tool_cache());
var import_fast_deep_equal = __toESM(require_fast_deep_equal());
var semver7 = __toESM(require_semver2());
var semver8 = __toESM(require_semver2());
// src/tar.ts
var import_toolrunner = __toESM(require_toolrunner());
var io4 = __toESM(require_io());
var toolcache = __toESM(require_tool_cache());
var semver5 = __toESM(require_semver2());
var semver6 = __toESM(require_semver2());
// src/tools-download.ts
var core9 = __toESM(require_core());
var import_http_client = __toESM(require_lib());
var toolcache2 = __toESM(require_tool_cache());
var import_follow_redirects = __toESM(require_follow_redirects());
var semver6 = __toESM(require_semver2());
var semver7 = __toESM(require_semver2());
var STREAMING_HIGH_WATERMARK_BYTES = 4 * 1024 * 1024;
// src/tracer-config.ts
+47 -46
View File
@@ -26127,8 +26127,8 @@ var require_gte = __commonJS({
"node_modules/semver/functions/gte.js"(exports2, module2) {
"use strict";
var compare2 = require_compare();
var gte5 = (a, b, loose) => compare2(a, b, loose) >= 0;
module2.exports = gte5;
var gte6 = (a, b, loose) => compare2(a, b, loose) >= 0;
module2.exports = gte6;
}
});
@@ -26149,7 +26149,7 @@ var require_cmp = __commonJS({
var eq = require_eq();
var neq = require_neq();
var gt = require_gt();
var gte5 = require_gte();
var gte6 = require_gte();
var lt = require_lt();
var lte = require_lte();
var cmp = (a, op, b, loose) => {
@@ -26179,7 +26179,7 @@ var require_cmp = __commonJS({
case ">":
return gt(a, b, loose);
case ">=":
return gte5(a, b, loose);
return gte6(a, b, loose);
case "<":
return lt(a, b, loose);
case "<=":
@@ -26938,7 +26938,7 @@ var require_outside = __commonJS({
var gt = require_gt();
var lt = require_lt();
var lte = require_lte();
var gte5 = require_gte();
var gte6 = require_gte();
var outside = (version, range, hilo, options) => {
version = new SemVer(version, options);
range = new Range2(range, options);
@@ -26953,7 +26953,7 @@ var require_outside = __commonJS({
break;
case "<":
gtfn = lt;
ltefn = gte5;
ltefn = gte6;
ltfn = gt;
comp = "<";
ecomp = "<=";
@@ -27268,7 +27268,7 @@ var require_semver2 = __commonJS({
var lt = require_lt();
var eq = require_eq();
var neq = require_neq();
var gte5 = require_gte();
var gte6 = require_gte();
var lte = require_lte();
var cmp = require_cmp();
var coerce3 = require_coerce();
@@ -27306,7 +27306,7 @@ var require_semver2 = __commonJS({
lt,
eq,
neq,
gte: gte5,
gte: gte6,
lte,
cmp,
coerce: coerce3,
@@ -32192,7 +32192,7 @@ var require_brace_expansion = __commonJS({
function lte(i, y) {
return i <= y;
}
function gte5(i, y) {
function gte6(i, y) {
return i >= y;
}
function expand(str2, isTop) {
@@ -32237,7 +32237,7 @@ var require_brace_expansion = __commonJS({
var reverse = y < x;
if (reverse) {
incr *= -1;
test = gte5;
test = gte6;
}
var pad = n.some(isPadded);
N = [];
@@ -34138,8 +34138,8 @@ var require_semver3 = __commonJS({
function neq(a, b, loose) {
return compare2(a, b, loose) !== 0;
}
exports2.gte = gte5;
function gte5(a, b, loose) {
exports2.gte = gte6;
function gte6(a, b, loose) {
return compare2(a, b, loose) >= 0;
}
exports2.lte = lte;
@@ -34170,7 +34170,7 @@ var require_semver3 = __commonJS({
case ">":
return gt(a, b, loose);
case ">=":
return gte5(a, b, loose);
return gte6(a, b, loose);
case "<":
return lt(a, b, loose);
case "<=":
@@ -34715,7 +34715,7 @@ var require_semver3 = __commonJS({
break;
case "<":
gtfn = lt;
ltefn = gte5;
ltefn = gte6;
ltfn = gt;
comp = "<";
ecomp = "<=";
@@ -34935,7 +34935,7 @@ var require_cacheUtils = __commonJS({
var crypto2 = __importStar2(require("crypto"));
var fs9 = __importStar2(require("fs"));
var path8 = __importStar2(require("path"));
var semver8 = __importStar2(require_semver3());
var semver9 = __importStar2(require_semver3());
var util = __importStar2(require("util"));
var constants_1 = require_constants7();
var versionSalt = "1.0";
@@ -35028,7 +35028,7 @@ var require_cacheUtils = __commonJS({
function getCompressionMethod() {
return __awaiter2(this, void 0, void 0, function* () {
const versionOutput = yield getVersion("zstd", ["--quiet"]);
const version = semver8.clean(versionOutput);
const version = semver9.clean(versionOutput);
core13.debug(`zstd version: ${version}`);
if (versionOutput === "") {
return constants_1.CompressionMethod.Gzip;
@@ -85918,7 +85918,7 @@ var require_manifest = __commonJS({
};
Object.defineProperty(exports2, "__esModule", { value: true });
exports2._readLinuxVersionFile = exports2._getOsVersion = exports2._findMatch = void 0;
var semver8 = __importStar2(require_semver2());
var semver9 = __importStar2(require_semver2());
var core_1 = require_core3();
var os3 = require("os");
var cp = require("child_process");
@@ -85932,7 +85932,7 @@ var require_manifest = __commonJS({
for (const candidate of candidates) {
const version = candidate.version;
(0, core_1.debug)(`check ${version} satisfies ${versionSpec}`);
if (semver8.satisfies(version, versionSpec) && (!stable || candidate.stable === stable)) {
if (semver9.satisfies(version, versionSpec) && (!stable || candidate.stable === stable)) {
file = candidate.files.find((item) => {
(0, core_1.debug)(`${item.arch}===${archFilter} && ${item.platform}===${platFilter}`);
let chk = item.arch === archFilter && item.platform === platFilter;
@@ -85941,7 +85941,7 @@ var require_manifest = __commonJS({
if (osVersion === item.platform_version) {
chk = true;
} else {
chk = semver8.satisfies(osVersion, item.platform_version);
chk = semver9.satisfies(osVersion, item.platform_version);
}
}
return chk;
@@ -86171,7 +86171,7 @@ var require_tool_cache = __commonJS({
var os3 = __importStar2(require("os"));
var path8 = __importStar2(require("path"));
var httpm = __importStar2(require_lib5());
var semver8 = __importStar2(require_semver2());
var semver9 = __importStar2(require_semver2());
var stream2 = __importStar2(require("stream"));
var util = __importStar2(require("util"));
var assert_1 = require("assert");
@@ -86445,7 +86445,7 @@ var require_tool_cache = __commonJS({
}
function cacheDir(sourceDir, tool, version, arch2) {
return __awaiter2(this, void 0, void 0, function* () {
version = semver8.clean(version) || version;
version = semver9.clean(version) || version;
arch2 = arch2 || os3.arch();
core13.debug(`Caching tool ${tool} ${version} ${arch2}`);
core13.debug(`source dir: ${sourceDir}`);
@@ -86464,7 +86464,7 @@ var require_tool_cache = __commonJS({
exports2.cacheDir = cacheDir;
function cacheFile(sourceFile, targetFile, tool, version, arch2) {
return __awaiter2(this, void 0, void 0, function* () {
version = semver8.clean(version) || version;
version = semver9.clean(version) || version;
arch2 = arch2 || os3.arch();
core13.debug(`Caching tool ${tool} ${version} ${arch2}`);
core13.debug(`source file: ${sourceFile}`);
@@ -86495,7 +86495,7 @@ var require_tool_cache = __commonJS({
}
let toolPath = "";
if (versionSpec) {
versionSpec = semver8.clean(versionSpec) || "";
versionSpec = semver9.clean(versionSpec) || "";
const cachePath = path8.join(_getCacheDirectory(), toolName, versionSpec, arch2);
core13.debug(`checking cache: ${cachePath}`);
if (fs9.existsSync(cachePath) && fs9.existsSync(`${cachePath}.complete`)) {
@@ -86579,7 +86579,7 @@ var require_tool_cache = __commonJS({
}
function _createToolPath(tool, version, arch2) {
return __awaiter2(this, void 0, void 0, function* () {
const folderPath = path8.join(_getCacheDirectory(), tool, semver8.clean(version) || version, arch2 || "");
const folderPath = path8.join(_getCacheDirectory(), tool, semver9.clean(version) || version, arch2 || "");
core13.debug(`destination ${folderPath}`);
const markerPath = `${folderPath}.complete`;
yield io6.rmRF(folderPath);
@@ -86589,15 +86589,15 @@ var require_tool_cache = __commonJS({
});
}
function _completeToolPath(tool, version, arch2) {
const folderPath = path8.join(_getCacheDirectory(), tool, semver8.clean(version) || version, arch2 || "");
const folderPath = path8.join(_getCacheDirectory(), tool, semver9.clean(version) || version, arch2 || "");
const markerPath = `${folderPath}.complete`;
fs9.writeFileSync(markerPath, "");
core13.debug("finished caching tool");
}
function isExplicitVersion(versionSpec) {
const c = semver8.clean(versionSpec) || "";
const c = semver9.clean(versionSpec) || "";
core13.debug(`isExplicit: ${c}`);
const valid3 = semver8.valid(c) != null;
const valid3 = semver9.valid(c) != null;
core13.debug(`explicit? ${valid3}`);
return valid3;
}
@@ -86606,14 +86606,14 @@ var require_tool_cache = __commonJS({
let version = "";
core13.debug(`evaluating ${versions.length} versions`);
versions = versions.sort((a, b) => {
if (semver8.gt(a, b)) {
if (semver9.gt(a, b)) {
return 1;
}
return -1;
});
for (let i = versions.length - 1; i >= 0; i--) {
const potential = versions[i];
const satisfied = semver8.satisfies(potential, versionSpec);
const satisfied = semver9.satisfies(potential, versionSpec);
if (satisfied) {
version = potential;
break;
@@ -90466,7 +90466,7 @@ function wrapApiConfigurationError(e) {
// src/feature-flags.ts
var fs4 = __toESM(require("fs"));
var path4 = __toESM(require("path"));
var semver3 = __toESM(require_semver2());
var semver4 = __toESM(require_semver2());
// src/defaults.json
var bundleVersion = "codeql-bundle-v2.23.8";
@@ -90484,6 +90484,7 @@ var core6 = __toESM(require_core());
var core7 = __toESM(require_core());
var toolrunner2 = __toESM(require_toolrunner());
var io3 = __toESM(require_io());
var semver2 = __toESM(require_semver2());
var runGitCommand = async function(workingDirectory, args, customErrorMessage) {
let stdout = "";
let stderr = "";
@@ -90730,7 +90731,7 @@ function computeChangedFiles(baseFileOids, overlayFileOids) {
}
// src/tools-features.ts
var semver2 = __toESM(require_semver2());
var semver3 = __toESM(require_semver2());
function isSupportedToolsFeature(versionInfo, feature) {
return !!versionInfo.features && versionInfo.features[feature];
}
@@ -91039,7 +91040,7 @@ var GitHubFeatureFlags = class {
DEFAULT_VERSION_FEATURE_FLAG_PREFIX.length,
f.length - DEFAULT_VERSION_FEATURE_FLAG_SUFFIX.length
).replace(/_/g, ".");
if (!semver3.valid(version)) {
if (!semver4.valid(version)) {
this.logger.warning(
`Ignoring feature flag ${f} as it does not specify a valid CodeQL version.`
);
@@ -91462,7 +91463,7 @@ var supportedAnalysisKinds = new Set(Object.values(AnalysisKind));
// src/config/db-config.ts
var jsonschema = __toESM(require_lib4());
var semver4 = __toESM(require_semver2());
var semver5 = __toESM(require_semver2());
var PACK_IDENTIFIER_PATTERN = (function() {
const alphaNumeric = "[a-z0-9]";
const alphaNumericDash = "[a-z0-9-]";
@@ -91525,7 +91526,7 @@ var fs7 = __toESM(require("fs"));
var path6 = __toESM(require("path"));
var toolcache3 = __toESM(require_tool_cache());
var import_fast_deep_equal = __toESM(require_fast_deep_equal());
var semver7 = __toESM(require_semver2());
var semver8 = __toESM(require_semver2());
// src/tar.ts
var import_child_process = require("child_process");
@@ -91534,7 +91535,7 @@ var stream = __toESM(require("stream"));
var import_toolrunner = __toESM(require_toolrunner());
var io4 = __toESM(require_io());
var toolcache = __toESM(require_tool_cache());
var semver5 = __toESM(require_semver2());
var semver6 = __toESM(require_semver2());
var MIN_REQUIRED_BSD_TAR_VERSION = "3.4.3";
var MIN_REQUIRED_GNU_TAR_VERSION = "1.31";
async function getTarVersion() {
@@ -91576,9 +91577,9 @@ async function isZstdAvailable(logger) {
case "gnu":
return {
available: foundZstdBinary && // GNU tar only uses major and minor version numbers
semver5.gte(
semver5.coerce(version),
semver5.coerce(MIN_REQUIRED_GNU_TAR_VERSION)
semver6.gte(
semver6.coerce(version),
semver6.coerce(MIN_REQUIRED_GNU_TAR_VERSION)
),
foundZstdBinary,
version: tarVersion
@@ -91587,7 +91588,7 @@ async function isZstdAvailable(logger) {
return {
available: foundZstdBinary && // Do a loose comparison since these version numbers don't contain
// a patch version number.
semver5.gte(version, MIN_REQUIRED_BSD_TAR_VERSION),
semver6.gte(version, MIN_REQUIRED_BSD_TAR_VERSION),
foundZstdBinary,
version: tarVersion
};
@@ -91694,7 +91695,7 @@ var core9 = __toESM(require_core());
var import_http_client = __toESM(require_lib());
var toolcache2 = __toESM(require_tool_cache());
var import_follow_redirects = __toESM(require_follow_redirects());
var semver6 = __toESM(require_semver2());
var semver7 = __toESM(require_semver2());
var STREAMING_HIGH_WATERMARK_BYTES = 4 * 1024 * 1024;
var TOOLCACHE_TOOL_NAME = "CodeQL";
function makeDownloadFirstToolsDownloadDurations(downloadDurationMs, extractionDurationMs) {
@@ -91824,7 +91825,7 @@ function getToolcacheDirectory(version) {
return path5.join(
getRequiredEnvParam("RUNNER_TOOL_CACHE"),
TOOLCACHE_TOOL_NAME,
semver6.clean(version) || version,
semver7.clean(version) || version,
os.arch() || ""
);
}
@@ -91949,13 +91950,13 @@ function tryGetTagNameFromUrl(url, logger) {
return match[1];
}
function convertToSemVer(version, logger) {
if (!semver7.valid(version)) {
if (!semver8.valid(version)) {
logger.debug(
`Bundle version ${version} is not in SemVer format. Will treat it as pre-release 0.0.0-${version}.`
);
version = `0.0.0-${version}`;
}
const s = semver7.clean(version);
const s = semver8.clean(version);
if (!s) {
throw new Error(`Bundle version ${version} is not in SemVer format.`);
}
@@ -92063,7 +92064,7 @@ async function getCodeQLSource(toolsInput, defaultCliVersion, apiDetails, varian
url = toolsInput;
if (tagName) {
const bundleVersion3 = tryGetBundleVersionFromTagName(tagName, logger);
if (bundleVersion3 && semver7.valid(bundleVersion3)) {
if (bundleVersion3 && semver8.valid(bundleVersion3)) {
cliVersion2 = convertToSemVer(bundleVersion3, logger);
}
}
@@ -92334,7 +92335,7 @@ async function setupCodeQLBundle(toolsInput, apiDetails, tempDir, variant, defau
async function useZstdBundle(cliVersion2, tarSupportsZstd) {
return (
// In testing, gzip performs better than zstd on Windows.
process.platform !== "win32" && tarSupportsZstd && semver7.gte(cliVersion2, CODEQL_VERSION_ZSTD_BUNDLE)
process.platform !== "win32" && tarSupportsZstd && semver8.gte(cliVersion2, CODEQL_VERSION_ZSTD_BUNDLE)
);
}
function getTempExtractionDir(tempDir) {
@@ -92366,7 +92367,7 @@ async function getNightlyToolsUrl(logger) {
}
}
function getLatestToolcacheVersion(logger) {
const allVersions = toolcache3.findAllVersions("CodeQL").sort((a, b) => semver7.compare(b, a));
const allVersions = toolcache3.findAllVersions("CodeQL").sort((a, b) => semver8.compare(b, a));
logger.debug(
`Found the following versions of the CodeQL tools in the toolcache: ${JSON.stringify(
allVersions
+54 -53
View File
@@ -26127,8 +26127,8 @@ var require_gte = __commonJS({
"node_modules/semver/functions/gte.js"(exports2, module2) {
"use strict";
var compare2 = require_compare();
var gte5 = (a, b, loose) => compare2(a, b, loose) >= 0;
module2.exports = gte5;
var gte6 = (a, b, loose) => compare2(a, b, loose) >= 0;
module2.exports = gte6;
}
});
@@ -26149,7 +26149,7 @@ var require_cmp = __commonJS({
var eq = require_eq();
var neq = require_neq();
var gt = require_gt();
var gte5 = require_gte();
var gte6 = require_gte();
var lt = require_lt();
var lte = require_lte();
var cmp = (a, op, b, loose) => {
@@ -26179,7 +26179,7 @@ var require_cmp = __commonJS({
case ">":
return gt(a, b, loose);
case ">=":
return gte5(a, b, loose);
return gte6(a, b, loose);
case "<":
return lt(a, b, loose);
case "<=":
@@ -26938,7 +26938,7 @@ var require_outside = __commonJS({
var gt = require_gt();
var lt = require_lt();
var lte = require_lte();
var gte5 = require_gte();
var gte6 = require_gte();
var outside = (version, range, hilo, options) => {
version = new SemVer(version, options);
range = new Range2(range, options);
@@ -26953,7 +26953,7 @@ var require_outside = __commonJS({
break;
case "<":
gtfn = lt;
ltefn = gte5;
ltefn = gte6;
ltfn = gt;
comp = "<";
ecomp = "<=";
@@ -27268,7 +27268,7 @@ var require_semver2 = __commonJS({
var lt = require_lt();
var eq = require_eq();
var neq = require_neq();
var gte5 = require_gte();
var gte6 = require_gte();
var lte = require_lte();
var cmp = require_cmp();
var coerce3 = require_coerce();
@@ -27306,7 +27306,7 @@ var require_semver2 = __commonJS({
lt,
eq,
neq,
gte: gte5,
gte: gte6,
lte,
cmp,
coerce: coerce3,
@@ -33489,7 +33489,7 @@ var require_brace_expansion = __commonJS({
function lte(i, y) {
return i <= y;
}
function gte5(i, y) {
function gte6(i, y) {
return i >= y;
}
function expand(str2, isTop) {
@@ -33534,7 +33534,7 @@ var require_brace_expansion = __commonJS({
var reverse = y < x;
if (reverse) {
incr *= -1;
test = gte5;
test = gte6;
}
var pad = n.some(isPadded);
N = [];
@@ -35435,8 +35435,8 @@ var require_semver3 = __commonJS({
function neq(a, b, loose) {
return compare2(a, b, loose) !== 0;
}
exports2.gte = gte5;
function gte5(a, b, loose) {
exports2.gte = gte6;
function gte6(a, b, loose) {
return compare2(a, b, loose) >= 0;
}
exports2.lte = lte;
@@ -35467,7 +35467,7 @@ var require_semver3 = __commonJS({
case ">":
return gt(a, b, loose);
case ">=":
return gte5(a, b, loose);
return gte6(a, b, loose);
case "<":
return lt(a, b, loose);
case "<=":
@@ -36012,7 +36012,7 @@ var require_semver3 = __commonJS({
break;
case "<":
gtfn = lt;
ltefn = gte5;
ltefn = gte6;
ltfn = gt;
comp = "<";
ecomp = "<=";
@@ -36232,7 +36232,7 @@ var require_cacheUtils = __commonJS({
var crypto2 = __importStar2(require("crypto"));
var fs2 = __importStar2(require("fs"));
var path2 = __importStar2(require("path"));
var semver8 = __importStar2(require_semver3());
var semver9 = __importStar2(require_semver3());
var util = __importStar2(require("util"));
var constants_1 = require_constants7();
var versionSalt = "1.0";
@@ -36325,7 +36325,7 @@ var require_cacheUtils = __commonJS({
function getCompressionMethod() {
return __awaiter2(this, void 0, void 0, function* () {
const versionOutput = yield getVersion("zstd", ["--quiet"]);
const version = semver8.clean(versionOutput);
const version = semver9.clean(versionOutput);
core14.debug(`zstd version: ${version}`);
if (versionOutput === "") {
return constants_1.CompressionMethod.Gzip;
@@ -86078,7 +86078,7 @@ var require_brace_expansion2 = __commonJS({
function lte(i, y) {
return i <= y;
}
function gte5(i, y) {
function gte6(i, y) {
return i >= y;
}
function expand(str2, isTop) {
@@ -86128,7 +86128,7 @@ var require_brace_expansion2 = __commonJS({
var reverse = y < x;
if (reverse) {
incr *= -1;
test = gte5;
test = gte6;
}
var pad = n.some(isPadded);
N = [];
@@ -99433,7 +99433,7 @@ var require_commonjs19 = __commonJS({
function lte(i, y) {
return i <= y;
}
function gte5(i, y) {
function gte6(i, y) {
return i >= y;
}
function expand_(str2, isTop) {
@@ -99482,7 +99482,7 @@ var require_commonjs19 = __commonJS({
const reverse = y < x;
if (reverse) {
incr *= -1;
test = gte5;
test = gte6;
}
const pad = n.some(isPadded);
N = [];
@@ -122220,7 +122220,7 @@ var require_manifest = __commonJS({
};
Object.defineProperty(exports2, "__esModule", { value: true });
exports2._readLinuxVersionFile = exports2._getOsVersion = exports2._findMatch = void 0;
var semver8 = __importStar2(require_semver2());
var semver9 = __importStar2(require_semver2());
var core_1 = require_core5();
var os = require("os");
var cp = require("child_process");
@@ -122234,7 +122234,7 @@ var require_manifest = __commonJS({
for (const candidate of candidates) {
const version = candidate.version;
(0, core_1.debug)(`check ${version} satisfies ${versionSpec}`);
if (semver8.satisfies(version, versionSpec) && (!stable || candidate.stable === stable)) {
if (semver9.satisfies(version, versionSpec) && (!stable || candidate.stable === stable)) {
file = candidate.files.find((item) => {
(0, core_1.debug)(`${item.arch}===${archFilter} && ${item.platform}===${platFilter}`);
let chk = item.arch === archFilter && item.platform === platFilter;
@@ -122243,7 +122243,7 @@ var require_manifest = __commonJS({
if (osVersion === item.platform_version) {
chk = true;
} else {
chk = semver8.satisfies(osVersion, item.platform_version);
chk = semver9.satisfies(osVersion, item.platform_version);
}
}
return chk;
@@ -122473,7 +122473,7 @@ var require_tool_cache = __commonJS({
var os = __importStar2(require("os"));
var path2 = __importStar2(require("path"));
var httpm = __importStar2(require_lib7());
var semver8 = __importStar2(require_semver2());
var semver9 = __importStar2(require_semver2());
var stream = __importStar2(require("stream"));
var util = __importStar2(require("util"));
var assert_1 = require("assert");
@@ -122747,7 +122747,7 @@ var require_tool_cache = __commonJS({
}
function cacheDir(sourceDir, tool, version, arch) {
return __awaiter2(this, void 0, void 0, function* () {
version = semver8.clean(version) || version;
version = semver9.clean(version) || version;
arch = arch || os.arch();
core14.debug(`Caching tool ${tool} ${version} ${arch}`);
core14.debug(`source dir: ${sourceDir}`);
@@ -122766,7 +122766,7 @@ var require_tool_cache = __commonJS({
exports2.cacheDir = cacheDir;
function cacheFile(sourceFile, targetFile, tool, version, arch) {
return __awaiter2(this, void 0, void 0, function* () {
version = semver8.clean(version) || version;
version = semver9.clean(version) || version;
arch = arch || os.arch();
core14.debug(`Caching tool ${tool} ${version} ${arch}`);
core14.debug(`source file: ${sourceFile}`);
@@ -122797,7 +122797,7 @@ var require_tool_cache = __commonJS({
}
let toolPath = "";
if (versionSpec) {
versionSpec = semver8.clean(versionSpec) || "";
versionSpec = semver9.clean(versionSpec) || "";
const cachePath = path2.join(_getCacheDirectory(), toolName, versionSpec, arch);
core14.debug(`checking cache: ${cachePath}`);
if (fs2.existsSync(cachePath) && fs2.existsSync(`${cachePath}.complete`)) {
@@ -122881,7 +122881,7 @@ var require_tool_cache = __commonJS({
}
function _createToolPath(tool, version, arch) {
return __awaiter2(this, void 0, void 0, function* () {
const folderPath = path2.join(_getCacheDirectory(), tool, semver8.clean(version) || version, arch || "");
const folderPath = path2.join(_getCacheDirectory(), tool, semver9.clean(version) || version, arch || "");
core14.debug(`destination ${folderPath}`);
const markerPath = `${folderPath}.complete`;
yield io6.rmRF(folderPath);
@@ -122891,15 +122891,15 @@ var require_tool_cache = __commonJS({
});
}
function _completeToolPath(tool, version, arch) {
const folderPath = path2.join(_getCacheDirectory(), tool, semver8.clean(version) || version, arch || "");
const folderPath = path2.join(_getCacheDirectory(), tool, semver9.clean(version) || version, arch || "");
const markerPath = `${folderPath}.complete`;
fs2.writeFileSync(markerPath, "");
core14.debug("finished caching tool");
}
function isExplicitVersion(versionSpec) {
const c = semver8.clean(versionSpec) || "";
const c = semver9.clean(versionSpec) || "";
core14.debug(`isExplicit: ${c}`);
const valid3 = semver8.valid(c) != null;
const valid3 = semver9.valid(c) != null;
core14.debug(`explicit? ${valid3}`);
return valid3;
}
@@ -122908,14 +122908,14 @@ var require_tool_cache = __commonJS({
let version = "";
core14.debug(`evaluating ${versions.length} versions`);
versions = versions.sort((a, b) => {
if (semver8.gt(a, b)) {
if (semver9.gt(a, b)) {
return 1;
}
return -1;
});
for (let i = versions.length - 1; i >= 0; i--) {
const potential = versions[i];
const satisfied = semver8.satisfies(potential, versionSpec);
const satisfied = semver9.satisfies(potential, versionSpec);
if (satisfied) {
version = potential;
break;
@@ -126348,30 +126348,31 @@ var PACK_IDENTIFIER_PATTERN = (function() {
return new RegExp(`^${component}/${component}$`);
})();
// src/logging.ts
var core7 = __toESM(require_core());
function getActionsLogger() {
return {
debug: core7.debug,
info: core7.info,
warning: core7.warning,
error: core7.error,
isDebug: core7.isDebug,
startGroup: core7.startGroup,
endGroup: core7.endGroup
};
}
// src/feature-flags.ts
var semver4 = __toESM(require_semver2());
var semver5 = __toESM(require_semver2());
// src/overlay-database-utils.ts
var actionsCache = __toESM(require_cache4());
// src/git-utils.ts
var core7 = __toESM(require_core());
var core8 = __toESM(require_core());
var toolrunner2 = __toESM(require_toolrunner());
var io3 = __toESM(require_io());
// src/logging.ts
var core8 = __toESM(require_core());
function getActionsLogger() {
return {
debug: core8.debug,
info: core8.info,
warning: core8.warning,
error: core8.error,
isDebug: core8.isDebug,
startGroup: core8.startGroup,
endGroup: core8.endGroup
};
}
var semver3 = __toESM(require_semver2());
// src/overlay-database-utils.ts
var CODEQL_OVERLAY_MINIMUM_VERSION = "2.23.5";
@@ -126379,7 +126380,7 @@ var OVERLAY_BASE_DATABASE_MAX_UPLOAD_SIZE_MB = 7500;
var OVERLAY_BASE_DATABASE_MAX_UPLOAD_SIZE_BYTES = OVERLAY_BASE_DATABASE_MAX_UPLOAD_SIZE_MB * 1e6;
// src/tools-features.ts
var semver3 = __toESM(require_semver2());
var semver4 = __toESM(require_semver2());
// src/feature-flags.ts
var featureConfig = {
@@ -126788,20 +126789,20 @@ var cliErrorsConfig = {
// src/setup-codeql.ts
var toolcache3 = __toESM(require_tool_cache());
var import_fast_deep_equal = __toESM(require_fast_deep_equal());
var semver7 = __toESM(require_semver2());
var semver8 = __toESM(require_semver2());
// src/tar.ts
var import_toolrunner = __toESM(require_toolrunner());
var io4 = __toESM(require_io());
var toolcache = __toESM(require_tool_cache());
var semver5 = __toESM(require_semver2());
var semver6 = __toESM(require_semver2());
// src/tools-download.ts
var core9 = __toESM(require_core());
var import_http_client = __toESM(require_lib());
var toolcache2 = __toESM(require_tool_cache());
var import_follow_redirects = __toESM(require_follow_redirects());
var semver6 = __toESM(require_semver2());
var semver7 = __toESM(require_semver2());
var STREAMING_HIGH_WATERMARK_BYTES = 4 * 1024 * 1024;
// src/dependency-caching.ts
+32 -31
View File
@@ -23498,8 +23498,8 @@ var require_gte = __commonJS({
"node_modules/semver/functions/gte.js"(exports2, module2) {
"use strict";
var compare = require_compare();
var gte3 = (a, b, loose) => compare(a, b, loose) >= 0;
module2.exports = gte3;
var gte4 = (a, b, loose) => compare(a, b, loose) >= 0;
module2.exports = gte4;
}
});
@@ -23520,7 +23520,7 @@ var require_cmp = __commonJS({
var eq = require_eq();
var neq = require_neq();
var gt = require_gt();
var gte3 = require_gte();
var gte4 = require_gte();
var lt = require_lt();
var lte = require_lte();
var cmp = (a, op, b, loose) => {
@@ -23550,7 +23550,7 @@ var require_cmp = __commonJS({
case ">":
return gt(a, b, loose);
case ">=":
return gte3(a, b, loose);
return gte4(a, b, loose);
case "<":
return lt(a, b, loose);
case "<=":
@@ -24309,7 +24309,7 @@ var require_outside = __commonJS({
var gt = require_gt();
var lt = require_lt();
var lte = require_lte();
var gte3 = require_gte();
var gte4 = require_gte();
var outside = (version, range, hilo, options) => {
version = new SemVer(version, options);
range = new Range2(range, options);
@@ -24324,7 +24324,7 @@ var require_outside = __commonJS({
break;
case "<":
gtfn = lt;
ltefn = gte3;
ltefn = gte4;
ltfn = gt;
comp = "<";
ecomp = "<=";
@@ -24639,7 +24639,7 @@ var require_semver2 = __commonJS({
var lt = require_lt();
var eq = require_eq();
var neq = require_neq();
var gte3 = require_gte();
var gte4 = require_gte();
var lte = require_lte();
var cmp = require_cmp();
var coerce2 = require_coerce();
@@ -24677,7 +24677,7 @@ var require_semver2 = __commonJS({
lt,
eq,
neq,
gte: gte3,
gte: gte4,
lte,
cmp,
coerce: coerce2,
@@ -24767,7 +24767,7 @@ var require_manifest = __commonJS({
};
Object.defineProperty(exports2, "__esModule", { value: true });
exports2._readLinuxVersionFile = exports2._getOsVersion = exports2._findMatch = void 0;
var semver5 = __importStar2(require_semver2());
var semver6 = __importStar2(require_semver2());
var core_1 = require_core2();
var os2 = require("os");
var cp = require("child_process");
@@ -24781,7 +24781,7 @@ var require_manifest = __commonJS({
for (const candidate of candidates) {
const version = candidate.version;
(0, core_1.debug)(`check ${version} satisfies ${versionSpec}`);
if (semver5.satisfies(version, versionSpec) && (!stable || candidate.stable === stable)) {
if (semver6.satisfies(version, versionSpec) && (!stable || candidate.stable === stable)) {
file = candidate.files.find((item) => {
(0, core_1.debug)(`${item.arch}===${archFilter} && ${item.platform}===${platFilter}`);
let chk = item.arch === archFilter && item.platform === platFilter;
@@ -24790,7 +24790,7 @@ var require_manifest = __commonJS({
if (osVersion === item.platform_version) {
chk = true;
} else {
chk = semver5.satisfies(osVersion, item.platform_version);
chk = semver6.satisfies(osVersion, item.platform_version);
}
}
return chk;
@@ -25020,7 +25020,7 @@ var require_tool_cache = __commonJS({
var os2 = __importStar2(require("os"));
var path2 = __importStar2(require("path"));
var httpm = __importStar2(require_lib2());
var semver5 = __importStar2(require_semver2());
var semver6 = __importStar2(require_semver2());
var stream = __importStar2(require("stream"));
var util = __importStar2(require("util"));
var assert_1 = require("assert");
@@ -25294,7 +25294,7 @@ var require_tool_cache = __commonJS({
}
function cacheDir2(sourceDir, tool, version, arch) {
return __awaiter2(this, void 0, void 0, function* () {
version = semver5.clean(version) || version;
version = semver6.clean(version) || version;
arch = arch || os2.arch();
core12.debug(`Caching tool ${tool} ${version} ${arch}`);
core12.debug(`source dir: ${sourceDir}`);
@@ -25313,7 +25313,7 @@ var require_tool_cache = __commonJS({
exports2.cacheDir = cacheDir2;
function cacheFile(sourceFile, targetFile, tool, version, arch) {
return __awaiter2(this, void 0, void 0, function* () {
version = semver5.clean(version) || version;
version = semver6.clean(version) || version;
arch = arch || os2.arch();
core12.debug(`Caching tool ${tool} ${version} ${arch}`);
core12.debug(`source file: ${sourceFile}`);
@@ -25344,7 +25344,7 @@ var require_tool_cache = __commonJS({
}
let toolPath = "";
if (versionSpec) {
versionSpec = semver5.clean(versionSpec) || "";
versionSpec = semver6.clean(versionSpec) || "";
const cachePath = path2.join(_getCacheDirectory(), toolName, versionSpec, arch);
core12.debug(`checking cache: ${cachePath}`);
if (fs.existsSync(cachePath) && fs.existsSync(`${cachePath}.complete`)) {
@@ -25428,7 +25428,7 @@ var require_tool_cache = __commonJS({
}
function _createToolPath(tool, version, arch) {
return __awaiter2(this, void 0, void 0, function* () {
const folderPath = path2.join(_getCacheDirectory(), tool, semver5.clean(version) || version, arch || "");
const folderPath = path2.join(_getCacheDirectory(), tool, semver6.clean(version) || version, arch || "");
core12.debug(`destination ${folderPath}`);
const markerPath = `${folderPath}.complete`;
yield io4.rmRF(folderPath);
@@ -25438,15 +25438,15 @@ var require_tool_cache = __commonJS({
});
}
function _completeToolPath(tool, version, arch) {
const folderPath = path2.join(_getCacheDirectory(), tool, semver5.clean(version) || version, arch || "");
const folderPath = path2.join(_getCacheDirectory(), tool, semver6.clean(version) || version, arch || "");
const markerPath = `${folderPath}.complete`;
fs.writeFileSync(markerPath, "");
core12.debug("finished caching tool");
}
function isExplicitVersion(versionSpec) {
const c = semver5.clean(versionSpec) || "";
const c = semver6.clean(versionSpec) || "";
core12.debug(`isExplicit: ${c}`);
const valid2 = semver5.valid(c) != null;
const valid2 = semver6.valid(c) != null;
core12.debug(`explicit? ${valid2}`);
return valid2;
}
@@ -25455,14 +25455,14 @@ var require_tool_cache = __commonJS({
let version = "";
core12.debug(`evaluating ${versions.length} versions`);
versions = versions.sort((a, b) => {
if (semver5.gt(a, b)) {
if (semver6.gt(a, b)) {
return 1;
}
return -1;
});
for (let i = versions.length - 1; i >= 0; i--) {
const potential = versions[i];
const satisfied = semver5.satisfies(potential, versionSpec);
const satisfied = semver6.satisfies(potential, versionSpec);
if (satisfied) {
version = potential;
break;
@@ -54851,7 +54851,7 @@ var require_brace_expansion = __commonJS({
function lte(i, y) {
return i <= y;
}
function gte3(i, y) {
function gte4(i, y) {
return i >= y;
}
function expand(str2, isTop) {
@@ -54896,7 +54896,7 @@ var require_brace_expansion = __commonJS({
var reverse = y < x;
if (reverse) {
incr *= -1;
test = gte3;
test = gte4;
}
var pad = n.some(isPadded);
N = [];
@@ -56797,8 +56797,8 @@ var require_semver3 = __commonJS({
function neq(a, b, loose) {
return compare(a, b, loose) !== 0;
}
exports2.gte = gte3;
function gte3(a, b, loose) {
exports2.gte = gte4;
function gte4(a, b, loose) {
return compare(a, b, loose) >= 0;
}
exports2.lte = lte;
@@ -56829,7 +56829,7 @@ var require_semver3 = __commonJS({
case ">":
return gt(a, b, loose);
case ">=":
return gte3(a, b, loose);
return gte4(a, b, loose);
case "<":
return lt(a, b, loose);
case "<=":
@@ -57374,7 +57374,7 @@ var require_semver3 = __commonJS({
break;
case "<":
gtfn = lt;
ltefn = gte3;
ltefn = gte4;
ltfn = gt;
comp = "<";
ecomp = "<=";
@@ -57594,7 +57594,7 @@ var require_cacheUtils = __commonJS({
var crypto2 = __importStar2(require("crypto"));
var fs = __importStar2(require("fs"));
var path2 = __importStar2(require("path"));
var semver5 = __importStar2(require_semver3());
var semver6 = __importStar2(require_semver3());
var util = __importStar2(require("util"));
var constants_1 = require_constants7();
var versionSalt = "1.0";
@@ -57687,7 +57687,7 @@ var require_cacheUtils = __commonJS({
function getCompressionMethod() {
return __awaiter2(this, void 0, void 0, function* () {
const versionOutput = yield getVersion("zstd", ["--quiet"]);
const version = semver5.clean(versionOutput);
const version = semver6.clean(versionOutput);
core12.debug(`zstd version: ${version}`);
if (versionOutput === "") {
return constants_1.CompressionMethod.Gzip;
@@ -107549,7 +107549,7 @@ var PACK_IDENTIFIER_PATTERN = (function() {
})();
// src/feature-flags.ts
var semver4 = __toESM(require_semver2());
var semver5 = __toESM(require_semver2());
// src/overlay-database-utils.ts
var actionsCache = __toESM(require_cache4());
@@ -107558,6 +107558,7 @@ var actionsCache = __toESM(require_cache4());
var core9 = __toESM(require_core());
var toolrunner2 = __toESM(require_toolrunner());
var io3 = __toESM(require_io());
var semver3 = __toESM(require_semver2());
var runGitCommand = async function(workingDirectory, args, customErrorMessage) {
let stdout = "";
let stderr = "";
@@ -107652,7 +107653,7 @@ var OVERLAY_BASE_DATABASE_MAX_UPLOAD_SIZE_MB = 7500;
var OVERLAY_BASE_DATABASE_MAX_UPLOAD_SIZE_BYTES = OVERLAY_BASE_DATABASE_MAX_UPLOAD_SIZE_MB * 1e6;
// src/tools-features.ts
var semver3 = __toESM(require_semver2());
var semver4 = __toESM(require_semver2());
// src/feature-flags.ts
var featureConfig = {
+63 -62
View File
@@ -27424,8 +27424,8 @@ var require_gte = __commonJS({
"node_modules/semver/functions/gte.js"(exports2, module2) {
"use strict";
var compare3 = require_compare();
var gte5 = (a, b, loose) => compare3(a, b, loose) >= 0;
module2.exports = gte5;
var gte6 = (a, b, loose) => compare3(a, b, loose) >= 0;
module2.exports = gte6;
}
});
@@ -27446,7 +27446,7 @@ var require_cmp = __commonJS({
var eq = require_eq();
var neq = require_neq();
var gt = require_gt();
var gte5 = require_gte();
var gte6 = require_gte();
var lt = require_lt();
var lte = require_lte();
var cmp = (a, op, b, loose) => {
@@ -27476,7 +27476,7 @@ var require_cmp = __commonJS({
case ">":
return gt(a, b, loose);
case ">=":
return gte5(a, b, loose);
return gte6(a, b, loose);
case "<":
return lt(a, b, loose);
case "<=":
@@ -28235,7 +28235,7 @@ var require_outside = __commonJS({
var gt = require_gt();
var lt = require_lt();
var lte = require_lte();
var gte5 = require_gte();
var gte6 = require_gte();
var outside = (version, range, hilo, options) => {
version = new SemVer(version, options);
range = new Range2(range, options);
@@ -28250,7 +28250,7 @@ var require_outside = __commonJS({
break;
case "<":
gtfn = lt;
ltefn = gte5;
ltefn = gte6;
ltfn = gt;
comp = "<";
ecomp = "<=";
@@ -28565,7 +28565,7 @@ var require_semver2 = __commonJS({
var lt = require_lt();
var eq = require_eq();
var neq = require_neq();
var gte5 = require_gte();
var gte6 = require_gte();
var lte = require_lte();
var cmp = require_cmp();
var coerce3 = require_coerce();
@@ -28603,7 +28603,7 @@ var require_semver2 = __commonJS({
lt,
eq,
neq,
gte: gte5,
gte: gte6,
lte,
cmp,
coerce: coerce3,
@@ -33489,7 +33489,7 @@ var require_brace_expansion = __commonJS({
function lte(i, y) {
return i <= y;
}
function gte5(i, y) {
function gte6(i, y) {
return i >= y;
}
function expand(str2, isTop) {
@@ -33534,7 +33534,7 @@ var require_brace_expansion = __commonJS({
var reverse = y < x;
if (reverse) {
incr *= -1;
test = gte5;
test = gte6;
}
var pad = n.some(isPadded);
N = [];
@@ -35435,8 +35435,8 @@ var require_semver3 = __commonJS({
function neq(a, b, loose) {
return compare3(a, b, loose) !== 0;
}
exports2.gte = gte5;
function gte5(a, b, loose) {
exports2.gte = gte6;
function gte6(a, b, loose) {
return compare3(a, b, loose) >= 0;
}
exports2.lte = lte;
@@ -35467,7 +35467,7 @@ var require_semver3 = __commonJS({
case ">":
return gt(a, b, loose);
case ">=":
return gte5(a, b, loose);
return gte6(a, b, loose);
case "<":
return lt(a, b, loose);
case "<=":
@@ -36012,7 +36012,7 @@ var require_semver3 = __commonJS({
break;
case "<":
gtfn = lt;
ltefn = gte5;
ltefn = gte6;
ltfn = gt;
comp = "<";
ecomp = "<=";
@@ -36232,7 +36232,7 @@ var require_cacheUtils = __commonJS({
var crypto2 = __importStar2(require("crypto"));
var fs12 = __importStar2(require("fs"));
var path11 = __importStar2(require("path"));
var semver8 = __importStar2(require_semver3());
var semver9 = __importStar2(require_semver3());
var util = __importStar2(require("util"));
var constants_1 = require_constants7();
var versionSalt = "1.0";
@@ -36325,7 +36325,7 @@ var require_cacheUtils = __commonJS({
function getCompressionMethod() {
return __awaiter2(this, void 0, void 0, function* () {
const versionOutput = yield getVersion("zstd", ["--quiet"]);
const version = semver8.clean(versionOutput);
const version = semver9.clean(versionOutput);
core12.debug(`zstd version: ${version}`);
if (versionOutput === "") {
return constants_1.CompressionMethod.Gzip;
@@ -85918,7 +85918,7 @@ var require_manifest = __commonJS({
};
Object.defineProperty(exports2, "__esModule", { value: true });
exports2._readLinuxVersionFile = exports2._getOsVersion = exports2._findMatch = void 0;
var semver8 = __importStar2(require_semver2());
var semver9 = __importStar2(require_semver2());
var core_1 = require_core3();
var os2 = require("os");
var cp = require("child_process");
@@ -85932,7 +85932,7 @@ var require_manifest = __commonJS({
for (const candidate of candidates) {
const version = candidate.version;
(0, core_1.debug)(`check ${version} satisfies ${versionSpec}`);
if (semver8.satisfies(version, versionSpec) && (!stable || candidate.stable === stable)) {
if (semver9.satisfies(version, versionSpec) && (!stable || candidate.stable === stable)) {
file = candidate.files.find((item) => {
(0, core_1.debug)(`${item.arch}===${archFilter} && ${item.platform}===${platFilter}`);
let chk = item.arch === archFilter && item.platform === platFilter;
@@ -85941,7 +85941,7 @@ var require_manifest = __commonJS({
if (osVersion === item.platform_version) {
chk = true;
} else {
chk = semver8.satisfies(osVersion, item.platform_version);
chk = semver9.satisfies(osVersion, item.platform_version);
}
}
return chk;
@@ -86171,7 +86171,7 @@ var require_tool_cache = __commonJS({
var os2 = __importStar2(require("os"));
var path11 = __importStar2(require("path"));
var httpm = __importStar2(require_lib5());
var semver8 = __importStar2(require_semver2());
var semver9 = __importStar2(require_semver2());
var stream2 = __importStar2(require("stream"));
var util = __importStar2(require("util"));
var assert_1 = require("assert");
@@ -86445,7 +86445,7 @@ var require_tool_cache = __commonJS({
}
function cacheDir(sourceDir, tool, version, arch2) {
return __awaiter2(this, void 0, void 0, function* () {
version = semver8.clean(version) || version;
version = semver9.clean(version) || version;
arch2 = arch2 || os2.arch();
core12.debug(`Caching tool ${tool} ${version} ${arch2}`);
core12.debug(`source dir: ${sourceDir}`);
@@ -86464,7 +86464,7 @@ var require_tool_cache = __commonJS({
exports2.cacheDir = cacheDir;
function cacheFile(sourceFile, targetFile, tool, version, arch2) {
return __awaiter2(this, void 0, void 0, function* () {
version = semver8.clean(version) || version;
version = semver9.clean(version) || version;
arch2 = arch2 || os2.arch();
core12.debug(`Caching tool ${tool} ${version} ${arch2}`);
core12.debug(`source file: ${sourceFile}`);
@@ -86495,7 +86495,7 @@ var require_tool_cache = __commonJS({
}
let toolPath = "";
if (versionSpec) {
versionSpec = semver8.clean(versionSpec) || "";
versionSpec = semver9.clean(versionSpec) || "";
const cachePath = path11.join(_getCacheDirectory(), toolName, versionSpec, arch2);
core12.debug(`checking cache: ${cachePath}`);
if (fs12.existsSync(cachePath) && fs12.existsSync(`${cachePath}.complete`)) {
@@ -86579,7 +86579,7 @@ var require_tool_cache = __commonJS({
}
function _createToolPath(tool, version, arch2) {
return __awaiter2(this, void 0, void 0, function* () {
const folderPath = path11.join(_getCacheDirectory(), tool, semver8.clean(version) || version, arch2 || "");
const folderPath = path11.join(_getCacheDirectory(), tool, semver9.clean(version) || version, arch2 || "");
core12.debug(`destination ${folderPath}`);
const markerPath = `${folderPath}.complete`;
yield io6.rmRF(folderPath);
@@ -86589,15 +86589,15 @@ var require_tool_cache = __commonJS({
});
}
function _completeToolPath(tool, version, arch2) {
const folderPath = path11.join(_getCacheDirectory(), tool, semver8.clean(version) || version, arch2 || "");
const folderPath = path11.join(_getCacheDirectory(), tool, semver9.clean(version) || version, arch2 || "");
const markerPath = `${folderPath}.complete`;
fs12.writeFileSync(markerPath, "");
core12.debug("finished caching tool");
}
function isExplicitVersion(versionSpec) {
const c = semver8.clean(versionSpec) || "";
const c = semver9.clean(versionSpec) || "";
core12.debug(`isExplicit: ${c}`);
const valid3 = semver8.valid(c) != null;
const valid3 = semver9.valid(c) != null;
core12.debug(`explicit? ${valid3}`);
return valid3;
}
@@ -86606,14 +86606,14 @@ var require_tool_cache = __commonJS({
let version = "";
core12.debug(`evaluating ${versions.length} versions`);
versions = versions.sort((a, b) => {
if (semver8.gt(a, b)) {
if (semver9.gt(a, b)) {
return 1;
}
return -1;
});
for (let i = versions.length - 1; i >= 0; i--) {
const potential = versions[i];
const satisfied = semver8.satisfies(potential, versionSpec);
const satisfied = semver9.satisfies(potential, versionSpec);
if (satisfied) {
version = potential;
break;
@@ -93596,12 +93596,26 @@ var PACK_IDENTIFIER_PATTERN = (function() {
return new RegExp(`^${component}/${component}$`);
})();
// src/logging.ts
var core7 = __toESM(require_core());
function formatDuration(durationMs) {
if (durationMs < 1e3) {
return `${durationMs}ms`;
}
if (durationMs < 60 * 1e3) {
return `${(durationMs / 1e3).toFixed(1)}s`;
}
const minutes = Math.floor(durationMs / (60 * 1e3));
const seconds = Math.floor(durationMs % (60 * 1e3) / 1e3);
return `${minutes}m${seconds}s`;
}
// src/diff-informed-analysis-utils.ts
var fs4 = __toESM(require("fs"));
var path4 = __toESM(require("path"));
// src/feature-flags.ts
var semver4 = __toESM(require_semver2());
var semver5 = __toESM(require_semver2());
// src/defaults.json
var bundleVersion = "codeql-bundle-v2.23.8";
@@ -93613,13 +93627,14 @@ var path3 = __toESM(require("path"));
var actionsCache = __toESM(require_cache4());
// src/git-utils.ts
var core7 = __toESM(require_core());
var core8 = __toESM(require_core());
var toolrunner2 = __toESM(require_toolrunner());
var io3 = __toESM(require_io());
var semver3 = __toESM(require_semver2());
var runGitCommand = async function(workingDirectory, args, customErrorMessage) {
let stdout = "";
let stderr = "";
core7.debug(`Running git command: git ${args.join(" ")}`);
core8.debug(`Running git command: git ${args.join(" ")}`);
try {
await new toolrunner2.ToolRunner(await io3.which("git", true), args, {
silent: true,
@@ -93639,7 +93654,7 @@ var runGitCommand = async function(workingDirectory, args, customErrorMessage) {
if (stderr.includes("not a git repository")) {
reason = "The checkout path provided to the action does not appear to be a git repository.";
}
core7.info(`git call failed. ${customErrorMessage} Error: ${reason}`);
core8.info(`git call failed. ${customErrorMessage} Error: ${reason}`);
throw error3;
}
};
@@ -93784,7 +93799,7 @@ async function getRef() {
) !== head;
if (hasChangedRef) {
const newRef = ref.replace(pull_ref_regex, "refs/pull/$1/head");
core7.debug(
core8.debug(
`No longer on merge commit, rewriting ref from ${ref} to ${newRef}.`
);
return newRef;
@@ -93809,20 +93824,6 @@ async function isAnalyzingDefaultBranch() {
return currentRef === defaultBranch;
}
// src/logging.ts
var core8 = __toESM(require_core());
function formatDuration(durationMs) {
if (durationMs < 1e3) {
return `${durationMs}ms`;
}
if (durationMs < 60 * 1e3) {
return `${(durationMs / 1e3).toFixed(1)}s`;
}
const minutes = Math.floor(durationMs / (60 * 1e3));
const seconds = Math.floor(durationMs % (60 * 1e3) / 1e3);
return `${minutes}m${seconds}s`;
}
// src/overlay-database-utils.ts
var CODEQL_OVERLAY_MINIMUM_VERSION = "2.23.5";
var OVERLAY_BASE_DATABASE_MAX_UPLOAD_SIZE_MB = 7500;
@@ -93885,7 +93886,7 @@ function computeChangedFiles(baseFileOids, overlayFileOids) {
}
// src/tools-features.ts
var semver3 = __toESM(require_semver2());
var semver4 = __toESM(require_semver2());
function isSupportedToolsFeature(versionInfo, feature) {
return !!versionInfo.features && versionInfo.features[feature];
}
@@ -94184,7 +94185,7 @@ var fs8 = __toESM(require("fs"));
var path7 = __toESM(require("path"));
var toolcache3 = __toESM(require_tool_cache());
var import_fast_deep_equal = __toESM(require_fast_deep_equal());
var semver7 = __toESM(require_semver2());
var semver8 = __toESM(require_semver2());
// node_modules/uuid/dist-node/stringify.js
var byteToHex = [];
@@ -94247,7 +94248,7 @@ var stream = __toESM(require("stream"));
var import_toolrunner = __toESM(require_toolrunner());
var io4 = __toESM(require_io());
var toolcache = __toESM(require_tool_cache());
var semver5 = __toESM(require_semver2());
var semver6 = __toESM(require_semver2());
var MIN_REQUIRED_BSD_TAR_VERSION = "3.4.3";
var MIN_REQUIRED_GNU_TAR_VERSION = "1.31";
async function getTarVersion() {
@@ -94289,9 +94290,9 @@ async function isZstdAvailable(logger) {
case "gnu":
return {
available: foundZstdBinary && // GNU tar only uses major and minor version numbers
semver5.gte(
semver5.coerce(version),
semver5.coerce(MIN_REQUIRED_GNU_TAR_VERSION)
semver6.gte(
semver6.coerce(version),
semver6.coerce(MIN_REQUIRED_GNU_TAR_VERSION)
),
foundZstdBinary,
version: tarVersion
@@ -94300,7 +94301,7 @@ async function isZstdAvailable(logger) {
return {
available: foundZstdBinary && // Do a loose comparison since these version numbers don't contain
// a patch version number.
semver5.gte(version, MIN_REQUIRED_BSD_TAR_VERSION),
semver6.gte(version, MIN_REQUIRED_BSD_TAR_VERSION),
foundZstdBinary,
version: tarVersion
};
@@ -94407,7 +94408,7 @@ var core9 = __toESM(require_core());
var import_http_client = __toESM(require_lib());
var toolcache2 = __toESM(require_tool_cache());
var import_follow_redirects = __toESM(require_follow_redirects());
var semver6 = __toESM(require_semver2());
var semver7 = __toESM(require_semver2());
var STREAMING_HIGH_WATERMARK_BYTES = 4 * 1024 * 1024;
var TOOLCACHE_TOOL_NAME = "CodeQL";
function makeDownloadFirstToolsDownloadDurations(downloadDurationMs, extractionDurationMs) {
@@ -94537,7 +94538,7 @@ function getToolcacheDirectory(version) {
return path6.join(
getRequiredEnvParam("RUNNER_TOOL_CACHE"),
TOOLCACHE_TOOL_NAME,
semver6.clean(version) || version,
semver7.clean(version) || version,
os.arch() || ""
);
}
@@ -94662,13 +94663,13 @@ function tryGetTagNameFromUrl(url2, logger) {
return match[1];
}
function convertToSemVer(version, logger) {
if (!semver7.valid(version)) {
if (!semver8.valid(version)) {
logger.debug(
`Bundle version ${version} is not in SemVer format. Will treat it as pre-release 0.0.0-${version}.`
);
version = `0.0.0-${version}`;
}
const s = semver7.clean(version);
const s = semver8.clean(version);
if (!s) {
throw new Error(`Bundle version ${version} is not in SemVer format.`);
}
@@ -94776,7 +94777,7 @@ async function getCodeQLSource(toolsInput, defaultCliVersion, apiDetails, varian
url2 = toolsInput;
if (tagName) {
const bundleVersion3 = tryGetBundleVersionFromTagName(tagName, logger);
if (bundleVersion3 && semver7.valid(bundleVersion3)) {
if (bundleVersion3 && semver8.valid(bundleVersion3)) {
cliVersion2 = convertToSemVer(bundleVersion3, logger);
}
}
@@ -95047,7 +95048,7 @@ async function setupCodeQLBundle(toolsInput, apiDetails, tempDir, variant, defau
async function useZstdBundle(cliVersion2, tarSupportsZstd) {
return (
// In testing, gzip performs better than zstd on Windows.
process.platform !== "win32" && tarSupportsZstd && semver7.gte(cliVersion2, CODEQL_VERSION_ZSTD_BUNDLE)
process.platform !== "win32" && tarSupportsZstd && semver8.gte(cliVersion2, CODEQL_VERSION_ZSTD_BUNDLE)
);
}
function getTempExtractionDir(tempDir) {
@@ -95079,7 +95080,7 @@ async function getNightlyToolsUrl(logger) {
}
}
function getLatestToolcacheVersion(logger) {
const allVersions = toolcache3.findAllVersions("CodeQL").sort((a, b) => semver7.compare(b, a));
const allVersions = toolcache3.findAllVersions("CodeQL").sort((a, b) => semver8.compare(b, a));
logger.debug(
`Found the following versions of the CodeQL tools in the toolcache: ${JSON.stringify(
allVersions
+63 -62
View File
@@ -26127,8 +26127,8 @@ var require_gte = __commonJS({
"node_modules/semver/functions/gte.js"(exports2, module2) {
"use strict";
var compare2 = require_compare();
var gte5 = (a, b, loose) => compare2(a, b, loose) >= 0;
module2.exports = gte5;
var gte6 = (a, b, loose) => compare2(a, b, loose) >= 0;
module2.exports = gte6;
}
});
@@ -26149,7 +26149,7 @@ var require_cmp = __commonJS({
var eq = require_eq();
var neq = require_neq();
var gt = require_gt();
var gte5 = require_gte();
var gte6 = require_gte();
var lt = require_lt();
var lte = require_lte();
var cmp = (a, op, b, loose) => {
@@ -26179,7 +26179,7 @@ var require_cmp = __commonJS({
case ">":
return gt(a, b, loose);
case ">=":
return gte5(a, b, loose);
return gte6(a, b, loose);
case "<":
return lt(a, b, loose);
case "<=":
@@ -26938,7 +26938,7 @@ var require_outside = __commonJS({
var gt = require_gt();
var lt = require_lt();
var lte = require_lte();
var gte5 = require_gte();
var gte6 = require_gte();
var outside = (version, range, hilo, options) => {
version = new SemVer(version, options);
range = new Range2(range, options);
@@ -26953,7 +26953,7 @@ var require_outside = __commonJS({
break;
case "<":
gtfn = lt;
ltefn = gte5;
ltefn = gte6;
ltfn = gt;
comp = "<";
ecomp = "<=";
@@ -27268,7 +27268,7 @@ var require_semver2 = __commonJS({
var lt = require_lt();
var eq = require_eq();
var neq = require_neq();
var gte5 = require_gte();
var gte6 = require_gte();
var lte = require_lte();
var cmp = require_cmp();
var coerce3 = require_coerce();
@@ -27306,7 +27306,7 @@ var require_semver2 = __commonJS({
lt,
eq,
neq,
gte: gte5,
gte: gte6,
lte,
cmp,
coerce: coerce3,
@@ -75664,7 +75664,7 @@ var require_brace_expansion = __commonJS({
function lte(i, y) {
return i <= y;
}
function gte5(i, y) {
function gte6(i, y) {
return i >= y;
}
function expand(str2, isTop) {
@@ -75714,7 +75714,7 @@ var require_brace_expansion = __commonJS({
var reverse = y < x;
if (reverse) {
incr *= -1;
test = gte5;
test = gte6;
}
var pad = n.some(isPadded);
N = [];
@@ -89019,7 +89019,7 @@ var require_commonjs19 = __commonJS({
function lte(i, y) {
return i <= y;
}
function gte5(i, y) {
function gte6(i, y) {
return i >= y;
}
function expand_(str2, isTop) {
@@ -89068,7 +89068,7 @@ var require_commonjs19 = __commonJS({
const reverse = y < x;
if (reverse) {
incr *= -1;
test = gte5;
test = gte6;
}
const pad = n.some(isPadded);
N = [];
@@ -113426,7 +113426,7 @@ var require_brace_expansion2 = __commonJS({
function lte(i, y) {
return i <= y;
}
function gte5(i, y) {
function gte6(i, y) {
return i >= y;
}
function expand(str2, isTop) {
@@ -113471,7 +113471,7 @@ var require_brace_expansion2 = __commonJS({
var reverse = y < x;
if (reverse) {
incr *= -1;
test = gte5;
test = gte6;
}
var pad = n.some(isPadded);
N = [];
@@ -115372,8 +115372,8 @@ var require_semver3 = __commonJS({
function neq(a, b, loose) {
return compare2(a, b, loose) !== 0;
}
exports2.gte = gte5;
function gte5(a, b, loose) {
exports2.gte = gte6;
function gte6(a, b, loose) {
return compare2(a, b, loose) >= 0;
}
exports2.lte = lte;
@@ -115404,7 +115404,7 @@ var require_semver3 = __commonJS({
case ">":
return gt(a, b, loose);
case ">=":
return gte5(a, b, loose);
return gte6(a, b, loose);
case "<":
return lt(a, b, loose);
case "<=":
@@ -115949,7 +115949,7 @@ var require_semver3 = __commonJS({
break;
case "<":
gtfn = lt;
ltefn = gte5;
ltefn = gte6;
ltfn = gt;
comp = "<";
ecomp = "<=";
@@ -116169,7 +116169,7 @@ var require_cacheUtils = __commonJS({
var crypto2 = __importStar2(require("crypto"));
var fs3 = __importStar2(require("fs"));
var path3 = __importStar2(require("path"));
var semver8 = __importStar2(require_semver3());
var semver9 = __importStar2(require_semver3());
var util = __importStar2(require("util"));
var constants_1 = require_constants14();
var versionSalt = "1.0";
@@ -116262,7 +116262,7 @@ var require_cacheUtils = __commonJS({
function getCompressionMethod() {
return __awaiter2(this, void 0, void 0, function* () {
const versionOutput = yield getVersion("zstd", ["--quiet"]);
const version = semver8.clean(versionOutput);
const version = semver9.clean(versionOutput);
core14.debug(`zstd version: ${version}`);
if (versionOutput === "") {
return constants_1.CompressionMethod.Gzip;
@@ -122220,7 +122220,7 @@ var require_manifest = __commonJS({
};
Object.defineProperty(exports2, "__esModule", { value: true });
exports2._readLinuxVersionFile = exports2._getOsVersion = exports2._findMatch = void 0;
var semver8 = __importStar2(require_semver2());
var semver9 = __importStar2(require_semver2());
var core_1 = require_core5();
var os2 = require("os");
var cp = require("child_process");
@@ -122234,7 +122234,7 @@ var require_manifest = __commonJS({
for (const candidate of candidates) {
const version = candidate.version;
(0, core_1.debug)(`check ${version} satisfies ${versionSpec}`);
if (semver8.satisfies(version, versionSpec) && (!stable || candidate.stable === stable)) {
if (semver9.satisfies(version, versionSpec) && (!stable || candidate.stable === stable)) {
file = candidate.files.find((item) => {
(0, core_1.debug)(`${item.arch}===${archFilter} && ${item.platform}===${platFilter}`);
let chk = item.arch === archFilter && item.platform === platFilter;
@@ -122243,7 +122243,7 @@ var require_manifest = __commonJS({
if (osVersion === item.platform_version) {
chk = true;
} else {
chk = semver8.satisfies(osVersion, item.platform_version);
chk = semver9.satisfies(osVersion, item.platform_version);
}
}
return chk;
@@ -122473,7 +122473,7 @@ var require_tool_cache = __commonJS({
var os2 = __importStar2(require("os"));
var path3 = __importStar2(require("path"));
var httpm = __importStar2(require_lib7());
var semver8 = __importStar2(require_semver2());
var semver9 = __importStar2(require_semver2());
var stream = __importStar2(require("stream"));
var util = __importStar2(require("util"));
var assert_1 = require("assert");
@@ -122747,7 +122747,7 @@ var require_tool_cache = __commonJS({
}
function cacheDir(sourceDir, tool, version, arch) {
return __awaiter2(this, void 0, void 0, function* () {
version = semver8.clean(version) || version;
version = semver9.clean(version) || version;
arch = arch || os2.arch();
core14.debug(`Caching tool ${tool} ${version} ${arch}`);
core14.debug(`source dir: ${sourceDir}`);
@@ -122766,7 +122766,7 @@ var require_tool_cache = __commonJS({
exports2.cacheDir = cacheDir;
function cacheFile(sourceFile, targetFile, tool, version, arch) {
return __awaiter2(this, void 0, void 0, function* () {
version = semver8.clean(version) || version;
version = semver9.clean(version) || version;
arch = arch || os2.arch();
core14.debug(`Caching tool ${tool} ${version} ${arch}`);
core14.debug(`source file: ${sourceFile}`);
@@ -122797,7 +122797,7 @@ var require_tool_cache = __commonJS({
}
let toolPath = "";
if (versionSpec) {
versionSpec = semver8.clean(versionSpec) || "";
versionSpec = semver9.clean(versionSpec) || "";
const cachePath = path3.join(_getCacheDirectory(), toolName, versionSpec, arch);
core14.debug(`checking cache: ${cachePath}`);
if (fs3.existsSync(cachePath) && fs3.existsSync(`${cachePath}.complete`)) {
@@ -122881,7 +122881,7 @@ var require_tool_cache = __commonJS({
}
function _createToolPath(tool, version, arch) {
return __awaiter2(this, void 0, void 0, function* () {
const folderPath = path3.join(_getCacheDirectory(), tool, semver8.clean(version) || version, arch || "");
const folderPath = path3.join(_getCacheDirectory(), tool, semver9.clean(version) || version, arch || "");
core14.debug(`destination ${folderPath}`);
const markerPath = `${folderPath}.complete`;
yield io6.rmRF(folderPath);
@@ -122891,15 +122891,15 @@ var require_tool_cache = __commonJS({
});
}
function _completeToolPath(tool, version, arch) {
const folderPath = path3.join(_getCacheDirectory(), tool, semver8.clean(version) || version, arch || "");
const folderPath = path3.join(_getCacheDirectory(), tool, semver9.clean(version) || version, arch || "");
const markerPath = `${folderPath}.complete`;
fs3.writeFileSync(markerPath, "");
core14.debug("finished caching tool");
}
function isExplicitVersion(versionSpec) {
const c = semver8.clean(versionSpec) || "";
const c = semver9.clean(versionSpec) || "";
core14.debug(`isExplicit: ${c}`);
const valid3 = semver8.valid(c) != null;
const valid3 = semver9.valid(c) != null;
core14.debug(`explicit? ${valid3}`);
return valid3;
}
@@ -122908,14 +122908,14 @@ var require_tool_cache = __commonJS({
let version = "";
core14.debug(`evaluating ${versions.length} versions`);
versions = versions.sort((a, b) => {
if (semver8.gt(a, b)) {
if (semver9.gt(a, b)) {
return 1;
}
return -1;
});
for (let i = versions.length - 1; i >= 0; i--) {
const potential = versions[i];
const satisfied = semver8.satisfies(potential, versionSpec);
const satisfied = semver9.satisfies(potential, versionSpec);
if (satisfied) {
version = potential;
break;
@@ -126505,38 +126505,39 @@ var PACK_IDENTIFIER_PATTERN = (function() {
return new RegExp(`^${component}/${component}$`);
})();
// src/logging.ts
var core7 = __toESM(require_core());
function getActionsLogger() {
return {
debug: core7.debug,
info: core7.info,
warning: core7.warning,
error: core7.error,
isDebug: core7.isDebug,
startGroup: core7.startGroup,
endGroup: core7.endGroup
};
}
function withGroup(groupName, f) {
core7.startGroup(groupName);
try {
return f();
} finally {
core7.endGroup();
}
}
// src/feature-flags.ts
var semver4 = __toESM(require_semver2());
var semver5 = __toESM(require_semver2());
// src/overlay-database-utils.ts
var actionsCache = __toESM(require_cache4());
// src/git-utils.ts
var core7 = __toESM(require_core());
var core8 = __toESM(require_core());
var toolrunner2 = __toESM(require_toolrunner());
var io3 = __toESM(require_io());
// src/logging.ts
var core8 = __toESM(require_core());
function getActionsLogger() {
return {
debug: core8.debug,
info: core8.info,
warning: core8.warning,
error: core8.error,
isDebug: core8.isDebug,
startGroup: core8.startGroup,
endGroup: core8.endGroup
};
}
function withGroup(groupName, f) {
core8.startGroup(groupName);
try {
return f();
} finally {
core8.endGroup();
}
}
var semver3 = __toESM(require_semver2());
// src/overlay-database-utils.ts
var CODEQL_OVERLAY_MINIMUM_VERSION = "2.23.5";
@@ -126544,10 +126545,10 @@ var OVERLAY_BASE_DATABASE_MAX_UPLOAD_SIZE_MB = 7500;
var OVERLAY_BASE_DATABASE_MAX_UPLOAD_SIZE_BYTES = OVERLAY_BASE_DATABASE_MAX_UPLOAD_SIZE_MB * 1e6;
// src/tools-features.ts
var semver3 = __toESM(require_semver2());
var semver4 = __toESM(require_semver2());
var SafeArtifactUploadVersion = "2.20.3";
function isSafeArtifactUpload(codeQlVersion) {
return !codeQlVersion ? true : semver3.gte(codeQlVersion, SafeArtifactUploadVersion);
return !codeQlVersion ? true : semver4.gte(codeQlVersion, SafeArtifactUploadVersion);
}
// src/feature-flags.ts
@@ -126781,20 +126782,20 @@ var OVERLAY_ANALYSIS_CODE_SCANNING_FEATURES = {
// src/setup-codeql.ts
var toolcache3 = __toESM(require_tool_cache());
var import_fast_deep_equal = __toESM(require_fast_deep_equal());
var semver7 = __toESM(require_semver2());
var semver8 = __toESM(require_semver2());
// src/tar.ts
var import_toolrunner = __toESM(require_toolrunner());
var io4 = __toESM(require_io());
var toolcache = __toESM(require_tool_cache());
var semver5 = __toESM(require_semver2());
var semver6 = __toESM(require_semver2());
// src/tools-download.ts
var core9 = __toESM(require_core());
var import_http_client = __toESM(require_lib());
var toolcache2 = __toESM(require_tool_cache());
var import_follow_redirects = __toESM(require_follow_redirects());
var semver6 = __toESM(require_semver2());
var semver7 = __toESM(require_semver2());
var STREAMING_HIGH_WATERMARK_BYTES = 4 * 1024 * 1024;
// src/dependency-caching.ts
+47 -46
View File
@@ -26127,8 +26127,8 @@ var require_gte = __commonJS({
"node_modules/semver/functions/gte.js"(exports2, module2) {
"use strict";
var compare3 = require_compare();
var gte5 = (a, b, loose) => compare3(a, b, loose) >= 0;
module2.exports = gte5;
var gte6 = (a, b, loose) => compare3(a, b, loose) >= 0;
module2.exports = gte6;
}
});
@@ -26149,7 +26149,7 @@ var require_cmp = __commonJS({
var eq = require_eq();
var neq = require_neq();
var gt = require_gt();
var gte5 = require_gte();
var gte6 = require_gte();
var lt = require_lt();
var lte = require_lte();
var cmp = (a, op, b, loose) => {
@@ -26179,7 +26179,7 @@ var require_cmp = __commonJS({
case ">":
return gt(a, b, loose);
case ">=":
return gte5(a, b, loose);
return gte6(a, b, loose);
case "<":
return lt(a, b, loose);
case "<=":
@@ -26938,7 +26938,7 @@ var require_outside = __commonJS({
var gt = require_gt();
var lt = require_lt();
var lte = require_lte();
var gte5 = require_gte();
var gte6 = require_gte();
var outside = (version, range, hilo, options) => {
version = new SemVer(version, options);
range = new Range2(range, options);
@@ -26953,7 +26953,7 @@ var require_outside = __commonJS({
break;
case "<":
gtfn = lt;
ltefn = gte5;
ltefn = gte6;
ltfn = gt;
comp = "<";
ecomp = "<=";
@@ -27268,7 +27268,7 @@ var require_semver2 = __commonJS({
var lt = require_lt();
var eq = require_eq();
var neq = require_neq();
var gte5 = require_gte();
var gte6 = require_gte();
var lte = require_lte();
var cmp = require_cmp();
var coerce3 = require_coerce();
@@ -27306,7 +27306,7 @@ var require_semver2 = __commonJS({
lt,
eq,
neq,
gte: gte5,
gte: gte6,
lte,
cmp,
coerce: coerce3,
@@ -32192,7 +32192,7 @@ var require_brace_expansion = __commonJS({
function lte(i, y) {
return i <= y;
}
function gte5(i, y) {
function gte6(i, y) {
return i >= y;
}
function expand(str2, isTop) {
@@ -32237,7 +32237,7 @@ var require_brace_expansion = __commonJS({
var reverse = y < x;
if (reverse) {
incr *= -1;
test = gte5;
test = gte6;
}
var pad = n.some(isPadded);
N = [];
@@ -34138,8 +34138,8 @@ var require_semver3 = __commonJS({
function neq(a, b, loose) {
return compare3(a, b, loose) !== 0;
}
exports2.gte = gte5;
function gte5(a, b, loose) {
exports2.gte = gte6;
function gte6(a, b, loose) {
return compare3(a, b, loose) >= 0;
}
exports2.lte = lte;
@@ -34170,7 +34170,7 @@ var require_semver3 = __commonJS({
case ">":
return gt(a, b, loose);
case ">=":
return gte5(a, b, loose);
return gte6(a, b, loose);
case "<":
return lt(a, b, loose);
case "<=":
@@ -34715,7 +34715,7 @@ var require_semver3 = __commonJS({
break;
case "<":
gtfn = lt;
ltefn = gte5;
ltefn = gte6;
ltfn = gt;
comp = "<";
ecomp = "<=";
@@ -34935,7 +34935,7 @@ var require_cacheUtils = __commonJS({
var crypto2 = __importStar2(require("crypto"));
var fs13 = __importStar2(require("fs"));
var path12 = __importStar2(require("path"));
var semver8 = __importStar2(require_semver3());
var semver9 = __importStar2(require_semver3());
var util = __importStar2(require("util"));
var constants_1 = require_constants7();
var versionSalt = "1.0";
@@ -35028,7 +35028,7 @@ var require_cacheUtils = __commonJS({
function getCompressionMethod() {
return __awaiter2(this, void 0, void 0, function* () {
const versionOutput = yield getVersion("zstd", ["--quiet"]);
const version = semver8.clean(versionOutput);
const version = semver9.clean(versionOutput);
core14.debug(`zstd version: ${version}`);
if (versionOutput === "") {
return constants_1.CompressionMethod.Gzip;
@@ -85918,7 +85918,7 @@ var require_manifest = __commonJS({
};
Object.defineProperty(exports2, "__esModule", { value: true });
exports2._readLinuxVersionFile = exports2._getOsVersion = exports2._findMatch = void 0;
var semver8 = __importStar2(require_semver2());
var semver9 = __importStar2(require_semver2());
var core_1 = require_core3();
var os3 = require("os");
var cp = require("child_process");
@@ -85932,7 +85932,7 @@ var require_manifest = __commonJS({
for (const candidate of candidates) {
const version = candidate.version;
(0, core_1.debug)(`check ${version} satisfies ${versionSpec}`);
if (semver8.satisfies(version, versionSpec) && (!stable || candidate.stable === stable)) {
if (semver9.satisfies(version, versionSpec) && (!stable || candidate.stable === stable)) {
file = candidate.files.find((item) => {
(0, core_1.debug)(`${item.arch}===${archFilter} && ${item.platform}===${platFilter}`);
let chk = item.arch === archFilter && item.platform === platFilter;
@@ -85941,7 +85941,7 @@ var require_manifest = __commonJS({
if (osVersion === item.platform_version) {
chk = true;
} else {
chk = semver8.satisfies(osVersion, item.platform_version);
chk = semver9.satisfies(osVersion, item.platform_version);
}
}
return chk;
@@ -86171,7 +86171,7 @@ var require_tool_cache = __commonJS({
var os3 = __importStar2(require("os"));
var path12 = __importStar2(require("path"));
var httpm = __importStar2(require_lib5());
var semver8 = __importStar2(require_semver2());
var semver9 = __importStar2(require_semver2());
var stream2 = __importStar2(require("stream"));
var util = __importStar2(require("util"));
var assert_1 = require("assert");
@@ -86445,7 +86445,7 @@ var require_tool_cache = __commonJS({
}
function cacheDir(sourceDir, tool, version, arch2) {
return __awaiter2(this, void 0, void 0, function* () {
version = semver8.clean(version) || version;
version = semver9.clean(version) || version;
arch2 = arch2 || os3.arch();
core14.debug(`Caching tool ${tool} ${version} ${arch2}`);
core14.debug(`source dir: ${sourceDir}`);
@@ -86464,7 +86464,7 @@ var require_tool_cache = __commonJS({
exports2.cacheDir = cacheDir;
function cacheFile(sourceFile, targetFile, tool, version, arch2) {
return __awaiter2(this, void 0, void 0, function* () {
version = semver8.clean(version) || version;
version = semver9.clean(version) || version;
arch2 = arch2 || os3.arch();
core14.debug(`Caching tool ${tool} ${version} ${arch2}`);
core14.debug(`source file: ${sourceFile}`);
@@ -86495,7 +86495,7 @@ var require_tool_cache = __commonJS({
}
let toolPath = "";
if (versionSpec) {
versionSpec = semver8.clean(versionSpec) || "";
versionSpec = semver9.clean(versionSpec) || "";
const cachePath = path12.join(_getCacheDirectory(), toolName, versionSpec, arch2);
core14.debug(`checking cache: ${cachePath}`);
if (fs13.existsSync(cachePath) && fs13.existsSync(`${cachePath}.complete`)) {
@@ -86579,7 +86579,7 @@ var require_tool_cache = __commonJS({
}
function _createToolPath(tool, version, arch2) {
return __awaiter2(this, void 0, void 0, function* () {
const folderPath = path12.join(_getCacheDirectory(), tool, semver8.clean(version) || version, arch2 || "");
const folderPath = path12.join(_getCacheDirectory(), tool, semver9.clean(version) || version, arch2 || "");
core14.debug(`destination ${folderPath}`);
const markerPath = `${folderPath}.complete`;
yield io6.rmRF(folderPath);
@@ -86589,15 +86589,15 @@ var require_tool_cache = __commonJS({
});
}
function _completeToolPath(tool, version, arch2) {
const folderPath = path12.join(_getCacheDirectory(), tool, semver8.clean(version) || version, arch2 || "");
const folderPath = path12.join(_getCacheDirectory(), tool, semver9.clean(version) || version, arch2 || "");
const markerPath = `${folderPath}.complete`;
fs13.writeFileSync(markerPath, "");
core14.debug("finished caching tool");
}
function isExplicitVersion(versionSpec) {
const c = semver8.clean(versionSpec) || "";
const c = semver9.clean(versionSpec) || "";
core14.debug(`isExplicit: ${c}`);
const valid3 = semver8.valid(c) != null;
const valid3 = semver9.valid(c) != null;
core14.debug(`explicit? ${valid3}`);
return valid3;
}
@@ -86606,14 +86606,14 @@ var require_tool_cache = __commonJS({
let version = "";
core14.debug(`evaluating ${versions.length} versions`);
versions = versions.sort((a, b) => {
if (semver8.gt(a, b)) {
if (semver9.gt(a, b)) {
return 1;
}
return -1;
});
for (let i = versions.length - 1; i >= 0; i--) {
const potential = versions[i];
const satisfied = semver8.satisfies(potential, versionSpec);
const satisfied = semver9.satisfies(potential, versionSpec);
if (satisfied) {
version = potential;
break;
@@ -93382,7 +93382,7 @@ function wrapApiConfigurationError(e) {
// src/feature-flags.ts
var fs4 = __toESM(require("fs"));
var path4 = __toESM(require("path"));
var semver3 = __toESM(require_semver2());
var semver4 = __toESM(require_semver2());
// src/defaults.json
var bundleVersion = "codeql-bundle-v2.23.8";
@@ -93400,6 +93400,7 @@ var core6 = __toESM(require_core());
var core7 = __toESM(require_core());
var toolrunner2 = __toESM(require_toolrunner());
var io3 = __toESM(require_io());
var semver2 = __toESM(require_semver2());
var runGitCommand = async function(workingDirectory, args, customErrorMessage) {
let stdout = "";
let stderr = "";
@@ -93680,7 +93681,7 @@ function computeChangedFiles(baseFileOids, overlayFileOids) {
}
// src/tools-features.ts
var semver2 = __toESM(require_semver2());
var semver3 = __toESM(require_semver2());
function isSupportedToolsFeature(versionInfo, feature) {
return !!versionInfo.features && versionInfo.features[feature];
}
@@ -93989,7 +93990,7 @@ var GitHubFeatureFlags = class {
DEFAULT_VERSION_FEATURE_FLAG_PREFIX.length,
f.length - DEFAULT_VERSION_FEATURE_FLAG_SUFFIX.length
).replace(/_/g, ".");
if (!semver3.valid(version)) {
if (!semver4.valid(version)) {
this.logger.warning(
`Ignoring feature flag ${f} as it does not specify a valid CodeQL version.`
);
@@ -94162,7 +94163,7 @@ var path6 = __toESM(require("path"));
// src/config/db-config.ts
var jsonschema = __toESM(require_lib4());
var semver4 = __toESM(require_semver2());
var semver5 = __toESM(require_semver2());
var PACK_IDENTIFIER_PATTERN = (function() {
const alphaNumeric = "[a-z0-9]";
const alphaNumericDash = "[a-z0-9-]";
@@ -94705,7 +94706,7 @@ var fs9 = __toESM(require("fs"));
var path8 = __toESM(require("path"));
var toolcache3 = __toESM(require_tool_cache());
var import_fast_deep_equal = __toESM(require_fast_deep_equal());
var semver7 = __toESM(require_semver2());
var semver8 = __toESM(require_semver2());
// node_modules/uuid/dist-node/stringify.js
var byteToHex = [];
@@ -94768,7 +94769,7 @@ var stream = __toESM(require("stream"));
var import_toolrunner = __toESM(require_toolrunner());
var io4 = __toESM(require_io());
var toolcache = __toESM(require_tool_cache());
var semver5 = __toESM(require_semver2());
var semver6 = __toESM(require_semver2());
var MIN_REQUIRED_BSD_TAR_VERSION = "3.4.3";
var MIN_REQUIRED_GNU_TAR_VERSION = "1.31";
async function getTarVersion() {
@@ -94810,9 +94811,9 @@ async function isZstdAvailable(logger) {
case "gnu":
return {
available: foundZstdBinary && // GNU tar only uses major and minor version numbers
semver5.gte(
semver5.coerce(version),
semver5.coerce(MIN_REQUIRED_GNU_TAR_VERSION)
semver6.gte(
semver6.coerce(version),
semver6.coerce(MIN_REQUIRED_GNU_TAR_VERSION)
),
foundZstdBinary,
version: tarVersion
@@ -94821,7 +94822,7 @@ async function isZstdAvailable(logger) {
return {
available: foundZstdBinary && // Do a loose comparison since these version numbers don't contain
// a patch version number.
semver5.gte(version, MIN_REQUIRED_BSD_TAR_VERSION),
semver6.gte(version, MIN_REQUIRED_BSD_TAR_VERSION),
foundZstdBinary,
version: tarVersion
};
@@ -94928,7 +94929,7 @@ var core10 = __toESM(require_core());
var import_http_client = __toESM(require_lib());
var toolcache2 = __toESM(require_tool_cache());
var import_follow_redirects = __toESM(require_follow_redirects());
var semver6 = __toESM(require_semver2());
var semver7 = __toESM(require_semver2());
var STREAMING_HIGH_WATERMARK_BYTES = 4 * 1024 * 1024;
var TOOLCACHE_TOOL_NAME = "CodeQL";
function makeDownloadFirstToolsDownloadDurations(downloadDurationMs, extractionDurationMs) {
@@ -95058,7 +95059,7 @@ function getToolcacheDirectory(version) {
return path7.join(
getRequiredEnvParam("RUNNER_TOOL_CACHE"),
TOOLCACHE_TOOL_NAME,
semver6.clean(version) || version,
semver7.clean(version) || version,
os2.arch() || ""
);
}
@@ -95183,13 +95184,13 @@ function tryGetTagNameFromUrl(url2, logger) {
return match[1];
}
function convertToSemVer(version, logger) {
if (!semver7.valid(version)) {
if (!semver8.valid(version)) {
logger.debug(
`Bundle version ${version} is not in SemVer format. Will treat it as pre-release 0.0.0-${version}.`
);
version = `0.0.0-${version}`;
}
const s = semver7.clean(version);
const s = semver8.clean(version);
if (!s) {
throw new Error(`Bundle version ${version} is not in SemVer format.`);
}
@@ -95297,7 +95298,7 @@ async function getCodeQLSource(toolsInput, defaultCliVersion, apiDetails, varian
url2 = toolsInput;
if (tagName) {
const bundleVersion3 = tryGetBundleVersionFromTagName(tagName, logger);
if (bundleVersion3 && semver7.valid(bundleVersion3)) {
if (bundleVersion3 && semver8.valid(bundleVersion3)) {
cliVersion2 = convertToSemVer(bundleVersion3, logger);
}
}
@@ -95568,7 +95569,7 @@ async function setupCodeQLBundle(toolsInput, apiDetails, tempDir, variant, defau
async function useZstdBundle(cliVersion2, tarSupportsZstd) {
return (
// In testing, gzip performs better than zstd on Windows.
process.platform !== "win32" && tarSupportsZstd && semver7.gte(cliVersion2, CODEQL_VERSION_ZSTD_BUNDLE)
process.platform !== "win32" && tarSupportsZstd && semver8.gte(cliVersion2, CODEQL_VERSION_ZSTD_BUNDLE)
);
}
function getTempExtractionDir(tempDir) {
@@ -95600,7 +95601,7 @@ async function getNightlyToolsUrl(logger) {
}
}
function getLatestToolcacheVersion(logger) {
const allVersions = toolcache3.findAllVersions("CodeQL").sort((a, b) => semver7.compare(b, a));
const allVersions = toolcache3.findAllVersions("CodeQL").sort((a, b) => semver8.compare(b, a));
logger.debug(
`Found the following versions of the CodeQL tools in the toolcache: ${JSON.stringify(
allVersions
+1
View File
@@ -23,6 +23,7 @@ services:
- 3128:3128
env:
https_proxy: http://squid-proxy:3128
CODEQL_ACTION_TOLERATE_MISSING_GIT_VERSION: true
steps:
- uses: ./../action/init
with:
+33
View File
@@ -15,6 +15,7 @@ import * as configUtils from "./config-utils";
import * as errorMessages from "./error-messages";
import { Feature } from "./feature-flags";
import * as gitUtils from "./git-utils";
import { GitVersionInfo } from "./git-utils";
import { KnownLanguage, Language } from "./languages";
import { getRunnerLogger } from "./logging";
import {
@@ -978,6 +979,7 @@ interface OverlayDatabaseModeTestSetup {
languages: Language[];
codeqlVersion: string;
gitRoot: string | undefined;
gitVersion: GitVersionInfo | undefined;
codeScanningConfig: configUtils.UserConfig;
diskUsage: DiskUsage | undefined;
memoryFlagValue: number;
@@ -992,6 +994,10 @@ const defaultOverlayDatabaseModeTestSetup: OverlayDatabaseModeTestSetup = {
languages: [KnownLanguage.javascript],
codeqlVersion: CODEQL_OVERLAY_MINIMUM_VERSION,
gitRoot: "/some/git/root",
gitVersion: new GitVersionInfo(
gitUtils.GIT_MINIMUM_VERSION_FOR_OVERLAY,
gitUtils.GIT_MINIMUM_VERSION_FOR_OVERLAY,
),
codeScanningConfig: {},
diskUsage: {
numAvailableBytes: 50_000_000_000,
@@ -1070,6 +1076,7 @@ const getOverlayDatabaseModeMacro = test.macro({
setup.buildMode,
undefined,
setup.codeScanningConfig,
setup.gitVersion,
logger,
);
@@ -1773,6 +1780,32 @@ test(
},
);
test(
getOverlayDatabaseModeMacro,
"Fallback due to old git version",
{
overlayDatabaseEnvVar: "overlay",
gitVersion: new GitVersionInfo("2.30.0", "2.30.0"), // Version below required 2.38.0
},
{
overlayDatabaseMode: OverlayDatabaseMode.None,
useOverlayDatabaseCaching: false,
},
);
test(
getOverlayDatabaseModeMacro,
"Fallback when git version cannot be determined",
{
overlayDatabaseEnvVar: "overlay",
gitVersion: undefined,
},
{
overlayDatabaseMode: OverlayDatabaseMode.None,
useOverlayDatabaseCaching: false,
},
);
// Exercise language-specific overlay analysis features code paths
for (const language in KnownLanguage) {
test(
+70 -1
View File
@@ -22,11 +22,19 @@ import {
parseUserConfig,
UserConfig,
} from "./config/db-config";
import { addDiagnostic, makeTelemetryDiagnostic } from "./diagnostics";
import { shouldPerformDiffInformedAnalysis } from "./diff-informed-analysis-utils";
import { EnvVar } from "./environment";
import * as errorMessages from "./error-messages";
import { Feature, FeatureEnablement } from "./feature-flags";
import { RepositoryProperties } from "./feature-flags/properties";
import { getGitRoot, isAnalyzingDefaultBranch } from "./git-utils";
import {
getGitRoot,
getGitVersionOrThrow,
GIT_MINIMUM_VERSION_FOR_OVERLAY,
GitVersionInfo,
isAnalyzingDefaultBranch,
} from "./git-utils";
import { KnownLanguage, Language } from "./languages";
import { Logger } from "./logging";
import {
@@ -45,6 +53,8 @@ import {
isDefined,
checkDiskUsage,
getCodeQLMemoryLimit,
getErrorMessage,
isInTestMode,
} from "./util";
export * from "./config/db-config";
@@ -709,6 +719,7 @@ export async function getOverlayDatabaseMode(
buildMode: BuildMode | undefined,
ramInput: string | undefined,
codeScanningConfig: UserConfig,
gitVersion: GitVersionInfo | undefined,
logger: Logger,
): Promise<{
overlayDatabaseMode: OverlayDatabaseMode;
@@ -811,6 +822,22 @@ export async function getOverlayDatabaseMode(
);
return nonOverlayAnalysis;
}
if (gitVersion === undefined) {
logger.warning(
`Cannot build an ${overlayDatabaseMode} database because ` +
"the Git version could not be determined. " +
"Falling back to creating a normal full database instead.",
);
return nonOverlayAnalysis;
}
if (!gitVersion.isAtLeast(GIT_MINIMUM_VERSION_FOR_OVERLAY)) {
logger.warning(
`Cannot build an ${overlayDatabaseMode} database because ` +
`the installed Git version is older than ${GIT_MINIMUM_VERSION_FOR_OVERLAY}. ` +
"Falling back to creating a normal full database instead.",
);
return nonOverlayAnalysis;
}
return {
overlayDatabaseMode,
@@ -903,6 +930,24 @@ export async function initConfig(
config.computedConfig["query-filters"] = [];
}
let gitVersion: GitVersionInfo | undefined = undefined;
try {
gitVersion = await getGitVersionOrThrow();
logger.info(`Using Git version ${gitVersion.fullVersion}`);
await logGitVersionTelemetry(config, gitVersion);
} catch (e) {
logger.warning(`Could not determine Git version: ${getErrorMessage(e)}`);
// Throw the error in test mode so it's more visible, unless the environment
// variable is set to tolerate this, for example because we're running in a
// Docker container where git may not be available.
if (
isInTestMode() &&
process.env[EnvVar.TOLERATE_MISSING_GIT_VERSION] !== "true"
) {
throw e;
}
}
// The choice of overlay database mode depends on the selection of languages
// and queries, which in turn depends on the user config and the augmentation
// properties. So we need to calculate the overlay database mode after the
@@ -916,6 +961,7 @@ export async function initConfig(
config.buildMode,
inputs.ramInput,
config.computedConfig,
gitVersion,
logger,
);
logger.info(
@@ -1316,3 +1362,26 @@ export function getPrimaryAnalysisConfig(config: Config): AnalysisConfig {
? CodeScanning
: CodeQuality;
}
/** Logs the Git version as a telemetry diagnostic. */
async function logGitVersionTelemetry(
config: Config,
gitVersion: GitVersionInfo,
): Promise<void> {
if (config.languages.length > 0) {
addDiagnostic(
config,
// Arbitrarily choose the first language. We could also choose all languages, but that
// increases the risk of misinterpreting the data.
config.languages[0],
makeTelemetryDiagnostic(
"codeql-action/git-version-telemetry",
"Git version telemetry",
{
fullVersion: gitVersion.fullVersion,
truncatedVersion: gitVersion.truncatedVersion,
},
),
);
}
}
+24
View File
@@ -185,3 +185,27 @@ export function flushDiagnostics(config: Config) {
// Reset the unwritten diagnostics array.
unwrittenDiagnostics = [];
}
/**
* Creates a telemetry-only diagnostic message. This is a convenience function
* for creating diagnostics that should only be sent to telemetry and not
* displayed on the status page or CLI summary table.
*
* @param id An identifier under which it makes sense to group this diagnostic message
* @param name Display name
* @param attributes Structured metadata
*/
export function makeTelemetryDiagnostic(
id: string,
name: string,
attributes: { [key: string]: any },
): DiagnosticMessage {
return makeDiagnostic(id, name, {
attributes,
visibility: {
cliSummaryTable: false,
statusPage: false,
telemetry: true,
},
});
}
+6
View File
@@ -129,4 +129,10 @@ export enum EnvVar {
* the workflow is valid and validation is not necessary.
*/
SKIP_WORKFLOW_VALIDATION = "CODEQL_ACTION_SKIP_WORKFLOW_VALIDATION",
/**
* Whether to tolerate failure to determine the git version (only applicable in test mode).
* Intended for use in environments where git may not be installed, such as Docker containers.
*/
TOLERATE_MISSING_GIT_VERSION = "CODEQL_ACTION_TOLERATE_MISSING_GIT_VERSION",
}
+92 -49
View File
@@ -1,4 +1,5 @@
import * as fs from "fs";
import * as os from "os";
import * as path from "path";
import * as core from "@actions/core";
@@ -315,27 +316,23 @@ test("getFileOidsUnderPath returns correct file mapping", async (t) => {
"a47c11f5bfdca7661942d2c8f1b7209fb0dfdf96_src/git-utils.ts",
);
try {
const result = await gitUtils.getFileOidsUnderPath("/fake/path");
const result = await gitUtils.getFileOidsUnderPath("/fake/path");
t.deepEqual(result, {
"lib/git-utils.js": "30d998ded095371488be3a729eb61d86ed721a18",
"lib/git-utils.js.map": "d89514599a9a99f22b4085766d40af7b99974827",
"src/git-utils.ts": "a47c11f5bfdca7661942d2c8f1b7209fb0dfdf96",
});
t.deepEqual(result, {
"lib/git-utils.js": "30d998ded095371488be3a729eb61d86ed721a18",
"lib/git-utils.js.map": "d89514599a9a99f22b4085766d40af7b99974827",
"src/git-utils.ts": "a47c11f5bfdca7661942d2c8f1b7209fb0dfdf96",
});
t.deepEqual(runGitCommandStub.firstCall.args, [
"/fake/path",
["ls-files", "--recurse-submodules", "--format=%(objectname)_%(path)"],
"Cannot list Git OIDs of tracked files.",
]);
} finally {
runGitCommandStub.restore();
}
t.deepEqual(runGitCommandStub.firstCall.args, [
"/fake/path",
["ls-files", "--recurse-submodules", "--format=%(objectname)_%(path)"],
"Cannot list Git OIDs of tracked files.",
]);
});
test("getFileOidsUnderPath handles quoted paths", async (t) => {
const runGitCommandStub = sinon
sinon
.stub(gitUtils as any, "runGitCommand")
.resolves(
"30d998ded095371488be3a729eb61d86ed721a18_lib/normal-file.js\n" +
@@ -343,34 +340,24 @@ test("getFileOidsUnderPath handles quoted paths", async (t) => {
'a47c11f5bfdca7661942d2c8f1b7209fb0dfdf96_"lib/file\\twith\\ttabs.js"',
);
try {
const result = await gitUtils.getFileOidsUnderPath("/fake/path");
const result = await gitUtils.getFileOidsUnderPath("/fake/path");
t.deepEqual(result, {
"lib/normal-file.js": "30d998ded095371488be3a729eb61d86ed721a18",
"lib/file with spaces.js": "d89514599a9a99f22b4085766d40af7b99974827",
"lib/file\twith\ttabs.js": "a47c11f5bfdca7661942d2c8f1b7209fb0dfdf96",
});
} finally {
runGitCommandStub.restore();
}
t.deepEqual(result, {
"lib/normal-file.js": "30d998ded095371488be3a729eb61d86ed721a18",
"lib/file with spaces.js": "d89514599a9a99f22b4085766d40af7b99974827",
"lib/file\twith\ttabs.js": "a47c11f5bfdca7661942d2c8f1b7209fb0dfdf96",
});
});
test("getFileOidsUnderPath handles empty output", async (t) => {
const runGitCommandStub = sinon
.stub(gitUtils as any, "runGitCommand")
.resolves("");
sinon.stub(gitUtils as any, "runGitCommand").resolves("");
try {
const result = await gitUtils.getFileOidsUnderPath("/fake/path");
t.deepEqual(result, {});
} finally {
runGitCommandStub.restore();
}
const result = await gitUtils.getFileOidsUnderPath("/fake/path");
t.deepEqual(result, {});
});
test("getFileOidsUnderPath throws on unexpected output format", async (t) => {
const runGitCommandStub = sinon
sinon
.stub(gitUtils as any, "runGitCommand")
.resolves(
"30d998ded095371488be3a729eb61d86ed721a18_lib/git-utils.js\n" +
@@ -378,17 +365,73 @@ test("getFileOidsUnderPath throws on unexpected output format", async (t) => {
"a47c11f5bfdca7661942d2c8f1b7209fb0dfdf96_src/git-utils.ts",
);
try {
await t.throwsAsync(
async () => {
await gitUtils.getFileOidsUnderPath("/fake/path");
},
{
instanceOf: Error,
message: 'Unexpected "git ls-files" output: invalid-line-format',
},
);
} finally {
runGitCommandStub.restore();
}
await t.throwsAsync(
async () => {
await gitUtils.getFileOidsUnderPath("/fake/path");
},
{
instanceOf: Error,
message: 'Unexpected "git ls-files" output: invalid-line-format',
},
);
});
test("getGitVersionOrThrow returns version for valid git output", async (t) => {
sinon
.stub(gitUtils as any, "runGitCommand")
.resolves(`git version 2.40.0${os.EOL}`);
const version = await gitUtils.getGitVersionOrThrow();
t.is(version.truncatedVersion, "2.40.0");
t.is(version.fullVersion, "2.40.0");
});
test("getGitVersionOrThrow throws for invalid git output", async (t) => {
sinon.stub(gitUtils as any, "runGitCommand").resolves("invalid output");
await t.throwsAsync(
async () => {
await gitUtils.getGitVersionOrThrow();
},
{
instanceOf: Error,
message: "Could not parse Git version from output: invalid output",
},
);
});
test("getGitVersionOrThrow handles Windows-style git output", async (t) => {
sinon
.stub(gitUtils as any, "runGitCommand")
.resolves("git version 2.40.0.windows.1");
const version = await gitUtils.getGitVersionOrThrow();
// The truncated version should contain just the major.minor.patch portion
t.is(version.truncatedVersion, "2.40.0");
t.is(version.fullVersion, "2.40.0.windows.1");
});
test("getGitVersionOrThrow throws when git command fails", async (t) => {
sinon
.stub(gitUtils as any, "runGitCommand")
.rejects(new Error("git not found"));
await t.throwsAsync(
async () => {
await gitUtils.getGitVersionOrThrow();
},
{
instanceOf: Error,
message: "git not found",
},
);
});
test("GitVersionInfo.isAtLeast correctly compares versions", async (t) => {
const version = new gitUtils.GitVersionInfo("2.40.0", "2.40.0");
t.true(version.isAtLeast("2.38.0"));
t.true(version.isAtLeast("2.40.0"));
t.false(version.isAtLeast("2.41.0"));
t.false(version.isAtLeast("3.0.0"));
});
+47
View File
@@ -1,6 +1,7 @@
import * as core from "@actions/core";
import * as toolrunner from "@actions/exec/lib/toolrunner";
import * as io from "@actions/io";
import * as semver from "semver";
import {
getOptionalInput,
@@ -9,6 +10,52 @@ import {
} from "./actions-util";
import { ConfigurationError, getRequiredEnvParam } from "./util";
/**
* Minimum Git version required for overlay analysis. The `git ls-files --format`
* option, which is used by `getFileOidsUnderPath`, was introduced in Git 2.38.0.
*/
export const GIT_MINIMUM_VERSION_FOR_OVERLAY = "2.38.0";
/**
* Git version information
*
* The full version string as reported by `git --version` may not be
* semver-compatible (e.g., "2.40.0.windows.1"). This class captures both
* the full version string and a truncated semver-compatible version string
* (e.g., "2.40.0").
*/
export class GitVersionInfo {
constructor(
/** Truncated semver-compatible version */
public truncatedVersion: string,
/** Full version string as reported by `git --version` */
public fullVersion: string,
) {}
isAtLeast(minVersion: string): boolean {
return semver.gte(this.truncatedVersion, minVersion);
}
}
/**
* Gets the version of Git installed on the system and throws an error if
* the version cannot be determined.
*/
export async function getGitVersionOrThrow(): Promise<GitVersionInfo> {
const stdout = await runGitCommand(
undefined,
["--version"],
"Failed to get git version.",
);
// Git version output can vary: "git version 2.40.0" or "git version 2.40.0.windows.1"
// We capture just the major.minor.patch portion to ensure semver compatibility.
const match = stdout.trim().match(/^git version ((\d+\.\d+\.\d+).*)$/);
if (match?.[1] && match?.[2]) {
return new GitVersionInfo(match[2], match[1]);
}
throw new Error(`Could not parse Git version from output: ${stdout.trim()}`);
}
export const runGitCommand = async function (
workingDirectory: string | undefined,
args: string[],
+5 -18
View File
@@ -33,6 +33,7 @@ import {
flushDiagnostics,
logUnwrittenDiagnostics,
makeDiagnostic,
makeTelemetryDiagnostic,
} from "./diagnostics";
import { EnvVar } from "./environment";
import { Feature, Features } from "./feature-flags";
@@ -425,17 +426,10 @@ async function run() {
// Arbitrarily choose the first language. We could also choose all languages, but that
// increases the risk of misinterpreting the data.
config.languages[0],
makeDiagnostic(
makeTelemetryDiagnostic(
"codeql-action/bundle-download-telemetry",
"CodeQL bundle download telemetry",
{
attributes: toolsDownloadStatusReport,
visibility: {
cliSummaryTable: false,
statusPage: false,
telemetry: true,
},
},
toolsDownloadStatusReport,
),
);
}
@@ -794,17 +788,10 @@ async function recordZstdAvailability(
// Arbitrarily choose the first language. We could also choose all languages, but that
// increases the risk of misinterpreting the data.
config.languages[0],
makeDiagnostic(
makeTelemetryDiagnostic(
"codeql-action/zstd-availability",
"Zstandard availability",
{
attributes: zstdAvailability,
visibility: {
cliSummaryTable: false,
statusPage: false,
telemetry: true,
},
},
zstdAvailability,
),
);
}