mirror of
https://github.com/github/codeql-action.git
synced 2025-12-12 02:34:39 +08:00
Compare commits
13 Commits
codeql-bun
...
default-se
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c43362b91a | ||
|
|
002a7f25fd | ||
|
|
5b7e7fcc9c | ||
|
|
149d184a51 | ||
|
|
97c2630b10 | ||
|
|
b93926dc35 | ||
|
|
cf1bb45a27 | ||
|
|
f4ebe95061 | ||
|
|
f5c63fadd5 | ||
|
|
a2c01e776e | ||
|
|
ac34c13834 | ||
|
|
c4efbda299 | ||
|
|
dd8914320f |
@@ -6,6 +6,10 @@ See the [releases page](https://github.com/github/codeql-action/releases) for th
|
|||||||
|
|
||||||
No user facing changes.
|
No user facing changes.
|
||||||
|
|
||||||
|
## 4.31.7 - 05 Dec 2025
|
||||||
|
|
||||||
|
- Update default CodeQL bundle version to 2.23.7. [#3343](https://github.com/github/codeql-action/pull/3343)
|
||||||
|
|
||||||
## 4.31.6 - 01 Dec 2025
|
## 4.31.6 - 01 Dec 2025
|
||||||
|
|
||||||
No user facing changes.
|
No user facing changes.
|
||||||
|
|||||||
19
lib/analyze-action-post.js
generated
19
lib/analyze-action-post.js
generated
@@ -27627,7 +27627,7 @@ var require_package = __commonJS({
|
|||||||
"package.json"(exports2, module2) {
|
"package.json"(exports2, module2) {
|
||||||
module2.exports = {
|
module2.exports = {
|
||||||
name: "codeql",
|
name: "codeql",
|
||||||
version: "4.31.7",
|
version: "4.31.8",
|
||||||
private: true,
|
private: true,
|
||||||
description: "CodeQL action",
|
description: "CodeQL action",
|
||||||
scripts: {
|
scripts: {
|
||||||
@@ -120735,6 +120735,23 @@ ${output}`
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
async resolveDatabase(databasePath) {
|
||||||
|
const codeqlArgs = [
|
||||||
|
"resolve",
|
||||||
|
"database",
|
||||||
|
databasePath,
|
||||||
|
"--format=json",
|
||||||
|
...getExtraOptionsFromEnv(["resolve", "database"])
|
||||||
|
];
|
||||||
|
const output = await runCli(cmd, codeqlArgs, { noStreamStdout: true });
|
||||||
|
try {
|
||||||
|
return JSON.parse(output);
|
||||||
|
} catch (e) {
|
||||||
|
throw new Error(
|
||||||
|
`Unexpected output from codeql resolve database --format=json: ${e}`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
async mergeResults(sarifFiles, outputFile, {
|
async mergeResults(sarifFiles, outputFile, {
|
||||||
mergeRunsFromEqualCategory = false
|
mergeRunsFromEqualCategory = false
|
||||||
}) {
|
}) {
|
||||||
|
|||||||
45
lib/analyze-action.js
generated
45
lib/analyze-action.js
generated
@@ -27627,7 +27627,7 @@ var require_package = __commonJS({
|
|||||||
"package.json"(exports2, module2) {
|
"package.json"(exports2, module2) {
|
||||||
module2.exports = {
|
module2.exports = {
|
||||||
name: "codeql",
|
name: "codeql",
|
||||||
version: "4.31.7",
|
version: "4.31.8",
|
||||||
private: true,
|
private: true,
|
||||||
description: "CodeQL action",
|
description: "CodeQL action",
|
||||||
scripts: {
|
scripts: {
|
||||||
@@ -88211,8 +88211,8 @@ var path4 = __toESM(require("path"));
|
|||||||
var semver4 = __toESM(require_semver2());
|
var semver4 = __toESM(require_semver2());
|
||||||
|
|
||||||
// src/defaults.json
|
// src/defaults.json
|
||||||
var bundleVersion = "codeql-bundle-v2.23.6";
|
var bundleVersion = "codeql-bundle-v2.23.7";
|
||||||
var cliVersion = "2.23.6";
|
var cliVersion = "2.23.7";
|
||||||
|
|
||||||
// src/overlay-database-utils.ts
|
// src/overlay-database-utils.ts
|
||||||
var fs3 = __toESM(require("fs"));
|
var fs3 = __toESM(require("fs"));
|
||||||
@@ -88512,7 +88512,7 @@ function computeChangedFiles(baseFileOids, overlayFileOids) {
|
|||||||
var CACHE_VERSION = 1;
|
var CACHE_VERSION = 1;
|
||||||
var CACHE_PREFIX = "codeql-overlay-base-database";
|
var CACHE_PREFIX = "codeql-overlay-base-database";
|
||||||
var MAX_CACHE_OPERATION_MS = 6e5;
|
var MAX_CACHE_OPERATION_MS = 6e5;
|
||||||
function checkOverlayBaseDatabase(config, logger, warningPrefix) {
|
async function checkOverlayBaseDatabase(codeql, config, logger, warningPrefix) {
|
||||||
const baseDatabaseOidsFilePath = getBaseDatabaseOidsFilePath(config);
|
const baseDatabaseOidsFilePath = getBaseDatabaseOidsFilePath(config);
|
||||||
if (!fs3.existsSync(baseDatabaseOidsFilePath)) {
|
if (!fs3.existsSync(baseDatabaseOidsFilePath)) {
|
||||||
logger.warning(
|
logger.warning(
|
||||||
@@ -88520,6 +88520,23 @@ function checkOverlayBaseDatabase(config, logger, warningPrefix) {
|
|||||||
);
|
);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
for (const language of config.languages) {
|
||||||
|
const dbPath = getCodeQLDatabasePath(config, language);
|
||||||
|
try {
|
||||||
|
const resolveDatabaseOutput = await codeql.resolveDatabase(dbPath);
|
||||||
|
if (resolveDatabaseOutput === void 0 || !("overlayBaseSpecifier" in resolveDatabaseOutput)) {
|
||||||
|
logger.info(`${warningPrefix}: no overlayBaseSpecifier defined`);
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
logger.debug(
|
||||||
|
`Overlay base specifier for ${language} overlay-base database found: ${resolveDatabaseOutput.overlayBaseSpecifier}`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
logger.warning(`${warningPrefix}: failed to resolve database: ${e}`);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
async function cleanupAndUploadOverlayBaseDatabaseToCache(codeql, config, logger) {
|
async function cleanupAndUploadOverlayBaseDatabaseToCache(codeql, config, logger) {
|
||||||
@@ -88542,7 +88559,8 @@ async function cleanupAndUploadOverlayBaseDatabaseToCache(codeql, config, logger
|
|||||||
);
|
);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
const databaseIsValid = checkOverlayBaseDatabase(
|
const databaseIsValid = await checkOverlayBaseDatabase(
|
||||||
|
codeql,
|
||||||
config,
|
config,
|
||||||
logger,
|
logger,
|
||||||
"Abort uploading overlay-base database to cache"
|
"Abort uploading overlay-base database to cache"
|
||||||
@@ -90887,6 +90905,23 @@ ${output}`
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
async resolveDatabase(databasePath) {
|
||||||
|
const codeqlArgs = [
|
||||||
|
"resolve",
|
||||||
|
"database",
|
||||||
|
databasePath,
|
||||||
|
"--format=json",
|
||||||
|
...getExtraOptionsFromEnv(["resolve", "database"])
|
||||||
|
];
|
||||||
|
const output = await runCli(cmd, codeqlArgs, { noStreamStdout: true });
|
||||||
|
try {
|
||||||
|
return JSON.parse(output);
|
||||||
|
} catch (e) {
|
||||||
|
throw new Error(
|
||||||
|
`Unexpected output from codeql resolve database --format=json: ${e}`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
async mergeResults(sarifFiles, outputFile, {
|
async mergeResults(sarifFiles, outputFile, {
|
||||||
mergeRunsFromEqualCategory = false
|
mergeRunsFromEqualCategory = false
|
||||||
}) {
|
}) {
|
||||||
|
|||||||
23
lib/autobuild-action.js
generated
23
lib/autobuild-action.js
generated
@@ -27627,7 +27627,7 @@ var require_package = __commonJS({
|
|||||||
"package.json"(exports2, module2) {
|
"package.json"(exports2, module2) {
|
||||||
module2.exports = {
|
module2.exports = {
|
||||||
name: "codeql",
|
name: "codeql",
|
||||||
version: "4.31.7",
|
version: "4.31.8",
|
||||||
private: true,
|
private: true,
|
||||||
description: "CodeQL action",
|
description: "CodeQL action",
|
||||||
scripts: {
|
scripts: {
|
||||||
@@ -83701,8 +83701,8 @@ var path3 = __toESM(require("path"));
|
|||||||
var semver4 = __toESM(require_semver2());
|
var semver4 = __toESM(require_semver2());
|
||||||
|
|
||||||
// src/defaults.json
|
// src/defaults.json
|
||||||
var bundleVersion = "codeql-bundle-v2.23.6";
|
var bundleVersion = "codeql-bundle-v2.23.7";
|
||||||
var cliVersion = "2.23.6";
|
var cliVersion = "2.23.7";
|
||||||
|
|
||||||
// src/overlay-database-utils.ts
|
// src/overlay-database-utils.ts
|
||||||
var fs2 = __toESM(require("fs"));
|
var fs2 = __toESM(require("fs"));
|
||||||
@@ -84973,6 +84973,23 @@ ${output}`
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
async resolveDatabase(databasePath) {
|
||||||
|
const codeqlArgs = [
|
||||||
|
"resolve",
|
||||||
|
"database",
|
||||||
|
databasePath,
|
||||||
|
"--format=json",
|
||||||
|
...getExtraOptionsFromEnv(["resolve", "database"])
|
||||||
|
];
|
||||||
|
const output = await runCli(cmd, codeqlArgs, { noStreamStdout: true });
|
||||||
|
try {
|
||||||
|
return JSON.parse(output);
|
||||||
|
} catch (e) {
|
||||||
|
throw new Error(
|
||||||
|
`Unexpected output from codeql resolve database --format=json: ${e}`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
async mergeResults(sarifFiles, outputFile, {
|
async mergeResults(sarifFiles, outputFile, {
|
||||||
mergeRunsFromEqualCategory = false
|
mergeRunsFromEqualCategory = false
|
||||||
}) {
|
}) {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"bundleVersion": "codeql-bundle-v2.23.6",
|
"bundleVersion": "codeql-bundle-v2.23.7",
|
||||||
"cliVersion": "2.23.6",
|
"cliVersion": "2.23.7",
|
||||||
"priorBundleVersion": "codeql-bundle-v2.23.5",
|
"priorBundleVersion": "codeql-bundle-v2.23.6",
|
||||||
"priorCliVersion": "2.23.5"
|
"priorCliVersion": "2.23.6"
|
||||||
}
|
}
|
||||||
|
|||||||
23
lib/init-action-post.js
generated
23
lib/init-action-post.js
generated
@@ -27627,7 +27627,7 @@ var require_package = __commonJS({
|
|||||||
"package.json"(exports2, module2) {
|
"package.json"(exports2, module2) {
|
||||||
module2.exports = {
|
module2.exports = {
|
||||||
name: "codeql",
|
name: "codeql",
|
||||||
version: "4.31.7",
|
version: "4.31.8",
|
||||||
private: true,
|
private: true,
|
||||||
description: "CodeQL action",
|
description: "CodeQL action",
|
||||||
scripts: {
|
scripts: {
|
||||||
@@ -123084,8 +123084,8 @@ var path4 = __toESM(require("path"));
|
|||||||
var semver4 = __toESM(require_semver2());
|
var semver4 = __toESM(require_semver2());
|
||||||
|
|
||||||
// src/defaults.json
|
// src/defaults.json
|
||||||
var bundleVersion = "codeql-bundle-v2.23.6";
|
var bundleVersion = "codeql-bundle-v2.23.7";
|
||||||
var cliVersion = "2.23.6";
|
var cliVersion = "2.23.7";
|
||||||
|
|
||||||
// src/overlay-database-utils.ts
|
// src/overlay-database-utils.ts
|
||||||
var fs3 = __toESM(require("fs"));
|
var fs3 = __toESM(require("fs"));
|
||||||
@@ -125350,6 +125350,23 @@ ${output}`
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
async resolveDatabase(databasePath) {
|
||||||
|
const codeqlArgs = [
|
||||||
|
"resolve",
|
||||||
|
"database",
|
||||||
|
databasePath,
|
||||||
|
"--format=json",
|
||||||
|
...getExtraOptionsFromEnv(["resolve", "database"])
|
||||||
|
];
|
||||||
|
const output = await runCli(cmd, codeqlArgs, { noStreamStdout: true });
|
||||||
|
try {
|
||||||
|
return JSON.parse(output);
|
||||||
|
} catch (e) {
|
||||||
|
throw new Error(
|
||||||
|
`Unexpected output from codeql resolve database --format=json: ${e}`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
async mergeResults(sarifFiles, outputFile, {
|
async mergeResults(sarifFiles, outputFile, {
|
||||||
mergeRunsFromEqualCategory = false
|
mergeRunsFromEqualCategory = false
|
||||||
}) {
|
}) {
|
||||||
|
|||||||
45
lib/init-action.js
generated
45
lib/init-action.js
generated
@@ -27627,7 +27627,7 @@ var require_package = __commonJS({
|
|||||||
"package.json"(exports2, module2) {
|
"package.json"(exports2, module2) {
|
||||||
module2.exports = {
|
module2.exports = {
|
||||||
name: "codeql",
|
name: "codeql",
|
||||||
version: "4.31.7",
|
version: "4.31.8",
|
||||||
private: true,
|
private: true,
|
||||||
description: "CodeQL action",
|
description: "CodeQL action",
|
||||||
scripts: {
|
scripts: {
|
||||||
@@ -85635,8 +85635,8 @@ var path5 = __toESM(require("path"));
|
|||||||
var semver4 = __toESM(require_semver2());
|
var semver4 = __toESM(require_semver2());
|
||||||
|
|
||||||
// src/defaults.json
|
// src/defaults.json
|
||||||
var bundleVersion = "codeql-bundle-v2.23.6";
|
var bundleVersion = "codeql-bundle-v2.23.7";
|
||||||
var cliVersion = "2.23.6";
|
var cliVersion = "2.23.7";
|
||||||
|
|
||||||
// src/overlay-database-utils.ts
|
// src/overlay-database-utils.ts
|
||||||
var fs3 = __toESM(require("fs"));
|
var fs3 = __toESM(require("fs"));
|
||||||
@@ -85914,7 +85914,7 @@ function computeChangedFiles(baseFileOids, overlayFileOids) {
|
|||||||
var CACHE_VERSION = 1;
|
var CACHE_VERSION = 1;
|
||||||
var CACHE_PREFIX = "codeql-overlay-base-database";
|
var CACHE_PREFIX = "codeql-overlay-base-database";
|
||||||
var MAX_CACHE_OPERATION_MS = 6e5;
|
var MAX_CACHE_OPERATION_MS = 6e5;
|
||||||
function checkOverlayBaseDatabase(config, logger, warningPrefix) {
|
async function checkOverlayBaseDatabase(codeql, config, logger, warningPrefix) {
|
||||||
const baseDatabaseOidsFilePath = getBaseDatabaseOidsFilePath(config);
|
const baseDatabaseOidsFilePath = getBaseDatabaseOidsFilePath(config);
|
||||||
if (!fs3.existsSync(baseDatabaseOidsFilePath)) {
|
if (!fs3.existsSync(baseDatabaseOidsFilePath)) {
|
||||||
logger.warning(
|
logger.warning(
|
||||||
@@ -85922,6 +85922,23 @@ function checkOverlayBaseDatabase(config, logger, warningPrefix) {
|
|||||||
);
|
);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
for (const language of config.languages) {
|
||||||
|
const dbPath = getCodeQLDatabasePath(config, language);
|
||||||
|
try {
|
||||||
|
const resolveDatabaseOutput = await codeql.resolveDatabase(dbPath);
|
||||||
|
if (resolveDatabaseOutput === void 0 || !("overlayBaseSpecifier" in resolveDatabaseOutput)) {
|
||||||
|
logger.info(`${warningPrefix}: no overlayBaseSpecifier defined`);
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
logger.debug(
|
||||||
|
`Overlay base specifier for ${language} overlay-base database found: ${resolveDatabaseOutput.overlayBaseSpecifier}`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
logger.warning(`${warningPrefix}: failed to resolve database: ${e}`);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
async function downloadOverlayBaseDatabaseFromCache(codeql, config, logger) {
|
async function downloadOverlayBaseDatabaseFromCache(codeql, config, logger) {
|
||||||
@@ -86009,7 +86026,8 @@ async function downloadOverlayBaseDatabaseFromCache(codeql, config, logger) {
|
|||||||
);
|
);
|
||||||
return void 0;
|
return void 0;
|
||||||
}
|
}
|
||||||
const databaseIsValid = checkOverlayBaseDatabase(
|
const databaseIsValid = await checkOverlayBaseDatabase(
|
||||||
|
codeql,
|
||||||
config,
|
config,
|
||||||
logger,
|
logger,
|
||||||
"Downloaded overlay-base database is invalid"
|
"Downloaded overlay-base database is invalid"
|
||||||
@@ -89147,6 +89165,23 @@ ${output}`
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
async resolveDatabase(databasePath) {
|
||||||
|
const codeqlArgs = [
|
||||||
|
"resolve",
|
||||||
|
"database",
|
||||||
|
databasePath,
|
||||||
|
"--format=json",
|
||||||
|
...getExtraOptionsFromEnv(["resolve", "database"])
|
||||||
|
];
|
||||||
|
const output = await runCli(cmd, codeqlArgs, { noStreamStdout: true });
|
||||||
|
try {
|
||||||
|
return JSON.parse(output);
|
||||||
|
} catch (e) {
|
||||||
|
throw new Error(
|
||||||
|
`Unexpected output from codeql resolve database --format=json: ${e}`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
async mergeResults(sarifFiles, outputFile, {
|
async mergeResults(sarifFiles, outputFile, {
|
||||||
mergeRunsFromEqualCategory = false
|
mergeRunsFromEqualCategory = false
|
||||||
}) {
|
}) {
|
||||||
|
|||||||
19
lib/resolve-environment-action.js
generated
19
lib/resolve-environment-action.js
generated
@@ -27627,7 +27627,7 @@ var require_package = __commonJS({
|
|||||||
"package.json"(exports2, module2) {
|
"package.json"(exports2, module2) {
|
||||||
module2.exports = {
|
module2.exports = {
|
||||||
name: "codeql",
|
name: "codeql",
|
||||||
version: "4.31.7",
|
version: "4.31.8",
|
||||||
private: true,
|
private: true,
|
||||||
description: "CodeQL action",
|
description: "CodeQL action",
|
||||||
scripts: {
|
scripts: {
|
||||||
@@ -84672,6 +84672,23 @@ ${output}`
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
async resolveDatabase(databasePath) {
|
||||||
|
const codeqlArgs = [
|
||||||
|
"resolve",
|
||||||
|
"database",
|
||||||
|
databasePath,
|
||||||
|
"--format=json",
|
||||||
|
...getExtraOptionsFromEnv(["resolve", "database"])
|
||||||
|
];
|
||||||
|
const output = await runCli(cmd, codeqlArgs, { noStreamStdout: true });
|
||||||
|
try {
|
||||||
|
return JSON.parse(output);
|
||||||
|
} catch (e) {
|
||||||
|
throw new Error(
|
||||||
|
`Unexpected output from codeql resolve database --format=json: ${e}`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
async mergeResults(sarifFiles, outputFile, {
|
async mergeResults(sarifFiles, outputFile, {
|
||||||
mergeRunsFromEqualCategory = false
|
mergeRunsFromEqualCategory = false
|
||||||
}) {
|
}) {
|
||||||
|
|||||||
23
lib/setup-codeql-action.js
generated
23
lib/setup-codeql-action.js
generated
@@ -27627,7 +27627,7 @@ var require_package = __commonJS({
|
|||||||
"package.json"(exports2, module2) {
|
"package.json"(exports2, module2) {
|
||||||
module2.exports = {
|
module2.exports = {
|
||||||
name: "codeql",
|
name: "codeql",
|
||||||
version: "4.31.7",
|
version: "4.31.8",
|
||||||
private: true,
|
private: true,
|
||||||
description: "CodeQL action",
|
description: "CodeQL action",
|
||||||
scripts: {
|
scripts: {
|
||||||
@@ -83589,8 +83589,8 @@ var path4 = __toESM(require("path"));
|
|||||||
var semver3 = __toESM(require_semver2());
|
var semver3 = __toESM(require_semver2());
|
||||||
|
|
||||||
// src/defaults.json
|
// src/defaults.json
|
||||||
var bundleVersion = "codeql-bundle-v2.23.6";
|
var bundleVersion = "codeql-bundle-v2.23.7";
|
||||||
var cliVersion = "2.23.6";
|
var cliVersion = "2.23.7";
|
||||||
|
|
||||||
// src/overlay-database-utils.ts
|
// src/overlay-database-utils.ts
|
||||||
var fs3 = __toESM(require("fs"));
|
var fs3 = __toESM(require("fs"));
|
||||||
@@ -85975,6 +85975,23 @@ ${output}`
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
async resolveDatabase(databasePath) {
|
||||||
|
const codeqlArgs = [
|
||||||
|
"resolve",
|
||||||
|
"database",
|
||||||
|
databasePath,
|
||||||
|
"--format=json",
|
||||||
|
...getExtraOptionsFromEnv(["resolve", "database"])
|
||||||
|
];
|
||||||
|
const output = await runCli(cmd, codeqlArgs, { noStreamStdout: true });
|
||||||
|
try {
|
||||||
|
return JSON.parse(output);
|
||||||
|
} catch (e) {
|
||||||
|
throw new Error(
|
||||||
|
`Unexpected output from codeql resolve database --format=json: ${e}`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
async mergeResults(sarifFiles, outputFile, {
|
async mergeResults(sarifFiles, outputFile, {
|
||||||
mergeRunsFromEqualCategory = false
|
mergeRunsFromEqualCategory = false
|
||||||
}) {
|
}) {
|
||||||
|
|||||||
2
lib/start-proxy-action-post.js
generated
2
lib/start-proxy-action-post.js
generated
@@ -27627,7 +27627,7 @@ var require_package = __commonJS({
|
|||||||
"package.json"(exports2, module2) {
|
"package.json"(exports2, module2) {
|
||||||
module2.exports = {
|
module2.exports = {
|
||||||
name: "codeql",
|
name: "codeql",
|
||||||
version: "4.31.7",
|
version: "4.31.8",
|
||||||
private: true,
|
private: true,
|
||||||
description: "CodeQL action",
|
description: "CodeQL action",
|
||||||
scripts: {
|
scripts: {
|
||||||
|
|||||||
6
lib/start-proxy-action.js
generated
6
lib/start-proxy-action.js
generated
@@ -47321,7 +47321,7 @@ var require_package = __commonJS({
|
|||||||
"package.json"(exports2, module2) {
|
"package.json"(exports2, module2) {
|
||||||
module2.exports = {
|
module2.exports = {
|
||||||
name: "codeql",
|
name: "codeql",
|
||||||
version: "4.31.7",
|
version: "4.31.8",
|
||||||
private: true,
|
private: true,
|
||||||
description: "CodeQL action",
|
description: "CodeQL action",
|
||||||
scripts: {
|
scripts: {
|
||||||
@@ -99720,8 +99720,8 @@ function getActionsLogger() {
|
|||||||
var core7 = __toESM(require_core());
|
var core7 = __toESM(require_core());
|
||||||
|
|
||||||
// src/defaults.json
|
// src/defaults.json
|
||||||
var bundleVersion = "codeql-bundle-v2.23.6";
|
var bundleVersion = "codeql-bundle-v2.23.7";
|
||||||
var cliVersion = "2.23.6";
|
var cliVersion = "2.23.7";
|
||||||
|
|
||||||
// src/languages.ts
|
// src/languages.ts
|
||||||
var KnownLanguage = /* @__PURE__ */ ((KnownLanguage2) => {
|
var KnownLanguage = /* @__PURE__ */ ((KnownLanguage2) => {
|
||||||
|
|||||||
23
lib/upload-lib.js
generated
23
lib/upload-lib.js
generated
@@ -28924,7 +28924,7 @@ var require_package = __commonJS({
|
|||||||
"package.json"(exports2, module2) {
|
"package.json"(exports2, module2) {
|
||||||
module2.exports = {
|
module2.exports = {
|
||||||
name: "codeql",
|
name: "codeql",
|
||||||
version: "4.31.7",
|
version: "4.31.8",
|
||||||
private: true,
|
private: true,
|
||||||
description: "CodeQL action",
|
description: "CodeQL action",
|
||||||
scripts: {
|
scripts: {
|
||||||
@@ -86724,8 +86724,8 @@ var path4 = __toESM(require("path"));
|
|||||||
var semver4 = __toESM(require_semver2());
|
var semver4 = __toESM(require_semver2());
|
||||||
|
|
||||||
// src/defaults.json
|
// src/defaults.json
|
||||||
var bundleVersion = "codeql-bundle-v2.23.6";
|
var bundleVersion = "codeql-bundle-v2.23.7";
|
||||||
var cliVersion = "2.23.6";
|
var cliVersion = "2.23.7";
|
||||||
|
|
||||||
// src/overlay-database-utils.ts
|
// src/overlay-database-utils.ts
|
||||||
var fs3 = __toESM(require("fs"));
|
var fs3 = __toESM(require("fs"));
|
||||||
@@ -88697,6 +88697,23 @@ ${output}`
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
async resolveDatabase(databasePath) {
|
||||||
|
const codeqlArgs = [
|
||||||
|
"resolve",
|
||||||
|
"database",
|
||||||
|
databasePath,
|
||||||
|
"--format=json",
|
||||||
|
...getExtraOptionsFromEnv(["resolve", "database"])
|
||||||
|
];
|
||||||
|
const output = await runCli(cmd, codeqlArgs, { noStreamStdout: true });
|
||||||
|
try {
|
||||||
|
return JSON.parse(output);
|
||||||
|
} catch (e) {
|
||||||
|
throw new Error(
|
||||||
|
`Unexpected output from codeql resolve database --format=json: ${e}`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
async mergeResults(sarifFiles, outputFile, {
|
async mergeResults(sarifFiles, outputFile, {
|
||||||
mergeRunsFromEqualCategory = false
|
mergeRunsFromEqualCategory = false
|
||||||
}) {
|
}) {
|
||||||
|
|||||||
2
lib/upload-sarif-action-post.js
generated
2
lib/upload-sarif-action-post.js
generated
@@ -27627,7 +27627,7 @@ var require_package = __commonJS({
|
|||||||
"package.json"(exports2, module2) {
|
"package.json"(exports2, module2) {
|
||||||
module2.exports = {
|
module2.exports = {
|
||||||
name: "codeql",
|
name: "codeql",
|
||||||
version: "4.31.7",
|
version: "4.31.8",
|
||||||
private: true,
|
private: true,
|
||||||
description: "CodeQL action",
|
description: "CodeQL action",
|
||||||
scripts: {
|
scripts: {
|
||||||
|
|||||||
23
lib/upload-sarif-action.js
generated
23
lib/upload-sarif-action.js
generated
@@ -27627,7 +27627,7 @@ var require_package = __commonJS({
|
|||||||
"package.json"(exports2, module2) {
|
"package.json"(exports2, module2) {
|
||||||
module2.exports = {
|
module2.exports = {
|
||||||
name: "codeql",
|
name: "codeql",
|
||||||
version: "4.31.7",
|
version: "4.31.8",
|
||||||
private: true,
|
private: true,
|
||||||
description: "CodeQL action",
|
description: "CodeQL action",
|
||||||
scripts: {
|
scripts: {
|
||||||
@@ -86505,8 +86505,8 @@ var path4 = __toESM(require("path"));
|
|||||||
var semver3 = __toESM(require_semver2());
|
var semver3 = __toESM(require_semver2());
|
||||||
|
|
||||||
// src/defaults.json
|
// src/defaults.json
|
||||||
var bundleVersion = "codeql-bundle-v2.23.6";
|
var bundleVersion = "codeql-bundle-v2.23.7";
|
||||||
var cliVersion = "2.23.6";
|
var cliVersion = "2.23.7";
|
||||||
|
|
||||||
// src/overlay-database-utils.ts
|
// src/overlay-database-utils.ts
|
||||||
var fs3 = __toESM(require("fs"));
|
var fs3 = __toESM(require("fs"));
|
||||||
@@ -89215,6 +89215,23 @@ ${output}`
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
async resolveDatabase(databasePath) {
|
||||||
|
const codeqlArgs = [
|
||||||
|
"resolve",
|
||||||
|
"database",
|
||||||
|
databasePath,
|
||||||
|
"--format=json",
|
||||||
|
...getExtraOptionsFromEnv(["resolve", "database"])
|
||||||
|
];
|
||||||
|
const output = await runCli(cmd, codeqlArgs, { noStreamStdout: true });
|
||||||
|
try {
|
||||||
|
return JSON.parse(output);
|
||||||
|
} catch (e) {
|
||||||
|
throw new Error(
|
||||||
|
`Unexpected output from codeql resolve database --format=json: ${e}`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
async mergeResults(sarifFiles, outputFile, {
|
async mergeResults(sarifFiles, outputFile, {
|
||||||
mergeRunsFromEqualCategory = false
|
mergeRunsFromEqualCategory = false
|
||||||
}) {
|
}) {
|
||||||
|
|||||||
4
package-lock.json
generated
4
package-lock.json
generated
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "codeql",
|
"name": "codeql",
|
||||||
"version": "4.31.7",
|
"version": "4.31.8",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "codeql",
|
"name": "codeql",
|
||||||
"version": "4.31.7",
|
"version": "4.31.8",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/artifact": "^4.0.0",
|
"@actions/artifact": "^4.0.0",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "codeql",
|
"name": "codeql",
|
||||||
"version": "4.31.7",
|
"version": "4.31.8",
|
||||||
"private": true,
|
"private": true,
|
||||||
"description": "CodeQL action",
|
"description": "CodeQL action",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@@ -206,6 +206,7 @@ export interface CodeQL {
|
|||||||
* Run 'codeql resolve queries --format=startingpacks'.
|
* Run 'codeql resolve queries --format=startingpacks'.
|
||||||
*/
|
*/
|
||||||
resolveQueriesStartingPacks(queries: string[]): Promise<string[]>;
|
resolveQueriesStartingPacks(queries: string[]): Promise<string[]>;
|
||||||
|
resolveDatabase(databasePath: string): Promise<ResolveDatabaseOutput>;
|
||||||
/**
|
/**
|
||||||
* Run 'codeql github merge-results'.
|
* Run 'codeql github merge-results'.
|
||||||
*/
|
*/
|
||||||
@@ -230,6 +231,10 @@ export interface VersionInfo {
|
|||||||
overlayVersion?: number;
|
overlayVersion?: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface ResolveDatabaseOutput {
|
||||||
|
overlayBaseSpecifier?: string;
|
||||||
|
}
|
||||||
|
|
||||||
export interface ResolveLanguagesOutput {
|
export interface ResolveLanguagesOutput {
|
||||||
[language: string]: [string];
|
[language: string]: [string];
|
||||||
}
|
}
|
||||||
@@ -493,6 +498,7 @@ export function createStubCodeQL(partialCodeql: Partial<CodeQL>): CodeQL {
|
|||||||
partialCodeql,
|
partialCodeql,
|
||||||
"resolveQueriesStartingPacks",
|
"resolveQueriesStartingPacks",
|
||||||
),
|
),
|
||||||
|
resolveDatabase: resolveFunction(partialCodeql, "resolveDatabase"),
|
||||||
mergeResults: resolveFunction(partialCodeql, "mergeResults"),
|
mergeResults: resolveFunction(partialCodeql, "mergeResults"),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -1003,6 +1009,26 @@ async function getCodeQLForCmd(
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
async resolveDatabase(
|
||||||
|
databasePath: string,
|
||||||
|
): Promise<ResolveDatabaseOutput> {
|
||||||
|
const codeqlArgs = [
|
||||||
|
"resolve",
|
||||||
|
"database",
|
||||||
|
databasePath,
|
||||||
|
"--format=json",
|
||||||
|
...getExtraOptionsFromEnv(["resolve", "database"]),
|
||||||
|
];
|
||||||
|
const output = await runCli(cmd, codeqlArgs, { noStreamStdout: true });
|
||||||
|
|
||||||
|
try {
|
||||||
|
return JSON.parse(output) as ResolveDatabaseOutput;
|
||||||
|
} catch (e) {
|
||||||
|
throw new Error(
|
||||||
|
`Unexpected output from codeql resolve database --format=json: ${e}`,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
async mergeResults(
|
async mergeResults(
|
||||||
sarifFiles: string[],
|
sarifFiles: string[],
|
||||||
outputFile: string,
|
outputFile: string,
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"bundleVersion": "codeql-bundle-v2.23.6",
|
"bundleVersion": "codeql-bundle-v2.23.7",
|
||||||
"cliVersion": "2.23.6",
|
"cliVersion": "2.23.7",
|
||||||
"priorBundleVersion": "codeql-bundle-v2.23.5",
|
"priorBundleVersion": "codeql-bundle-v2.23.6",
|
||||||
"priorCliVersion": "2.23.5"
|
"priorCliVersion": "2.23.6"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,9 @@ import * as sinon from "sinon";
|
|||||||
|
|
||||||
import * as actionsUtil from "./actions-util";
|
import * as actionsUtil from "./actions-util";
|
||||||
import * as apiClient from "./api-client";
|
import * as apiClient from "./api-client";
|
||||||
|
import { ResolveDatabaseOutput } from "./codeql";
|
||||||
import * as gitUtils from "./git-utils";
|
import * as gitUtils from "./git-utils";
|
||||||
|
import { KnownLanguage } from "./languages";
|
||||||
import { getRunnerLogger } from "./logging";
|
import { getRunnerLogger } from "./logging";
|
||||||
import {
|
import {
|
||||||
downloadOverlayBaseDatabaseFromCache,
|
downloadOverlayBaseDatabaseFromCache,
|
||||||
@@ -95,6 +97,7 @@ interface DownloadOverlayBaseDatabaseTestCase {
|
|||||||
hasBaseDatabaseOidsFile: boolean;
|
hasBaseDatabaseOidsFile: boolean;
|
||||||
tryGetFolderBytesSucceeds: boolean;
|
tryGetFolderBytesSucceeds: boolean;
|
||||||
codeQLVersion: string;
|
codeQLVersion: string;
|
||||||
|
resolveDatabaseOutput: ResolveDatabaseOutput | Error;
|
||||||
}
|
}
|
||||||
|
|
||||||
const defaultDownloadTestCase: DownloadOverlayBaseDatabaseTestCase = {
|
const defaultDownloadTestCase: DownloadOverlayBaseDatabaseTestCase = {
|
||||||
@@ -105,6 +108,7 @@ const defaultDownloadTestCase: DownloadOverlayBaseDatabaseTestCase = {
|
|||||||
hasBaseDatabaseOidsFile: true,
|
hasBaseDatabaseOidsFile: true,
|
||||||
tryGetFolderBytesSucceeds: true,
|
tryGetFolderBytesSucceeds: true,
|
||||||
codeQLVersion: "2.20.5",
|
codeQLVersion: "2.20.5",
|
||||||
|
resolveDatabaseOutput: { overlayBaseSpecifier: "20250626:XXX" },
|
||||||
};
|
};
|
||||||
|
|
||||||
const testDownloadOverlayBaseDatabaseFromCache = test.macro({
|
const testDownloadOverlayBaseDatabaseFromCache = test.macro({
|
||||||
@@ -119,9 +123,11 @@ const testDownloadOverlayBaseDatabaseFromCache = test.macro({
|
|||||||
await fs.promises.mkdir(dbLocation, { recursive: true });
|
await fs.promises.mkdir(dbLocation, { recursive: true });
|
||||||
|
|
||||||
const logger = getRunnerLogger(true);
|
const logger = getRunnerLogger(true);
|
||||||
const config = createTestConfig({ dbLocation });
|
|
||||||
|
|
||||||
const testCase = { ...defaultDownloadTestCase, ...partialTestCase };
|
const testCase = { ...defaultDownloadTestCase, ...partialTestCase };
|
||||||
|
const config = createTestConfig({
|
||||||
|
dbLocation,
|
||||||
|
languages: [KnownLanguage.java],
|
||||||
|
});
|
||||||
|
|
||||||
config.overlayDatabaseMode = testCase.overlayDatabaseMode;
|
config.overlayDatabaseMode = testCase.overlayDatabaseMode;
|
||||||
config.useOverlayDatabaseCaching = testCase.useOverlayDatabaseCaching;
|
config.useOverlayDatabaseCaching = testCase.useOverlayDatabaseCaching;
|
||||||
@@ -163,9 +169,23 @@ const testDownloadOverlayBaseDatabaseFromCache = test.macro({
|
|||||||
.resolves(testCase.tryGetFolderBytesSucceeds ? 1024 * 1024 : undefined);
|
.resolves(testCase.tryGetFolderBytesSucceeds ? 1024 * 1024 : undefined);
|
||||||
stubs.push(tryGetFolderBytesStub);
|
stubs.push(tryGetFolderBytesStub);
|
||||||
|
|
||||||
|
const codeql = mockCodeQLVersion(testCase.codeQLVersion);
|
||||||
|
|
||||||
|
if (testCase.resolveDatabaseOutput instanceof Error) {
|
||||||
|
const resolveDatabaseStub = sinon
|
||||||
|
.stub(codeql, "resolveDatabase")
|
||||||
|
.rejects(testCase.resolveDatabaseOutput);
|
||||||
|
stubs.push(resolveDatabaseStub);
|
||||||
|
} else {
|
||||||
|
const resolveDatabaseStub = sinon
|
||||||
|
.stub(codeql, "resolveDatabase")
|
||||||
|
.resolves(testCase.resolveDatabaseOutput);
|
||||||
|
stubs.push(resolveDatabaseStub);
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const result = await downloadOverlayBaseDatabaseFromCache(
|
const result = await downloadOverlayBaseDatabaseFromCache(
|
||||||
mockCodeQLVersion(testCase.codeQLVersion),
|
codeql,
|
||||||
config,
|
config,
|
||||||
logger,
|
logger,
|
||||||
);
|
);
|
||||||
@@ -255,6 +275,24 @@ test(
|
|||||||
false,
|
false,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
test(
|
||||||
|
testDownloadOverlayBaseDatabaseFromCache,
|
||||||
|
"returns undefined when downloaded database doesn't have an overlayBaseSpecifier",
|
||||||
|
{
|
||||||
|
resolveDatabaseOutput: {},
|
||||||
|
},
|
||||||
|
false,
|
||||||
|
);
|
||||||
|
|
||||||
|
test(
|
||||||
|
testDownloadOverlayBaseDatabaseFromCache,
|
||||||
|
"returns undefined when resolving database metadata fails",
|
||||||
|
{
|
||||||
|
resolveDatabaseOutput: new Error("Failed to resolve database metadata"),
|
||||||
|
},
|
||||||
|
false,
|
||||||
|
);
|
||||||
|
|
||||||
test(
|
test(
|
||||||
testDownloadOverlayBaseDatabaseFromCache,
|
testDownloadOverlayBaseDatabaseFromCache,
|
||||||
"returns undefined when filesystem error occurs",
|
"returns undefined when filesystem error occurs",
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ import { getCommitOid, getFileOidsUnderPath } from "./git-utils";
|
|||||||
import { Logger, withGroupAsync } from "./logging";
|
import { Logger, withGroupAsync } from "./logging";
|
||||||
import {
|
import {
|
||||||
CleanupLevel,
|
CleanupLevel,
|
||||||
|
getCodeQLDatabasePath,
|
||||||
getErrorMessage,
|
getErrorMessage,
|
||||||
isInTestMode,
|
isInTestMode,
|
||||||
tryGetFolderBytes,
|
tryGetFolderBytes,
|
||||||
@@ -176,11 +177,12 @@ const MAX_CACHE_OPERATION_MS = 600_000;
|
|||||||
* @param warningPrefix Prefix for the check failure warning message
|
* @param warningPrefix Prefix for the check failure warning message
|
||||||
* @returns True if the verification succeeded, false otherwise
|
* @returns True if the verification succeeded, false otherwise
|
||||||
*/
|
*/
|
||||||
function checkOverlayBaseDatabase(
|
async function checkOverlayBaseDatabase(
|
||||||
|
codeql: CodeQL,
|
||||||
config: Config,
|
config: Config,
|
||||||
logger: Logger,
|
logger: Logger,
|
||||||
warningPrefix: string,
|
warningPrefix: string,
|
||||||
): boolean {
|
): Promise<boolean> {
|
||||||
// An overlay-base database should contain the base database OIDs file.
|
// An overlay-base database should contain the base database OIDs file.
|
||||||
const baseDatabaseOidsFilePath = getBaseDatabaseOidsFilePath(config);
|
const baseDatabaseOidsFilePath = getBaseDatabaseOidsFilePath(config);
|
||||||
if (!fs.existsSync(baseDatabaseOidsFilePath)) {
|
if (!fs.existsSync(baseDatabaseOidsFilePath)) {
|
||||||
@@ -189,6 +191,29 @@ function checkOverlayBaseDatabase(
|
|||||||
);
|
);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (const language of config.languages) {
|
||||||
|
const dbPath = getCodeQLDatabasePath(config, language);
|
||||||
|
try {
|
||||||
|
const resolveDatabaseOutput = await codeql.resolveDatabase(dbPath);
|
||||||
|
if (
|
||||||
|
resolveDatabaseOutput === undefined ||
|
||||||
|
!("overlayBaseSpecifier" in resolveDatabaseOutput)
|
||||||
|
) {
|
||||||
|
logger.info(`${warningPrefix}: no overlayBaseSpecifier defined`);
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
logger.debug(
|
||||||
|
`Overlay base specifier for ${language} overlay-base database found: ` +
|
||||||
|
`${resolveDatabaseOutput.overlayBaseSpecifier}`,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
logger.warning(`${warningPrefix}: failed to resolve database: ${e}`);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -232,7 +257,8 @@ export async function cleanupAndUploadOverlayBaseDatabaseToCache(
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
const databaseIsValid = checkOverlayBaseDatabase(
|
const databaseIsValid = await checkOverlayBaseDatabase(
|
||||||
|
codeql,
|
||||||
config,
|
config,
|
||||||
logger,
|
logger,
|
||||||
"Abort uploading overlay-base database to cache",
|
"Abort uploading overlay-base database to cache",
|
||||||
@@ -415,7 +441,8 @@ export async function downloadOverlayBaseDatabaseFromCache(
|
|||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
const databaseIsValid = checkOverlayBaseDatabase(
|
const databaseIsValid = await checkOverlayBaseDatabase(
|
||||||
|
codeql,
|
||||||
config,
|
config,
|
||||||
logger,
|
logger,
|
||||||
"Downloaded overlay-base database is invalid",
|
"Downloaded overlay-base database is invalid",
|
||||||
|
|||||||
Reference in New Issue
Block a user