diff --git a/analyze/action.yml b/analyze/action.yml index 9b950f6fa..7aaeeec2d 100644 --- a/analyze/action.yml +++ b/analyze/action.yml @@ -19,7 +19,6 @@ inputs: threads: description: The number of threads to be used by CodeQL. required: false - default: "1" checkout_path: description: "The path at which the analyzed repository was checked out. Used to relativeize any absolute paths in the uploaded SARIF file." required: false diff --git a/lib/analysis-paths.test.js b/lib/analysis-paths.test.js index c022e9b15..b3707e6be 100644 --- a/lib/analysis-paths.test.js +++ b/lib/analysis-paths.test.js @@ -13,31 +13,42 @@ Object.defineProperty(exports, "__esModule", { value: true }); const ava_1 = __importDefault(require("ava")); const analysisPaths = __importStar(require("./analysis-paths")); const testing_utils_1 = require("./testing-utils"); +const util = __importStar(require("./util")); testing_utils_1.setupTests(ava_1.default); ava_1.default("emptyPaths", async (t) => { - const config = { - languages: [], - queries: {}, - pathsIgnore: [], - paths: [], - originalUserInput: {}, - }; - analysisPaths.includeAndExcludeAnalysisPaths(config); - t.is(process.env['LGTM_INDEX_INCLUDE'], undefined); - t.is(process.env['LGTM_INDEX_EXCLUDE'], undefined); - t.is(process.env['LGTM_INDEX_FILTERS'], undefined); + return await util.withTmpDir(async (tmpDir) => { + const config = { + languages: [], + queries: {}, + pathsIgnore: [], + paths: [], + originalUserInput: {}, + tempDir: tmpDir, + toolCacheDir: tmpDir, + codeQLCmd: '', + }; + analysisPaths.includeAndExcludeAnalysisPaths(config); + t.is(process.env['LGTM_INDEX_INCLUDE'], undefined); + t.is(process.env['LGTM_INDEX_EXCLUDE'], undefined); + t.is(process.env['LGTM_INDEX_FILTERS'], undefined); + }); }); ava_1.default("nonEmptyPaths", async (t) => { - const config = { - languages: [], - queries: {}, - paths: ['path1', 'path2', '**/path3'], - pathsIgnore: ['path4', 'path5', 'path6/**'], - originalUserInput: {}, - }; - analysisPaths.includeAndExcludeAnalysisPaths(config); - t.is(process.env['LGTM_INDEX_INCLUDE'], 'path1\npath2'); - t.is(process.env['LGTM_INDEX_EXCLUDE'], 'path4\npath5'); - t.is(process.env['LGTM_INDEX_FILTERS'], 'include:path1\ninclude:path2\ninclude:**/path3\nexclude:path4\nexclude:path5\nexclude:path6/**'); + return await util.withTmpDir(async (tmpDir) => { + const config = { + languages: [], + queries: {}, + paths: ['path1', 'path2', '**/path3'], + pathsIgnore: ['path4', 'path5', 'path6/**'], + originalUserInput: {}, + tempDir: tmpDir, + toolCacheDir: tmpDir, + codeQLCmd: '', + }; + analysisPaths.includeAndExcludeAnalysisPaths(config); + t.is(process.env['LGTM_INDEX_INCLUDE'], 'path1\npath2'); + t.is(process.env['LGTM_INDEX_EXCLUDE'], 'path4\npath5'); + t.is(process.env['LGTM_INDEX_FILTERS'], 'include:path1\ninclude:path2\ninclude:**/path3\nexclude:path4\nexclude:path5\nexclude:path6/**'); + }); }); //# sourceMappingURL=analysis-paths.test.js.map \ No newline at end of file diff --git a/lib/analysis-paths.test.js.map b/lib/analysis-paths.test.js.map index 8a8ea7c42..cf4958c1b 100644 --- a/lib/analysis-paths.test.js.map +++ b/lib/analysis-paths.test.js.map @@ -1 +1 @@ -{"version":3,"file":"analysis-paths.test.js","sourceRoot":"","sources":["../src/analysis-paths.test.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8CAAuB;AAEvB,gEAAkD;AAClD,mDAA2C;AAE3C,0BAAU,CAAC,aAAI,CAAC,CAAC;AAEjB,aAAI,CAAC,YAAY,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IAC3B,MAAM,MAAM,GAAG;QACb,SAAS,EAAE,EAAE;QACb,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,EAAE;QACf,KAAK,EAAE,EAAE;QACT,iBAAiB,EAAE,EAAE;KACtB,CAAC;IACF,aAAa,CAAC,8BAA8B,CAAC,MAAM,CAAC,CAAC;IACrD,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC;IACnD,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC;IACnD,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC;AACrD,CAAC,CAAC,CAAC;AAEH,aAAI,CAAC,eAAe,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IAC9B,MAAM,MAAM,GAAG;QACb,SAAS,EAAE,EAAE;QACb,OAAO,EAAE,EAAE;QACX,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC;QACrC,WAAW,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC;QAC3C,iBAAiB,EAAE,EAAE;KACtB,CAAC;IACF,aAAa,CAAC,8BAA8B,CAAC,MAAM,CAAC,CAAC;IACrD,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,cAAc,CAAC,CAAC;IACxD,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,cAAc,CAAC,CAAC;IACxD,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,gGAAgG,CAAC,CAAC;AAC5I,CAAC,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"analysis-paths.test.js","sourceRoot":"","sources":["../src/analysis-paths.test.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8CAAuB;AAEvB,gEAAkD;AAClD,mDAA2C;AAC3C,6CAA+B;AAE/B,0BAAU,CAAC,aAAI,CAAC,CAAC;AAEjB,aAAI,CAAC,YAAY,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IAC3B,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;QAC1C,MAAM,MAAM,GAAG;YACb,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,EAAE;YACX,WAAW,EAAE,EAAE;YACf,KAAK,EAAE,EAAE;YACT,iBAAiB,EAAE,EAAE;YACrB,OAAO,EAAE,MAAM;YACf,YAAY,EAAE,MAAM;YACpB,SAAS,EAAE,EAAE;SACd,CAAC;QACF,aAAa,CAAC,8BAA8B,CAAC,MAAM,CAAC,CAAC;QACrD,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC;QACnD,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC;QACnD,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,aAAI,CAAC,eAAe,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IAC9B,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;QAC1C,MAAM,MAAM,GAAG;YACb,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,EAAE;YACX,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC;YACrC,WAAW,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC;YAC3C,iBAAiB,EAAE,EAAE;YACrB,OAAO,EAAE,MAAM;YACf,YAAY,EAAE,MAAM;YACpB,SAAS,EAAE,EAAE;SACd,CAAC;QACF,aAAa,CAAC,8BAA8B,CAAC,MAAM,CAAC,CAAC;QACrD,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,cAAc,CAAC,CAAC;QACxD,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,cAAc,CAAC,CAAC;QACxD,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,gGAAgG,CAAC,CAAC;IAC5I,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/lib/autobuild.js b/lib/autobuild.js index a1b98ce61..9a7414723 100644 --- a/lib/autobuild.js +++ b/lib/autobuild.js @@ -10,6 +10,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); const core = __importStar(require("@actions/core")); const codeql_1 = require("./codeql"); const config_utils = __importStar(require("./config-utils")); +const languages_1 = require("./languages"); const util = __importStar(require("./util")); async function sendCompletedStatusReport(startedAt, allLanguages, failingLanguage, cause) { var _a, _b; @@ -30,12 +31,12 @@ async function run() { if (!await util.sendStatusReport(await util.createStatusReportBase('autobuild', 'starting', startedAt), true)) { return; } - const config = await config_utils.getConfig(); + const config = await config_utils.getConfig(util.getRequiredEnvParam('RUNNER_TEMP')); // Attempt to find a language to autobuild // We want pick the dominant language in the repo from the ones we're able to build // The languages are sorted in order specified by user or by lines of code if we got // them from the GitHub API, so try to build the first language on the list. - const autobuildLanguages = config.languages.filter(codeql_1.isTracedLanguage); + const autobuildLanguages = config.languages.filter(languages_1.isTracedLanguage); language = autobuildLanguages[0]; if (!language) { core.info("None of the languages in this project require extra build steps"); @@ -46,7 +47,7 @@ async function run() { core.warning(`We will only automatically build ${language} code. If you wish to scan ${autobuildLanguages.slice(1).join(' and ')}, you must replace this block with custom build steps.`); } core.startGroup(`Attempting to automatically build ${language} code`); - const codeQL = codeql_1.getCodeQL(); + const codeQL = codeql_1.getCodeQL(config.codeQLCmd); await codeQL.runAutobuild(language); core.endGroup(); } diff --git a/lib/autobuild.js.map b/lib/autobuild.js.map index 701d0cda5..ae6f40580 100644 --- a/lib/autobuild.js.map +++ b/lib/autobuild.js.map @@ -1 +1 @@ -{"version":3,"file":"autobuild.js","sourceRoot":"","sources":["../src/autobuild.ts"],"names":[],"mappings":";;;;;;;;;AAAA,oDAAsC;AAEtC,qCAAuD;AACvD,6DAA+C;AAC/C,6CAA+B;AAS/B,KAAK,UAAU,yBAAyB,CACtC,SAAe,EACf,YAAsB,EACtB,eAAwB,EACxB,KAAa;;IAEb,MAAM,MAAM,GAAG,eAAe,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5F,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,sBAAsB,CACxD,WAAW,EACX,MAAM,EACN,SAAS,QACT,KAAK,0CAAE,OAAO,QACd,KAAK,0CAAE,KAAK,CAAC,CAAC;IAChB,MAAM,YAAY,GAA0B;QAC1C,GAAG,gBAAgB;QACnB,mBAAmB,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;QAC3C,iBAAiB,EAAE,eAAe;KACnC,CAAC;IACF,MAAM,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;AAC5C,CAAC;AAED,KAAK,UAAU,GAAG;IAChB,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IAC7B,IAAI,QAAQ,CAAC;IACb,IAAI;QACF,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAClC,IAAI,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC,EAAE;YAC7G,OAAO;SACR;QAED,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,SAAS,EAAE,CAAC;QAE9C,0CAA0C;QAC1C,mFAAmF;QACnF,oFAAoF;QACpF,4EAA4E;QAC5E,MAAM,kBAAkB,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,yBAAgB,CAAC,CAAC;QACrE,QAAQ,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAEjC,IAAI,CAAC,QAAQ,EAAE;YACb,IAAI,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;YAC7E,OAAO;SACR;QAED,IAAI,CAAC,KAAK,CAAC,sCAAsC,QAAQ,EAAE,CAAC,CAAC;QAE7D,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,IAAI,CAAC,OAAO,CAAC,oCAAoC,QAAQ,8BAA8B,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,wDAAwD,CAAC,CAAC;SAC3L;QAED,IAAI,CAAC,UAAU,CAAC,qCAAqC,QAAQ,OAAO,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,kBAAS,EAAE,CAAC;QAC3B,MAAM,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAEpC,IAAI,CAAC,QAAQ,EAAE,CAAC;KAEjB;IAAC,OAAO,KAAK,EAAE;QACd,IAAI,CAAC,SAAS,CAAC,kIAAkI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;QACnK,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,MAAM,yBAAyB,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;QACxE,OAAO;KACR;IAED,MAAM,yBAAyB,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;IACd,IAAI,CAAC,SAAS,CAAC,4BAA4B,GAAG,CAAC,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"autobuild.js","sourceRoot":"","sources":["../src/autobuild.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/codeql.js b/lib/codeql.js index c0586d9fa..3c7cf10c8 100644 --- a/lib/codeql.js +++ b/lib/codeql.js @@ -28,11 +28,6 @@ const util = __importStar(require("./util")); * Can be overridden in tests using `setCodeQL`. */ let cachedCodeQL = undefined; -/** - * Environment variable used to store the location of the CodeQL CLI executable. - * Value is set by setupCodeQL and read by getCodeQL. - */ -const CODEQL_ACTION_CMD = "CODEQL_ACTION_CMD"; const CODEQL_BUNDLE_VERSION = defaults.bundleVersion; const CODEQL_BUNDLE_NAME = "codeql-bundle.tar.gz"; const CODEQL_DEFAULT_ACTION_REPOSITORY = "github/codeql-action"; @@ -143,7 +138,6 @@ async function setupCodeQL() { throw new Error("Unsupported platform: " + process.platform); } cachedCodeQL = getCodeQLForCmd(codeqlCmd); - core.exportVariable(CODEQL_ACTION_CMD, codeqlCmd); return cachedCodeQL; } catch (e) { @@ -169,16 +163,21 @@ function getCodeQLURLVersion(url) { return s; } exports.getCodeQLURLVersion = getCodeQLURLVersion; -function getCodeQL() { +/** + * Use the CodeQL executable located at the given path. + */ +function getCodeQL(cmd) { if (cachedCodeQL === undefined) { - const codeqlCmd = util.getRequiredEnvParam(CODEQL_ACTION_CMD); - cachedCodeQL = getCodeQLForCmd(codeqlCmd); + cachedCodeQL = getCodeQLForCmd(cmd); } return cachedCodeQL; } exports.getCodeQL = getCodeQL; -function resolveFunction(partialCodeql, methodName) { +function resolveFunction(partialCodeql, methodName, defaultImplementation) { if (typeof partialCodeql[methodName] !== 'function') { + if (defaultImplementation !== undefined) { + return defaultImplementation; + } const dummyMethod = () => { throw new Error('CodeQL ' + methodName + ' method not correctly defined'); }; @@ -194,7 +193,7 @@ function resolveFunction(partialCodeql, methodName) { */ function setCodeQL(partialCodeql) { cachedCodeQL = { - getDir: resolveFunction(partialCodeql, 'getDir'), + getPath: resolveFunction(partialCodeql, 'getPath', () => '/tmp/dummy-path'), printVersion: resolveFunction(partialCodeql, 'printVersion'), getTracerEnv: resolveFunction(partialCodeql, 'getTracerEnv'), databaseInit: resolveFunction(partialCodeql, 'databaseInit'), @@ -204,12 +203,27 @@ function setCodeQL(partialCodeql) { resolveQueries: resolveFunction(partialCodeql, 'resolveQueries'), databaseAnalyze: resolveFunction(partialCodeql, 'databaseAnalyze') }; + return cachedCodeQL; } exports.setCodeQL = setCodeQL; +/** + * Get the cached CodeQL object. Should only be used from tests. + * + * TODO: Work out a good way for tests to get this from the test context + * instead of having to have this method. + */ +function getCachedCodeQL() { + if (cachedCodeQL === undefined) { + // Should never happen as setCodeQL is called by testing-utils.setupTests + throw new Error('cachedCodeQL undefined'); + } + return cachedCodeQL; +} +exports.getCachedCodeQL = getCachedCodeQL; function getCodeQLForCmd(cmd) { return { - getDir: function () { - return path.dirname(cmd); + getPath: function () { + return cmd; }, printVersion: async function () { await exec.exec(cmd, [ @@ -225,6 +239,7 @@ function getCodeQLForCmd(cmd) { 'trace-command', databasePath, ...compilerSpecArg, + ...getExtraOptionsFromEnv(['database', 'trace-command']), process.execPath, path.resolve(__dirname, 'tracer-env.js'), envFile @@ -238,6 +253,7 @@ function getCodeQLForCmd(cmd) { databasePath, '--language=' + language, '--source-root=' + sourceRoot, + ...getExtraOptionsFromEnv(['database', 'init']), ]); }, runAutobuild: async function (language) { @@ -259,7 +275,8 @@ function getCodeQLForCmd(cmd) { 'resolve', 'extractor', '--format=json', - '--language=' + language + '--language=' + language, + ...getExtraOptionsFromEnv(['resolve', 'extractor']), ], { silent: true, listeners: { @@ -274,6 +291,7 @@ function getCodeQLForCmd(cmd) { await exec.exec(cmd, [ 'database', 'trace-command', + ...getExtraOptionsFromEnv(['database', 'trace-command']), databasePath, '--', traceCommand @@ -283,6 +301,7 @@ function getCodeQLForCmd(cmd) { await exec.exec(cmd, [ 'database', 'finalize', + ...getExtraOptionsFromEnv(['database', 'finalize']), databasePath ]); }, @@ -291,7 +310,8 @@ function getCodeQLForCmd(cmd) { 'resolve', 'queries', ...queries, - '--format=bylanguage' + '--format=bylanguage', + ...getExtraOptionsFromEnv(['resolve', 'queries']) ]; if (extraSearchPath !== undefined) { codeqlArgs.push('--search-path', extraSearchPath); @@ -316,17 +336,54 @@ function getCodeQLForCmd(cmd) { '--format=sarif-latest', '--output=' + sarifFile, '--no-sarif-add-snippets', + ...getExtraOptionsFromEnv(['database', 'analyze']), querySuite ]); } }; } -function isTracedLanguage(language) { - return ['cpp', 'java', 'csharp'].includes(language); +/** + * Gets the options for `path` of `options` as an array of extra option strings. + */ +function getExtraOptionsFromEnv(path) { + let options = util.getExtraOptionsEnvParam(); + return getExtraOptions(options, path, []); } -exports.isTracedLanguage = isTracedLanguage; -function isScannedLanguage(language) { - return !isTracedLanguage(language); +/** + * Gets the options for `path` of `options` as an array of extra option strings. + * + * - the special terminal step name '*' in `options` matches all path steps + * - throws an exception if this conversion is impossible. + */ +function getExtraOptions(options, path, pathInfo) { + var _a, _b, _c; + /** + * Gets `options` as an array of extra option strings. + * + * - throws an exception mentioning `pathInfo` if this conversion is impossible. + */ + function asExtraOptions(options, pathInfo) { + if (options === undefined) { + return []; + } + if (!Array.isArray(options)) { + const msg = `The extra options for '${pathInfo.join('.')}' ('${JSON.stringify(options)}') are not in an array.`; + throw new Error(msg); + } + return options.map(o => { + const t = typeof o; + if (t !== 'string' && t !== 'number' && t !== 'boolean') { + const msg = `The extra option for '${pathInfo.join('.')}' ('${JSON.stringify(o)}') is not a primitive value.`; + throw new Error(msg); + } + return o + ''; + }); + } + let all = asExtraOptions((_a = options) === null || _a === void 0 ? void 0 : _a['*'], pathInfo.concat('*')); + let specific = path.length === 0 ? + asExtraOptions(options, pathInfo) : + getExtraOptions((_b = options) === null || _b === void 0 ? void 0 : _b[path[0]], (_c = path) === null || _c === void 0 ? void 0 : _c.slice(1), pathInfo.concat(path[0])); + return all.concat(specific); } -exports.isScannedLanguage = isScannedLanguage; +exports.getExtraOptions = getExtraOptions; //# sourceMappingURL=codeql.js.map \ No newline at end of file diff --git a/lib/codeql.js.map b/lib/codeql.js.map index 624d21ed9..9856e6957 100644 --- a/lib/codeql.js.map +++ b/lib/codeql.js.map @@ -1 +1 @@ -{"version":3,"file":"codeql.js","sourceRoot":"","sources":["../src/codeql.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"codeql.js","sourceRoot":"","sources":["../src/codeql.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAAsC;AACtC,oDAAsC;AACtC,2DAA6C;AAE7C,+DAAiD;AACjD,uCAAyB;AACzB,2CAA6B;AAC7B,+CAAiC;AACjC,+CAAiC;AACjC,iDAAmC;AACnC,iDAA6B;AAE7B,kDAAoC;AACpC,0DAA4C,CAAC,2CAA2C;AAExF,6CAA+B;AA8E/B;;;GAGG;AACH,IAAI,YAAY,GAAuB,SAAS,CAAC;AAEjD,MAAM,qBAAqB,GAAG,QAAQ,CAAC,aAAa,CAAC;AACrD,MAAM,kBAAkB,GAAG,sBAAsB,CAAC;AAClD,MAAM,gCAAgC,GAAG,sBAAsB,CAAC;AAEhE,SAAS,yBAAyB;IAChC,iDAAiD;IACjD,+EAA+E;IAC/E,+GAA+G;IAC/G,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;IAC3D,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,CAAC;IACzE,MAAM,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;IACvE,kFAAkF;IAClF,kFAAkF;IAClF,IAAI,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE;QAC9E,OAAO,gCAAgC,CAAC;KACzC;IACD,MAAM,uBAAuB,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnE,OAAO,uBAAuB,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,uBAAuB,CAAC,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,KAAK,UAAU,0BAA0B;IACvC,MAAM,sBAAsB,GAAG,yBAAyB,EAAE,CAAC;IAC3D,MAAM,wBAAwB,GAAG;QAC/B,yCAAyC;QACzC,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,sBAAsB,CAAC;QAClD,kDAAkD;QAClD,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,gCAAgC,CAAC;QAC5D,wCAAwC;QACxC,CAAC,IAAI,CAAC,qBAAqB,EAAE,gCAAgC,CAAC;KAC/D,CAAC;IACF,oCAAoC;IACpC,gHAAgH;IAChH,MAAM,qBAAqB,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IACjH,KAAK,IAAI,cAAc,IAAI,qBAAqB,EAAE;QAChD,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,cAAc,CAAC;QAC1C,8GAA8G;QAC9G,IAAI,MAAM,KAAK,IAAI,CAAC,qBAAqB,IAAI,UAAU,KAAK,gCAAgC,EAAE;YAC5F,MAAM;SACP;QACD,IAAI,CAAC,eAAe,EAAE,cAAc,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9D,IAAI;YACF,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,mBAAmB,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC;gBACpE,KAAK,EAAE,eAAe;gBACtB,IAAI,EAAE,cAAc;gBACpB,GAAG,EAAE,qBAAqB;aAC3B,CAAC,CAAC;YACH,KAAK,IAAI,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE;gBACrC,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,EAAE;oBACrC,IAAI,CAAC,IAAI,CAAC,0BAA0B,cAAc,CAAC,CAAC,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,aAAa,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;oBACxG,OAAO,KAAK,CAAC,GAAG,CAAC;iBAClB;aACF;SACF;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,IAAI,CAAC,+BAA+B,cAAc,CAAC,CAAC,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;SAC3G;KACF;IACD,OAAO,sBAAsB,gCAAgC,sBAAsB,qBAAqB,IAAI,kBAAkB,EAAE,CAAC;AACnI,CAAC;AAED,4FAA4F;AAC5F,+FAA+F;AAC/F,KAAK,UAAU,qBAAqB,CAAC,GAAW,EAAE,OAAkB;IAClE,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,EAAE,YAAM,EAAE,CAAC,CAAC;IAC1E,MAAM,QAAQ,GAA4B,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACzE,IAAI,QAAQ,CAAC,OAAO,CAAC,UAAU,KAAK,GAAG,EAAE;QACvC,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACjE,IAAI,CAAC,IAAI,CACP,4BAA4B,GAAG,WAAW,QAAQ,CAAC,OAAO,CAAC,UAAU,aAAa,QAAQ,CAAC,OAAO,CAAC,aAAa,GAAG,CACpH,CAAC;QACF,MAAM,GAAG,CAAC;KACX;IACD,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvD,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,MAAM,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7D,OAAO,IAAI,CAAC;AACd,CAAC;AAEM,KAAK,UAAU,WAAW;IAC/B,IAAI;QACF,IAAI,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,SAAS,IAAI,IAAI,qBAAqB,GAAG,CAAC,CAAC;QAExF,IAAI,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QAC9D,IAAI,YAAY,EAAE;YAChB,IAAI,CAAC,KAAK,CAAC,yBAAyB,YAAY,EAAE,CAAC,CAAC;SACrD;aAAM;YACL,IAAI,CAAC,SAAS,EAAE;gBACd,SAAS,GAAG,MAAM,0BAA0B,EAAE,CAAC;aAChD;YAED,MAAM,OAAO,GAAa,EAAC,MAAM,EAAE,0BAA0B,EAAC,CAAC;YAC/D,wEAAwE;YACxE,0DAA0D;YAC1D,mDAAmD;YACnD,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,GAAG,CAAC,EAAE;gBACxD,IAAI,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;gBACpD,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;gBACvD,OAAO,CAAC,aAAa,GAAG,SAAS,KAAK,EAAE,CAAC;aAC1C;iBAAM;gBACL,IAAI,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;aACxD;YACD,IAAI,UAAU,GAAG,MAAM,qBAAqB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACjE,IAAI,CAAC,KAAK,CAAC,6BAA6B,UAAU,YAAY,CAAC,CAAC;YAEhE,MAAM,eAAe,GAAG,MAAM,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAC/D,YAAY,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;SACtF;QAED,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC5D,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;YAChC,SAAS,IAAI,MAAM,CAAC;SACrB;aAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;YACxE,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;SAC9D;QAED,YAAY,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;QAC1C,OAAO,YAAY,CAAC;KAErB;IAAC,OAAO,CAAC,EAAE;QACV,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;KAC9D;AACH,CAAC;AA7CD,kCA6CC;AAED,SAAgB,mBAAmB,CAAC,GAAW;IAE7C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAClD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QACtC,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,iCAAiC,CAAC,CAAC;KAC/E;IAED,IAAI,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAEvB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;QAC1B,IAAI,CAAC,KAAK,CAAC,kBAAkB,OAAO,gEAAgE,OAAO,GAAG,CAAC,CAAC;QAChH,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;KAC9B;IAED,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAChC,IAAI,CAAC,CAAC,EAAE;QACN,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,iDAAiD,OAAO,UAAU,CAAC,CAAC;KAC/G;IAED,OAAO,CAAC,CAAC;AACX,CAAC;AApBD,kDAoBC;AAED;;GAEG;AACH,SAAgB,SAAS,CAAC,GAAW;IACnC,IAAI,YAAY,KAAK,SAAS,EAAE;QAC9B,YAAY,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;KACrC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AALD,8BAKC;AAED,SAAS,eAAe,CACtB,aAA8B,EAC9B,UAAkB,EAClB,qBAAyB;IACzB,IAAI,OAAO,aAAa,CAAC,UAAU,CAAC,KAAK,UAAU,EAAE;QACnD,IAAI,qBAAqB,KAAK,SAAS,EAAE;YACvC,OAAO,qBAAqB,CAAC;SAC9B;QACD,MAAM,WAAW,GAAG,GAAG,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,SAAS,GAAG,UAAU,GAAG,+BAA+B,CAAC,CAAC;QAC5E,CAAC,CAAC;QACF,OAAO,WAAkB,CAAC;KAC3B;IACD,OAAO,aAAa,CAAC,UAAU,CAAC,CAAC;AACnC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,SAAS,CAAC,aAA8B;IACtD,YAAY,GAAG;QACb,OAAO,EAAE,eAAe,CAAC,aAAa,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC;QAC3E,YAAY,EAAE,eAAe,CAAC,aAAa,EAAE,cAAc,CAAC;QAC5D,YAAY,EAAE,eAAe,CAAC,aAAa,EAAE,cAAc,CAAC;QAC5D,YAAY,EAAE,eAAe,CAAC,aAAa,EAAE,cAAc,CAAC;QAC5D,YAAY,EAAE,eAAe,CAAC,aAAa,EAAE,cAAc,CAAC;QAC5D,sBAAsB,EAAE,eAAe,CAAC,aAAa,EAAE,wBAAwB,CAAC;QAChF,gBAAgB,EAAE,eAAe,CAAC,aAAa,EAAE,kBAAkB,CAAC;QACpE,cAAc,EAAE,eAAe,CAAC,aAAa,EAAE,gBAAgB,CAAC;QAChE,eAAe,EAAE,eAAe,CAAC,aAAa,EAAE,iBAAiB,CAAC;KACnE,CAAC;IACF,OAAO,YAAY,CAAC;AACtB,CAAC;AAbD,8BAaC;AAED;;;;;GAKG;AACH,SAAgB,eAAe;IAC7B,IAAI,YAAY,KAAK,SAAS,EAAE;QAC9B,yEAAyE;QACzE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;KAC3C;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAND,0CAMC;AAED,SAAS,eAAe,CAAC,GAAW;IAClC,OAAO;QACL,OAAO,EAAE;YACP,OAAO,GAAG,CAAC;QACb,CAAC;QACD,YAAY,EAAE,KAAK;YACjB,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACnB,SAAS;gBACT,eAAe;aAChB,CAAC,CAAC;QACL,CAAC;QACD,YAAY,EAAE,KAAK,WAAU,YAAoB,EAAE,YAAgC;YACjF,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YAC/D,MAAM,eAAe,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,kBAAkB,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAChF,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACnB,UAAU;gBACV,eAAe;gBACf,YAAY;gBACZ,GAAG,eAAe;gBAClB,GAAG,sBAAsB,CAAC,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;gBACxD,OAAO,CAAC,QAAQ;gBAChB,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC;gBACxC,OAAO;aACR,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QACvD,CAAC;QACD,YAAY,EAAE,KAAK,WAAU,YAAoB,EAAE,QAAkB,EAAE,UAAkB;YACvF,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACnB,UAAU;gBACV,MAAM;gBACN,YAAY;gBACZ,aAAa,GAAG,QAAQ;gBACxB,gBAAgB,GAAG,UAAU;gBAC7B,GAAG,sBAAsB,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;aAChD,CAAC,CAAC;QACL,CAAC;QACD,YAAY,EAAE,KAAK,WAAU,QAAkB;YAC7C,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,CAAC;YAChF,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAE9E,+DAA+D;YAC/D,0FAA0F;YAC1F,qDAAqD;YACrD,8EAA8E;YAC9E,gHAAgH;YAChH,IAAI,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;YAC7D,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,wBAAwB,EAAE,+BAA+B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAE1I,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAChC,CAAC;QACD,sBAAsB,EAAE,KAAK,WAAU,YAAoB,EAAE,QAAkB;YAC7E,yBAAyB;YACzB,IAAI,aAAa,GAAG,EAAE,CAAC;YACvB,MAAM,IAAI,CAAC,IAAI,CACb,GAAG,EACH;gBACE,SAAS;gBACT,WAAW;gBACX,eAAe;gBACf,aAAa,GAAG,QAAQ;gBACxB,GAAG,sBAAsB,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;aACpD,EACD;gBACE,MAAM,EAAE,IAAI;gBACZ,SAAS,EAAE;oBACT,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,aAAa,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;oBACvD,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBAClD;aACF,CAAC,CAAC;YAEL,oBAAoB;YACpB,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;YAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,WAAW,GAAG,GAAG,CAAC,CAAC;YAEzF,oBAAoB;YACpB,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACnB,UAAU;gBACV,eAAe;gBACf,GAAG,sBAAsB,CAAC,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;gBACxD,YAAY;gBACZ,IAAI;gBACJ,YAAY;aACb,CAAC,CAAC;QACL,CAAC;QACD,gBAAgB,EAAE,KAAK,WAAU,YAAoB;YACnD,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACnB,UAAU;gBACV,UAAU;gBACV,GAAG,sBAAsB,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;gBACnD,YAAY;aACb,CAAC,CAAC;QACL,CAAC;QACD,cAAc,EAAE,KAAK,WAAU,OAAiB,EAAE,eAAmC;YACnF,MAAM,UAAU,GAAG;gBACjB,SAAS;gBACT,SAAS;gBACT,GAAG,OAAO;gBACV,qBAAqB;gBACrB,GAAG,sBAAsB,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;aAClD,CAAC;YACF,IAAI,eAAe,KAAK,SAAS,EAAE;gBACjC,UAAU,CAAC,IAAI,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;aACnD;YACD,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE;gBAC/B,SAAS,EAAE;oBACT,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;wBACvB,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAC5B,CAAC;iBACF;aACF,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QACD,eAAe,EAAE,KAAK,WAAU,YAAoB,EAAE,SAAiB,EAAE,UAAkB;YACzF,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACnB,UAAU;gBACV,SAAS;gBACT,IAAI,CAAC,aAAa,EAAE;gBACpB,IAAI,CAAC,cAAc,EAAE;gBACrB,YAAY;gBACZ,uBAAuB;gBACvB,WAAW,GAAG,SAAS;gBACvB,yBAAyB;gBACzB,GAAG,sBAAsB,CAAC,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;gBAClD,UAAU;aACX,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,sBAAsB,CAAC,IAAc;IAC5C,IAAI,OAAO,GAAiB,IAAI,CAAC,uBAAuB,EAAE,CAAC;IAC3D,OAAO,eAAe,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;GAKG;AACH,SAA2C,eAAe,CACxD,OAAY,EACZ,IAAc,EACd,QAAkB;;IAClB;;;;OAIG;IACH,SAAS,cAAc,CAAC,OAAY,EAAE,QAAkB;QACtD,IAAI,OAAO,KAAK,SAAS,EAAE;YACzB,OAAO,EAAE,CAAC;SACX;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAC3B,MAAM,GAAG,GACP,0BAA0B,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,yBAAyB,CAAC;YACtG,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;SACtB;QACD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACrB,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC;YACnB,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,SAAS,EAAE;gBACvD,MAAM,GAAG,GACP,yBAAyB,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,8BAA8B,CAAC;gBACpG,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;aACtB;YACD,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,IAAI,GAAG,GAAG,cAAc,OAAC,OAAO,0CAAG,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/D,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;QAChC,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;QACnC,eAAe,OAAC,OAAO,0CAAG,IAAI,CAAC,CAAC,CAAC,SAAG,IAAI,0CAAE,KAAK,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChF,OAAO,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC9B,CAAC;AAjCD,0CAiCC"} \ No newline at end of file diff --git a/lib/codeql.test.js b/lib/codeql.test.js index d41fe0684..a36a8f616 100644 --- a/lib/codeql.test.js +++ b/lib/codeql.test.js @@ -57,4 +57,26 @@ ava_1.default('parse codeql bundle url version', t => { } } }); +ava_1.default('getExtraOptions works for explicit paths', t => { + t.deepEqual(codeql.getExtraOptions({}, ['foo'], []), []); + t.deepEqual(codeql.getExtraOptions({ foo: [42] }, ['foo'], []), ['42']); + t.deepEqual(codeql.getExtraOptions({ foo: { bar: [42] } }, ['foo', 'bar'], []), ['42']); +}); +ava_1.default('getExtraOptions works for wildcards', t => { + t.deepEqual(codeql.getExtraOptions({ '*': [42] }, ['foo'], []), ['42']); +}); +ava_1.default('getExtraOptions works for wildcards and explicit paths', t => { + let o1 = { '*': [42], foo: [87] }; + t.deepEqual(codeql.getExtraOptions(o1, ['foo'], []), ['42', '87']); + let o2 = { '*': [42], foo: [87] }; + t.deepEqual(codeql.getExtraOptions(o2, ['foo', 'bar'], []), ['42']); + let o3 = { '*': [42], foo: { '*': [87], bar: [99] } }; + let p = ['foo', 'bar']; + t.deepEqual(codeql.getExtraOptions(o3, p, []), ['42', '87', '99']); +}); +ava_1.default('getExtraOptions throws for bad content', t => { + t.throws(() => codeql.getExtraOptions({ '*': 42 }, ['foo'], [])); + t.throws(() => codeql.getExtraOptions({ foo: 87 }, ['foo'], [])); + t.throws(() => codeql.getExtraOptions({ '*': [42], foo: { '*': 87, bar: [99] } }, ['foo', 'bar'], [])); +}); //# sourceMappingURL=codeql.test.js.map \ No newline at end of file diff --git a/lib/codeql.test.js.map b/lib/codeql.test.js.map index 5034ca12d..949d4ce19 100644 --- a/lib/codeql.test.js.map +++ b/lib/codeql.test.js.map @@ -1 +1 @@ -{"version":3,"file":"codeql.test.js","sourceRoot":"","sources":["../src/codeql.test.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+DAAiD;AACjD,8CAAuB;AACvB,gDAAwB;AACxB,2CAA6B;AAE7B,iDAAmC;AACnC,mDAA2C;AAC3C,6CAA+B;AAE/B,0BAAU,CAAC,aAAI,CAAC,CAAC;AAEjB,aAAI,CAAC,8BAA8B,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IAE7C,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;QAEnC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,MAAM,CAAC;QAEzC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAE9D,MAAM,QAAQ,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAE1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAE5B,cAAI,CAAC,qBAAqB,CAAC;iBACxB,GAAG,CAAC,2BAA2B,OAAO,uBAAuB,CAAC;iBAC9D,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,uCAAuC,CAAC,CAAC,CAAC;YAGrF,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,8CAA8C,OAAO,uBAAuB,CAAC;YAE1G,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC;YAE3B,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAC,CAAC,CAAC;SACxD;QAED,MAAM,cAAc,GAAG,SAAS,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAE3D,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,aAAI,CAAC,iCAAiC,EAAE,CAAC,CAAC,EAAE;IAE1C,MAAM,KAAK,GAAG;QACZ,UAAU,EAAE,gBAAgB;QAC5B,YAAY,EAAE,kBAAkB;QAChC,cAAc,EAAE,cAAc;QAC9B,OAAO,EAAE,OAAO;QAChB,aAAa,EAAE,aAAa;QAC5B,cAAc,EAAE,cAAc;KAC/B,CAAC;IAEF,KAAK,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QAC9D,MAAM,GAAG,GAAG,wCAAwC,OAAO,MAAM,CAAC;QAElE,IAAI;YACF,MAAM,aAAa,GAAG,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;YACtD,CAAC,CAAC,SAAS,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;SAC7C;QAAC,OAAO,CAAC,EAAE;YACV,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;SACnB;KACF;AACH,CAAC,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"codeql.test.js","sourceRoot":"","sources":["../src/codeql.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/config-utils.js b/lib/config-utils.js index f3ef4843b..ef6829521 100644 --- a/lib/config-utils.js +++ b/lib/config-utils.js @@ -12,8 +12,8 @@ const fs = __importStar(require("fs")); const yaml = __importStar(require("js-yaml")); const path = __importStar(require("path")); const api = __importStar(require("./api-client")); -const codeql_1 = require("./codeql"); const externalQueries = __importStar(require("./external-queries")); +const languages_1 = require("./languages"); const util = __importStar(require("./util")); // Property names from the user-supplied config file. const NAME_PROPERTY = 'name'; @@ -22,13 +22,6 @@ const QUERIES_PROPERTY = 'queries'; const QUERIES_USES_PROPERTY = 'uses'; const PATHS_IGNORE_PROPERTY = 'paths-ignore'; const PATHS_PROPERTY = 'paths'; -// All the languages supported by CodeQL -const ALL_LANGUAGES = ['csharp', 'cpp', 'go', 'java', 'javascript', 'python']; -// Some alternate names for languages -const LANGUAGE_ALIASES = { - 'c': 'cpp', - 'typescript': 'javascript', -}; /** * A list of queries from https://github.com/github/codeql that * we don't want to run. Disabling them here is a quicker alternative to @@ -71,9 +64,8 @@ function validateQueries(resolvedQueries) { /** * Run 'codeql resolve queries' and add the results to resultMap */ -async function runResolveQueries(resultMap, toResolve, extraSearchPath, errorOnInvalidQueries) { - const codeQl = codeql_1.getCodeQL(); - const resolvedQueries = await codeQl.resolveQueries(toResolve, extraSearchPath); +async function runResolveQueries(codeQL, resultMap, toResolve, extraSearchPath, errorOnInvalidQueries) { + const resolvedQueries = await codeQL.resolveQueries(toResolve, extraSearchPath); for (const [language, queries] of Object.entries(resolvedQueries.byLanguage)) { if (resultMap[language] === undefined) { resultMap[language] = []; @@ -87,9 +79,9 @@ async function runResolveQueries(resultMap, toResolve, extraSearchPath, errorOnI /** * Get the set of queries included by default. */ -async function addDefaultQueries(languages, resultMap) { +async function addDefaultQueries(codeQL, languages, resultMap) { const suites = languages.map(l => l + '-code-scanning.qls'); - await runResolveQueries(resultMap, suites, undefined, false); + await runResolveQueries(codeQL, resultMap, suites, undefined, false); } // The set of acceptable values for built-in suites from the codeql bundle const builtinSuites = ['security-extended', 'security-and-quality']; @@ -97,18 +89,18 @@ const builtinSuites = ['security-extended', 'security-and-quality']; * Determine the set of queries associated with suiteName's suites and add them to resultMap. * Throws an error if suiteName is not a valid builtin suite. */ -async function addBuiltinSuiteQueries(configFile, languages, resultMap, suiteName) { +async function addBuiltinSuiteQueries(configFile, languages, codeQL, resultMap, suiteName) { const suite = builtinSuites.find((suite) => suite === suiteName); if (!suite) { throw new Error(getQueryUsesInvalid(configFile, suiteName)); } const suites = languages.map(l => l + '-' + suiteName + '.qls'); - await runResolveQueries(resultMap, suites, undefined, false); + await runResolveQueries(codeQL, resultMap, suites, undefined, false); } /** * Retrieve the set of queries at localQueryPath and add them to resultMap. */ -async function addLocalQueries(configFile, resultMap, localQueryPath) { +async function addLocalQueries(configFile, codeQL, resultMap, localQueryPath) { // Resolve the local path against the workspace so that when this is // passed to codeql it resolves to exactly the path we expect it to resolve to. const workspacePath = fs.realpathSync(util.getRequiredEnvParam('GITHUB_WORKSPACE')); @@ -125,12 +117,12 @@ async function addLocalQueries(configFile, resultMap, localQueryPath) { } // Get the root of the current repo to use when resolving query dependencies const rootOfRepo = util.getRequiredEnvParam('GITHUB_WORKSPACE'); - await runResolveQueries(resultMap, [absoluteQueryPath], rootOfRepo, true); + await runResolveQueries(codeQL, resultMap, [absoluteQueryPath], rootOfRepo, true); } /** * Retrieve the set of queries at the referenced remote repo and add them to resultMap. */ -async function addRemoteQueries(configFile, resultMap, queryUses) { +async function addRemoteQueries(configFile, codeQL, resultMap, queryUses, tempDir) { let tok = queryUses.split('@'); if (tok.length !== 2) { throw new Error(getQueryUsesInvalid(configFile, queryUses)); @@ -149,11 +141,11 @@ async function addRemoteQueries(configFile, resultMap, queryUses) { } const nwo = tok[0] + '/' + tok[1]; // Checkout the external repository - const rootOfRepo = await externalQueries.checkoutExternalRepository(nwo, ref); + const rootOfRepo = await externalQueries.checkoutExternalRepository(nwo, ref, tempDir); const queryPath = tok.length > 2 ? path.join(rootOfRepo, tok.slice(2).join('/')) : rootOfRepo; - await runResolveQueries(resultMap, [queryPath], rootOfRepo, true); + await runResolveQueries(codeQL, resultMap, [queryPath], rootOfRepo, true); } /** * Parse a query 'uses' field to a discrete set of query files and update resultMap. @@ -163,23 +155,23 @@ async function addRemoteQueries(configFile, resultMap, queryUses) { * local paths starting with './', or references to remote repos, or * a finite set of hardcoded terms for builtin suites. */ -async function parseQueryUses(configFile, languages, resultMap, queryUses) { +async function parseQueryUses(configFile, languages, codeQL, resultMap, queryUses, tempDir) { queryUses = queryUses.trim(); if (queryUses === "") { throw new Error(getQueryUsesInvalid(configFile)); } // Check for the local path case before we start trying to parse the repository name if (queryUses.startsWith("./")) { - await addLocalQueries(configFile, resultMap, queryUses.slice(2)); + await addLocalQueries(configFile, codeQL, resultMap, queryUses.slice(2)); return; } // Check for one of the builtin suites if (queryUses.indexOf('/') === -1 && queryUses.indexOf('@') === -1) { - await addBuiltinSuiteQueries(configFile, languages, resultMap, queryUses); + await addBuiltinSuiteQueries(configFile, languages, codeQL, resultMap, queryUses); return; } // Otherwise, must be a reference to another repo - await addRemoteQueries(configFile, resultMap, queryUses); + await addRemoteQueries(configFile, codeQL, resultMap, queryUses, tempDir); } // Regex validating stars in paths or paths-ignore entries. // The intention is to only allow ** to appear when immediately @@ -300,17 +292,6 @@ exports.getUnknownLanguagesError = getUnknownLanguagesError; */ async function getLanguagesInRepo() { var _a; - // Translate between GitHub's API names for languages and ours - const codeqlLanguages = { - 'C': 'cpp', - 'C++': 'cpp', - 'C#': 'csharp', - 'Go': 'go', - 'Java': 'java', - 'JavaScript': 'javascript', - 'TypeScript': 'javascript', - 'Python': 'python', - }; let repo_nwo = (_a = process.env['GITHUB_REPOSITORY']) === null || _a === void 0 ? void 0 : _a.split("/"); if (repo_nwo) { let owner = repo_nwo[0]; @@ -326,9 +307,10 @@ async function getLanguagesInRepo() { // Since sets in javascript maintain insertion order, using a set here and then splatting it // into an array gives us an array of languages ordered by popularity let languages = new Set(); - for (let lang in response.data) { - if (lang in codeqlLanguages) { - languages.add(codeqlLanguages[lang]); + for (let lang of Object.keys(response.data)) { + let parsedLang = languages_1.parseLanguage(lang); + if (parsedLang !== undefined) { + languages.add(parsedLang); } } return [...languages]; @@ -365,48 +347,45 @@ async function getLanguages() { throw new Error(getNoLanguagesError()); } // Make sure they are supported - const checkedLanguages = []; + const parsedLanguages = []; const unknownLanguages = []; for (let language of languages) { - // Normalise to lower case - language = language.toLowerCase(); - // Resolve any known aliases - if (language in LANGUAGE_ALIASES) { - language = LANGUAGE_ALIASES[language]; - } - const checkedLanguage = ALL_LANGUAGES.find(l => l === language); - if (checkedLanguage === undefined) { + const parsedLanguage = languages_1.parseLanguage(language); + if (parsedLanguage === undefined) { unknownLanguages.push(language); } - else if (checkedLanguages.indexOf(checkedLanguage) === -1) { - checkedLanguages.push(checkedLanguage); + else if (parsedLanguages.indexOf(parsedLanguage) === -1) { + parsedLanguages.push(parsedLanguage); } } if (unknownLanguages.length > 0) { throw new Error(getUnknownLanguagesError(unknownLanguages)); } - return checkedLanguages; + return parsedLanguages; } /** * Get the default config for when the user has not supplied one. */ -async function getDefaultConfig() { +async function getDefaultConfig(tempDir, toolCacheDir, codeQL) { const languages = await getLanguages(); const queries = {}; - await addDefaultQueries(languages, queries); + await addDefaultQueries(codeQL, languages, queries); return { languages: languages, queries: queries, pathsIgnore: [], paths: [], originalUserInput: {}, + tempDir, + toolCacheDir, + codeQLCmd: codeQL.getPath(), }; } exports.getDefaultConfig = getDefaultConfig; /** * Load the config from the given file. */ -async function loadConfig(configFile) { +async function loadConfig(configFile, tempDir, toolCacheDir, codeQL) { let parsedYAML; if (isLocal(configFile)) { // Treat the config file as relative to the workspace @@ -439,7 +418,7 @@ async function loadConfig(configFile) { disableDefaultQueries = parsedYAML[DISABLE_DEFAULT_QUERIES_PROPERTY]; } if (!disableDefaultQueries) { - await addDefaultQueries(languages, queries); + await addDefaultQueries(codeQL, languages, queries); } if (QUERIES_PROPERTY in parsedYAML) { if (!(parsedYAML[QUERIES_PROPERTY] instanceof Array)) { @@ -449,7 +428,7 @@ async function loadConfig(configFile) { if (!(QUERIES_USES_PROPERTY in query) || typeof query[QUERIES_USES_PROPERTY] !== "string") { throw new Error(getQueryUsesInvalid(configFile)); } - await parseQueryUses(configFile, languages, queries, query[QUERIES_USES_PROPERTY]); + await parseQueryUses(configFile, languages, codeQL, queries, query[QUERIES_USES_PROPERTY], tempDir); } } if (PATHS_IGNORE_PROPERTY in parsedYAML) { @@ -487,7 +466,10 @@ async function loadConfig(configFile) { queries, pathsIgnore, paths, - originalUserInput: parsedYAML + originalUserInput: parsedYAML, + tempDir, + toolCacheDir, + codeQLCmd: codeQL.getPath(), }; } /** @@ -496,16 +478,16 @@ async function loadConfig(configFile) { * This will parse the config from the user input if present, or generate * a default config. The parsed config is then stored to a known location. */ -async function initConfig() { +async function initConfig(tempDir, toolCacheDir, codeQL) { const configFile = core.getInput('config-file'); let config; // If no config file was provided create an empty one if (configFile === '') { core.debug('No configuration file was provided'); - config = await getDefaultConfig(); + config = await getDefaultConfig(tempDir, toolCacheDir, codeQL); } else { - config = await loadConfig(configFile); + config = await loadConfig(configFile, tempDir, toolCacheDir, codeQL); } // Save the config so we can easily access it again in the future await saveConfig(config); @@ -559,8 +541,8 @@ async function getRemoteConfig(configFile) { /** * Get the file path where the parsed config will be stored. */ -function getPathToParsedConfigFile() { - return path.join(util.getRequiredEnvParam('RUNNER_TEMP'), 'config'); +function getPathToParsedConfigFile(tempDir) { + return path.join(tempDir, 'config'); } exports.getPathToParsedConfigFile = getPathToParsedConfigFile; /** @@ -568,7 +550,7 @@ exports.getPathToParsedConfigFile = getPathToParsedConfigFile; */ async function saveConfig(config) { const configString = JSON.stringify(config); - const configFile = getPathToParsedConfigFile(); + const configFile = getPathToParsedConfigFile(config.tempDir); fs.mkdirSync(path.dirname(configFile), { recursive: true }); fs.writeFileSync(configFile, configString, 'utf8'); core.debug('Saved config:'); @@ -582,8 +564,8 @@ async function saveConfig(config) { * stored to a known location. On the second and further calls, this will * return the contents of the parsed config from the known location. */ -async function getConfig() { - const configFile = getPathToParsedConfigFile(); +async function getConfig(tempDir) { + const configFile = getPathToParsedConfigFile(tempDir); if (!fs.existsSync(configFile)) { throw new Error("Config file could not be found at expected location. Has the 'init' action been called?"); } diff --git a/lib/config-utils.js.map b/lib/config-utils.js.map index bd318ae53..dd8364d75 100644 --- a/lib/config-utils.js.map +++ b/lib/config-utils.js.map @@ -1 +1 @@ -{"version":3,"file":"config-utils.js","sourceRoot":"","sources":["../src/config-utils.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"config-utils.js","sourceRoot":"","sources":["../src/config-utils.ts"],"names":[],"mappings":";;;;;;;;;AAAA,oDAAsC;AACtC,uCAAyB;AACzB,8CAAgC;AAChC,2CAA6B;AAE7B,kDAAoC;AAEpC,oEAAsD;AACtD,2CAAsD;AACtD,6CAA+B;AAE/B,qDAAqD;AACrD,MAAM,aAAa,GAAG,MAAM,CAAC;AAC7B,MAAM,gCAAgC,GAAG,yBAAyB,CAAC;AACnE,MAAM,gBAAgB,GAAG,SAAS,CAAC;AACnC,MAAM,qBAAqB,GAAG,MAAM,CAAC;AACrC,MAAM,qBAAqB,GAAG,cAAc,CAAC;AAC7C,MAAM,cAAc,GAAG,OAAO,CAAC;AA8D/B;;;;;;;;GAQG;AACH,MAAM,wBAAwB,GAAmC;IAC/D,QAAQ,EAAE;QACR,uDAAuD;QACvD,0DAA0D;KAC3D;CACF,CAAC;AAEF,SAAS,eAAe,CAAC,QAAQ,EAAE,KAAK;IACtC,OAAO,CAAC,wBAAwB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SAC9C,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,eAAqC;IAC5D,MAAM,kBAAkB,GAAG,eAAe,CAAC,kBAAkB,CAAC;IAC9D,MAAM,yBAAyB,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAClE,IAAI,yBAAyB,CAAC,MAAM,KAAK,CAAC,EAAE;QAC1C,MAAM,IAAI,KAAK,CAAC,mDAAmD;YACjE,4DAA4D;YAC5D,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;KACzC;IAED,MAAM,yBAAyB,GAAG,eAAe,CAAC,yBAAyB,CAAC;IAC5E,MAAM,gCAAgC,GAAG,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAChF,IAAI,gCAAgC,CAAC,MAAM,KAAK,CAAC,EAAE;QACjD,MAAM,IAAI,KAAK,CAAC,oDAAoD;YAClE,4DAA4D;YAC5D,gCAAgC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;KAChD;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,iBAAiB,CAC9B,MAAc,EACd,SAA2C,EAC3C,SAAmB,EACnB,eAAmC,EACnC,qBAA8B;IAE9B,MAAM,eAAe,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IAEhF,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE;QAC5E,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE;YACrC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;SAC1B;QACD,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;KAC9F;IAED,IAAI,qBAAqB,EAAE;QACzB,eAAe,CAAC,eAAe,CAAC,CAAC;KAClC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,iBAAiB,CAAC,MAAc,EAAE,SAAmB,EAAE,SAA2C;IAC/G,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,oBAAoB,CAAC,CAAC;IAC5D,MAAM,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AACvE,CAAC;AAED,0EAA0E;AAC1E,MAAM,aAAa,GAAG,CAAC,mBAAmB,EAAE,sBAAsB,CAAU,CAAC;AAE7E;;;GAGG;AACH,KAAK,UAAU,sBAAsB,CACnC,UAAkB,EAClB,SAAmB,EACnB,MAAc,EACd,SAA2C,EAC3C,SAAiB;IAEjB,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;IACjE,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;KAC7D;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,GAAG,SAAS,GAAG,MAAM,CAAC,CAAC;IAChE,MAAM,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AACvE,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,eAAe,CAC5B,UAAkB,EAClB,MAAc,EACd,SAA2C,EAC3C,cAAsB;IAEtB,oEAAoE;IACpE,+EAA+E;IAC/E,MAAM,aAAa,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACpF,IAAI,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IAEjE,wBAAwB;IACxB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE;QACrC,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC;KACvE;IAED,iFAAiF;IACjF,iBAAiB,GAAG,EAAE,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;IAEvD,4EAA4E;IAC5E,IAAI,CAAC,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE;QACxE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC;KAC9E;IAED,4EAA4E;IAC5E,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;IAEhE,MAAM,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,iBAAiB,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;AACpF,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,gBAAgB,CAC7B,UAAkB,EAClB,MAAc,EACd,SAA2C,EAC3C,SAAiB,EACjB,OAAe;IAEf,IAAI,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;QACpB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;KAC7D;IAED,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAEnB,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxB,+BAA+B;IAC/B,+BAA+B;IAC/B,yFAAyF;IACzF,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;QAClB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;KAC7D;IACD,2DAA2D;IAC3D,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAChD,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;KAC7D;IACD,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAElC,mCAAmC;IACnC,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,0BAA0B,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAEvF,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC;QAC9B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/C,CAAC,CAAC,UAAU,CAAC;IAEf,MAAM,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;AAC5E,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,cAAc,CAC3B,UAAkB,EAClB,SAAmB,EACnB,MAAc,EACd,SAA2C,EAC3C,SAAiB,EACjB,OAAe;IAEf,SAAS,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,SAAS,KAAK,EAAE,EAAE;QACpB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC;KAClD;IAED,oFAAoF;IACpF,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;QAC9B,MAAM,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,OAAO;KACR;IAED,sCAAsC;IACtC,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;QAClE,MAAM,sBAAsB,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAClF,OAAO;KACR;IAED,iDAAiD;IACjD,MAAM,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AAC5E,CAAC;AAED,2DAA2D;AAC3D,+DAA+D;AAC/D,oCAAoC;AACpC,MAAM,cAAc,GAAG,mCAAmC,CAAC;AAE3D,wEAAwE;AACxE,iHAAiH;AACjH,MAAM,4BAA4B,GAAG,iBAAiB,CAAC;AAEvD,4EAA4E;AAC5E,6DAA6D;AAC7D,SAAgB,uBAAuB,CACrC,YAAoB,EACpB,YAAoB,EACpB,UAAkB;IAElB,6FAA6F;IAC7F,IAAI,IAAI,GAAG,YAAY,CAAC;IAExB,wEAAwE;IACxE,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;QAC7B,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;KAC1B;IAED,+CAA+C;IAC/C,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;QACxB,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;KAC3C;IAED,mDAAmD;IACnD,IAAI,IAAI,KAAK,EAAE,EAAE;QACf,MAAM,IAAI,KAAK,CAAC,0BAA0B,CACxC,UAAU,EACV,YAAY,EACZ,GAAG,GAAG,YAAY,GAAG,4BAA4B;YAC/C,yEAAyE,CAAC,CAAC,CAAC;KACjF;IAED,+BAA+B;IAC/B,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE;QAC9B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CACxC,UAAU,EACV,YAAY,EACZ,GAAG,GAAG,YAAY,GAAG,uCAAuC;YAC1D,uGAAuG,CAAC,CAAC,CAAC;KAC/G;IAED,0DAA0D;IAC1D,uEAAuE;IACvE,IAAI,IAAI,CAAC,KAAK,CAAC,4BAA4B,CAAC,EAAE;QAC5C,IAAI,CAAC,OAAO,CAAC,0BAA0B,CACrC,UAAU,EACV,YAAY,EACZ,GAAG,GAAG,YAAY,GAAG,uCAAuC;YAC1D,8FAA8F,CAAC,CAAC,CAAC;KACtG;IAED,qCAAqC;IACrC,iDAAiD;IACjD,oEAAoE;IACpE,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;QAC7B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CACxC,UAAU,EACV,YAAY,EACZ,GAAG,GAAG,YAAY,GAAG,kEAAkE;YACrF,wEAAwE,CAAC,CAAC,CAAC;KAChF;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AA1DD,0DA0DC;AAED,SAAgB,cAAc,CAAC,UAAkB;IAC/C,OAAO,0BAA0B,CAAC,UAAU,EAAE,aAAa,EAAE,4BAA4B,CAAC,CAAC;AAC7F,CAAC;AAFD,wCAEC;AAED,SAAgB,+BAA+B,CAAC,UAAkB;IAChE,OAAO,0BAA0B,CAAC,UAAU,EAAE,gCAAgC,EAAE,mBAAmB,CAAC,CAAC;AACvG,CAAC;AAFD,0EAEC;AAED,SAAgB,iBAAiB,CAAC,UAAkB;IAClD,OAAO,0BAA0B,CAAC,UAAU,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;AACtF,CAAC;AAFD,8CAEC;AAED,SAAgB,mBAAmB,CAAC,UAAkB,EAAE,SAAkB;IACxE,OAAO,0BAA0B,CAC/B,UAAU,EACV,gBAAgB,GAAG,GAAG,GAAG,qBAAqB,EAC9C,4BAA4B,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;QACzD,+DAA+D;QAC/D,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/D,CAAC;AAPD,kDAOC;AAED,SAAgB,qBAAqB,CAAC,UAAkB;IACtD,OAAO,0BAA0B,CAAC,UAAU,EAAE,qBAAqB,EAAE,uCAAuC,CAAC,CAAC;AAChH,CAAC;AAFD,sDAEC;AAED,SAAgB,eAAe,CAAC,UAAkB;IAChD,OAAO,0BAA0B,CAAC,UAAU,EAAE,cAAc,EAAE,uCAAuC,CAAC,CAAC;AACzG,CAAC;AAFD,0CAEC;AAED,SAAgB,+BAA+B,CAAC,UAAkB,EAAE,SAAiB;IACnF,OAAO,0BAA0B,CAC/B,UAAU,EACV,gBAAgB,GAAG,GAAG,GAAG,qBAAqB,EAC9C,gCAAgC,GAAG,SAAS,GAAG,gCAAgC,CAAC,CAAC;AACrF,CAAC;AALD,0EAKC;AAED,SAAgB,wBAAwB,CAAC,UAAkB,EAAE,SAAiB;IAC5E,OAAO,0BAA0B,CAC/B,UAAU,EACV,gBAAgB,GAAG,GAAG,GAAG,qBAAqB,EAC9C,gCAAgC,GAAG,SAAS,GAAG,oCAAoC,CAAC,CAAC;AACzF,CAAC;AALD,4DAKC;AAED,SAAgB,yCAAyC,CAAC,UAAkB;IAC1E,OAAO,0BAA0B,GAAG,UAAU,GAAG,+BAA+B,CAAC;AACnF,CAAC;AAFD,8FAEC;AAED,SAAgB,qCAAqC,CAAC,UAAkB;IACtE,OAAO,0BAA0B,GAAG,UAAU,GAAG,kBAAkB,CAAC;AACtE,CAAC;AAFD,sFAEC;AAED,SAAgB,qCAAqC,CAAC,UAAkB;IACtE,IAAI,KAAK,GAAG,0BAA0B,GAAG,UAAU,GAAG,6CAA6C,CAAC;IACpG,KAAK,IAAI,yDAAyD,CAAC;IAEnE,OAAO,KAAK,CAAC;AACf,CAAC;AALD,sFAKC;AAED,SAAgB,iCAAiC,CAAC,UAAkB;IAClE,OAAO,0BAA0B,GAAG,UAAU,GAAG,qBAAqB,CAAC;AACzE,CAAC;AAFD,8EAEC;AAED,SAAgB,kCAAkC,CAAC,UAAkB;IACnE,OAAO,0BAA0B,GAAG,UAAU,GAAG,sCAAsC,CAAC;AAC1F,CAAC;AAFD,gFAEC;AAED,SAAS,0BAA0B,CAAC,UAAkB,EAAE,QAAgB,EAAE,KAAa;IACrF,OAAO,0BAA0B,GAAG,UAAU,GAAG,0BAA0B,GAAG,QAAQ,GAAG,IAAI,GAAG,KAAK,CAAC;AACxG,CAAC;AAED,SAAgB,mBAAmB;IACjC,OAAO,2CAA2C;QAClD,wGAAwG,CAAC;AAC3G,CAAC;AAHD,kDAGC;AAED,SAAgB,wBAAwB,CAAC,SAAmB;IAC1D,OAAO,6CAA6C,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9E,CAAC;AAFD,4DAEC;AAED;;GAEG;AACH,KAAK,UAAU,kBAAkB;;IAC/B,IAAI,QAAQ,SAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,0CAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5D,IAAI,QAAQ,EAAE;QACZ,IAAI,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAEvB,IAAI,CAAC,KAAK,CAAC,eAAe,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC;YACvE,KAAK;YACL,IAAI;SACL,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,0BAA0B,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QAElE,sEAAsE;QACtE,wFAAwF;QACxF,4FAA4F;QAC5F,qEAAqE;QACrE,IAAI,SAAS,GAAkB,IAAI,GAAG,EAAE,CAAC;QACzC,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YAC3C,IAAI,UAAU,GAAG,yBAAa,CAAC,IAAI,CAAC,CAAC;YACrC,IAAI,UAAU,KAAK,SAAS,EAAE;gBAC5B,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;aAC3B;SACF;QACD,OAAO,CAAC,GAAG,SAAS,CAAC,CAAC;KACvB;SAAM;QACL,OAAO,EAAE,CAAC;KACX;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,KAAK,UAAU,YAAY;IAEzB,8CAA8C;IAC9C,IAAI,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;SAC5D,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SAClB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC7B,IAAI,CAAC,IAAI,CAAC,gCAAgC,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;IAExE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;QAC1B,qEAAqE;QACrE,SAAS,GAAG,MAAM,kBAAkB,EAAE,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,oCAAoC,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;KAC7E;IAED,iEAAiE;IACjE,qEAAqE;IACrE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;QAC1B,MAAM,IAAI,KAAK,CAAC,mBAAmB,EAAE,CAAC,CAAC;KACxC;IAED,+BAA+B;IAC/B,MAAM,eAAe,GAAe,EAAE,CAAC;IACvC,MAAM,gBAAgB,GAAa,EAAE,CAAC;IACtC,KAAK,IAAI,QAAQ,IAAI,SAAS,EAAE;QAC9B,MAAM,cAAc,GAAG,yBAAa,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,cAAc,KAAK,SAAS,EAAE;YAChC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACjC;aAAM,IAAI,eAAe,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE;YACzD,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SACtC;KACF;IACD,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;QAC/B,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,CAAC,CAAC;KAC7D;IAED,OAAO,eAAe,CAAC;AACzB,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,gBAAgB,CAAC,OAAe,EAAE,YAAoB,EAAE,MAAc;IAC1F,MAAM,SAAS,GAAG,MAAM,YAAY,EAAE,CAAC;IACvC,MAAM,OAAO,GAAG,EAAE,CAAC;IACnB,MAAM,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACpD,OAAO;QACL,SAAS,EAAE,SAAS;QACpB,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,EAAE;QACf,KAAK,EAAE,EAAE;QACT,iBAAiB,EAAE,EAAE;QACrB,OAAO;QACP,YAAY;QACZ,SAAS,EAAE,MAAM,CAAC,OAAO,EAAE;KAC5B,CAAC;AACJ,CAAC;AAdD,4CAcC;AAED;;GAEG;AACH,KAAK,UAAU,UAAU,CAAC,UAAkB,EAAE,OAAe,EAAE,YAAoB,EAAE,MAAc;IACjG,IAAI,UAAsB,CAAC;IAE3B,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE;QACvB,qDAAqD;QACrD,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;QACnE,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QAErD,UAAU,GAAG,cAAc,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;KACxD;SAAM;QACL,UAAU,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,CAAC;KAChD;IAED,8DAA8D;IAC9D,0CAA0C;IAC1C,IAAI,aAAa,IAAI,UAAU,EAAE;QAC/B,IAAI,OAAO,UAAU,CAAC,aAAa,CAAC,KAAK,QAAQ,EAAE;YACjD,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;SAC7C;QACD,IAAI,UAAU,CAAC,aAAa,CAAE,CAAC,MAAM,KAAK,CAAC,EAAE;YAC3C,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;SAC7C;KACF;IAED,MAAM,SAAS,GAAG,MAAM,YAAY,EAAE,CAAC;IAEvC,MAAM,OAAO,GAAG,EAAE,CAAC;IACnB,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,qBAAqB,GAAG,KAAK,CAAC;IAClC,IAAI,gCAAgC,IAAI,UAAU,EAAE;QAClD,IAAI,OAAO,UAAU,CAAC,gCAAgC,CAAC,KAAK,SAAS,EAAE;YACrE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,UAAU,CAAC,CAAC,CAAC;SAC9D;QACD,qBAAqB,GAAG,UAAU,CAAC,gCAAgC,CAAE,CAAC;KACvE;IACD,IAAI,CAAC,qBAAqB,EAAE;QAC1B,MAAM,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;KACrD;IAED,IAAI,gBAAgB,IAAI,UAAU,EAAE;QAClC,IAAI,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC,YAAY,KAAK,CAAC,EAAE;YACpD,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC;SAChD;QACD,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,gBAAgB,CAAE,EAAE;YACjD,IAAI,CAAC,CAAC,qBAAqB,IAAI,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,qBAAqB,CAAC,KAAK,QAAQ,EAAE;gBACzF,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC;aAClD;YACD,MAAM,cAAc,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC,CAAC;SACrG;KACF;IAED,IAAI,qBAAqB,IAAI,UAAU,EAAE;QACvC,IAAI,CAAC,CAAC,UAAU,CAAC,qBAAqB,CAAC,YAAY,KAAK,CAAC,EAAE;YACzD,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC;SACpD;QACD,UAAU,CAAC,qBAAqB,CAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAChD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,EAAE,EAAE;gBAC3C,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC;aACpD;YACD,WAAW,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,qBAAqB,EAAE,UAAU,CAAC,CAAC,CAAC;QACrF,CAAC,CAAC,CAAC;KACJ;IAED,IAAI,cAAc,IAAI,UAAU,EAAE;QAChC,IAAI,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,YAAY,KAAK,CAAC,EAAE;YAClD,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;SAC9C;QACD,UAAU,CAAC,cAAc,CAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACzC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,EAAE,EAAE;gBAC3C,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;aAC9C;YACD,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;KACJ;IAED,0EAA0E;IAC1E,oCAAoC;IACpC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;QAChC,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,SAAS,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;YACrE,MAAM,IAAI,KAAK,CAAC,yCAAyC,QAAQ,IAAI;gBACjE,8FAA8F,CAAC,CAAC;SACrG;KACF;IAED,OAAO;QACL,SAAS;QACT,OAAO;QACP,WAAW;QACX,KAAK;QACL,iBAAiB,EAAE,UAAU;QAC7B,OAAO;QACP,YAAY;QACZ,SAAS,EAAE,MAAM,CAAC,OAAO,EAAE;KAC5B,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,UAAU,CAAC,OAAe,EAAE,YAAoB,EAAE,MAAc;IACpF,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAChD,IAAI,MAAc,CAAC;IAEnB,qDAAqD;IACrD,IAAI,UAAU,KAAK,EAAE,EAAE;QACrB,IAAI,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACjD,MAAM,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;KAChE;SAAM;QACL,MAAM,GAAG,MAAM,UAAU,CAAC,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;KACtE;IAED,iEAAiE;IACjE,MAAM,UAAU,CAAC,MAAM,CAAC,CAAC;IACzB,OAAO,MAAM,CAAC;AAChB,CAAC;AAfD,gCAeC;AAED,SAAS,OAAO,CAAC,UAAkB;IACjC,2CAA2C;IAC3C,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QAClC,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,cAAc,CAAC,UAAkB,EAAE,aAAqB;IAC/D,2DAA2D;IAC3D,IAAI,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE;QACjE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,UAAU,CAAC,CAAC,CAAC;KACxE;IAED,mCAAmC;IACnC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;QAC9B,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,UAAU,CAAC,CAAC,CAAC;KACpE;IAED,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,UAAkB;IAC/C,gFAAgF;IAChF,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,0DAA0D,CAAC,CAAC;IACtF,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvC,sCAAsC;IACtC,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;QACvE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,UAAU,CAAC,CAAC,CAAC;KACpE;IAED,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC;QACrE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK;QAC1B,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI;QACxB,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI;QACxB,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG;KACvB,CAAC,CAAC;IAEH,IAAI,YAAoB,CAAC;IACzB,IAAI,SAAS,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;QACrE,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;KACtC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;QACvC,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,UAAU,CAAC,CAAC,CAAC;KACjE;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,UAAU,CAAC,CAAC,CAAC;KAChE;IAED,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED;;GAEG;AACH,SAAgB,yBAAyB,CAAC,OAAe;IACvD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACtC,CAAC;AAFD,8DAEC;AAED;;GAEG;AACH,KAAK,UAAU,UAAU,CAAC,MAAc;IACtC,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,UAAU,GAAG,yBAAyB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7D,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;IACnD,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAC5B,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAC3B,CAAC;AAED;;;;;;;GAOG;AACI,KAAK,UAAU,SAAS,CAAC,OAAe;IAC7C,MAAM,UAAU,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;IACtD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;QAC9B,MAAM,IAAI,KAAK,CAAC,yFAAyF,CAAC,CAAC;KAC5G;IACD,MAAM,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACzD,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAC7B,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACzB,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAClC,CAAC;AATD,8BASC"} \ No newline at end of file diff --git a/lib/config-utils.test.js b/lib/config-utils.test.js index 97218aa64..0ae54f4b7 100644 --- a/lib/config-utils.test.js +++ b/lib/config-utils.test.js @@ -16,8 +16,9 @@ const fs = __importStar(require("fs")); const path = __importStar(require("path")); const sinon_1 = __importDefault(require("sinon")); const api = __importStar(require("./api-client")); -const CodeQL = __importStar(require("./codeql")); +const codeql_1 = require("./codeql"); const configUtils = __importStar(require("./config-utils")); +const languages_1 = require("./languages"); const testing_utils_1 = require("./testing-utils"); const util = __importStar(require("./util")); testing_utils_1.setupTests(ava_1.default); @@ -60,7 +61,7 @@ ava_1.default("load empty config", async (t) => { process.env['GITHUB_WORKSPACE'] = tmpDir; setInput('config-file', undefined); setInput('languages', 'javascript,python'); - CodeQL.setCodeQL({ + const codeQL = codeql_1.setCodeQL({ resolveQueries: async function () { return { byLanguage: {}, @@ -69,8 +70,8 @@ ava_1.default("load empty config", async (t) => { }; }, }); - const config = await configUtils.initConfig(); - t.deepEqual(config, await configUtils.getDefaultConfig()); + const config = await configUtils.initConfig(tmpDir, tmpDir, codeQL); + t.deepEqual(config, await configUtils.getDefaultConfig(tmpDir, tmpDir, codeQL)); }); }); ava_1.default("loading config saves config", async (t) => { @@ -79,7 +80,7 @@ ava_1.default("loading config saves config", async (t) => { process.env['GITHUB_WORKSPACE'] = tmpDir; setInput('config-file', undefined); setInput('languages', 'javascript,python'); - CodeQL.setCodeQL({ + const codeQL = codeql_1.setCodeQL({ resolveQueries: async function () { return { byLanguage: {}, @@ -89,14 +90,14 @@ ava_1.default("loading config saves config", async (t) => { }, }); // Sanity check the saved config file does not already exist - t.false(fs.existsSync(configUtils.getPathToParsedConfigFile())); + t.false(fs.existsSync(configUtils.getPathToParsedConfigFile(tmpDir))); // Sanity check that getConfig throws before we have called initConfig - await t.throwsAsync(configUtils.getConfig); - const config1 = await configUtils.initConfig(); + await t.throwsAsync(() => configUtils.getConfig(tmpDir)); + const config1 = await configUtils.initConfig(tmpDir, tmpDir, codeQL); // The saved config file should now exist - t.true(fs.existsSync(configUtils.getPathToParsedConfigFile())); + t.true(fs.existsSync(configUtils.getPathToParsedConfigFile(tmpDir))); // And that same newly-initialised config should now be returned by getConfig - const config2 = await configUtils.getConfig(); + const config2 = await configUtils.getConfig(tmpDir); t.deepEqual(config1, config2); }); }); @@ -106,7 +107,7 @@ ava_1.default("load input outside of workspace", async (t) => { process.env['GITHUB_WORKSPACE'] = tmpDir; setInput('config-file', '../input'); try { - await configUtils.initConfig(); + await configUtils.initConfig(tmpDir, tmpDir, codeql_1.getCachedCodeQL()); throw new Error('initConfig did not throw error'); } catch (err) { @@ -121,7 +122,7 @@ ava_1.default("load non-local input with invalid repo syntax", async (t) => { // no filename given, just a repo setInput('config-file', 'octo-org/codeql-config@main'); try { - await configUtils.initConfig(); + await configUtils.initConfig(tmpDir, tmpDir, codeql_1.getCachedCodeQL()); throw new Error('initConfig did not throw error'); } catch (err) { @@ -137,7 +138,7 @@ ava_1.default("load non-existent input", async (t) => { setInput('config-file', 'input'); setInput('languages', 'javascript'); try { - await configUtils.initConfig(); + await configUtils.initConfig(tmpDir, tmpDir, codeql_1.getCachedCodeQL()); throw new Error('initConfig did not throw error'); } catch (err) { @@ -149,7 +150,7 @@ ava_1.default("load non-empty input", async (t) => { return await util.withTmpDir(async (tmpDir) => { process.env['RUNNER_TEMP'] = tmpDir; process.env['GITHUB_WORKSPACE'] = tmpDir; - CodeQL.setCodeQL({ + const codeQL = codeql_1.setCodeQL({ resolveQueries: async function () { return { byLanguage: { @@ -177,7 +178,7 @@ ava_1.default("load non-empty input", async (t) => { fs.mkdirSync(path.join(tmpDir, 'foo')); // And the config we expect it to parse to const expectedConfig = { - languages: ['javascript'], + languages: [languages_1.Language.javascript], queries: { 'javascript': ['/foo/a.ql', '/bar/b.ql'] }, pathsIgnore: ['a', 'b'], paths: ['c/d'], @@ -188,11 +189,14 @@ ava_1.default("load non-empty input", async (t) => { 'paths-ignore': ['a', 'b'], paths: ['c/d'], }, + tempDir: tmpDir, + toolCacheDir: tmpDir, + codeQLCmd: codeQL.getPath(), }; fs.writeFileSync(path.join(tmpDir, 'input'), inputFileContents, 'utf8'); setInput('config-file', 'input'); setInput('languages', 'javascript'); - const actualConfig = await configUtils.initConfig(); + const actualConfig = await configUtils.initConfig(tmpDir, tmpDir, codeQL); // Should exactly equal the object we constructed earlier t.deepEqual(actualConfig, expectedConfig); }); @@ -207,7 +211,7 @@ ava_1.default("default queries are used", async (t) => { // We determine this by whether CodeQL.resolveQueries is called // with the correct arguments. const resolveQueriesArgs = []; - CodeQL.setCodeQL({ + const codeQL = codeql_1.setCodeQL({ resolveQueries: async function (queries, extraSearchPath) { resolveQueriesArgs.push({ queries, extraSearchPath }); return { @@ -231,7 +235,7 @@ ava_1.default("default queries are used", async (t) => { fs.writeFileSync(path.join(tmpDir, 'input'), inputFileContents, 'utf8'); setInput('config-file', 'input'); setInput('languages', 'javascript'); - await configUtils.initConfig(); + await configUtils.initConfig(tmpDir, tmpDir, codeQL); // Check resolve queries was called correctly t.deepEqual(resolveQueriesArgs.length, 1); t.deepEqual(resolveQueriesArgs[0].queries, ['javascript-code-scanning.qls']); @@ -242,7 +246,7 @@ ava_1.default("API client used when reading remote config", async (t) => { return await util.withTmpDir(async (tmpDir) => { process.env['RUNNER_TEMP'] = tmpDir; process.env['GITHUB_WORKSPACE'] = tmpDir; - CodeQL.setCodeQL({ + const codeQL = codeql_1.setCodeQL({ resolveQueries: async function () { return { byLanguage: { @@ -275,7 +279,7 @@ ava_1.default("API client used when reading remote config", async (t) => { fs.mkdirSync(path.join(tmpDir, 'foo/bar'), { recursive: true }); setInput('config-file', 'octo-org/codeql-config/config.yaml@main'); setInput('languages', 'javascript'); - await configUtils.initConfig(); + await configUtils.initConfig(tmpDir, tmpDir, codeQL); t.assert(spyGetContents.called); }); }); @@ -288,7 +292,7 @@ ava_1.default("Remote config handles the case where a directory is provided", as const repoReference = 'octo-org/codeql-config/config.yaml@main'; setInput('config-file', repoReference); try { - await configUtils.initConfig(); + await configUtils.initConfig(tmpDir, tmpDir, codeql_1.getCachedCodeQL()); throw new Error('initConfig did not throw error'); } catch (err) { @@ -307,7 +311,7 @@ ava_1.default("Invalid format of remote config handled correctly", async (t) => const repoReference = 'octo-org/codeql-config/config.yaml@main'; setInput('config-file', repoReference); try { - await configUtils.initConfig(); + await configUtils.initConfig(tmpDir, tmpDir, codeql_1.getCachedCodeQL()); throw new Error('initConfig did not throw error'); } catch (err) { @@ -321,7 +325,7 @@ ava_1.default("No detected languages", async (t) => { process.env['GITHUB_WORKSPACE'] = tmpDir; mockListLanguages([]); try { - await configUtils.initConfig(); + await configUtils.initConfig(tmpDir, tmpDir, codeql_1.getCachedCodeQL()); throw new Error('initConfig did not throw error'); } catch (err) { @@ -335,7 +339,7 @@ ava_1.default("Unknown languages", async (t) => { process.env['GITHUB_WORKSPACE'] = tmpDir; setInput('languages', 'ruby,english'); try { - await configUtils.initConfig(); + await configUtils.initConfig(tmpDir, tmpDir, codeql_1.getCachedCodeQL()); throw new Error('initConfig did not throw error'); } catch (err) { @@ -348,7 +352,7 @@ function doInvalidInputTest(testName, inputFileContents, expectedErrorMessageGen return await util.withTmpDir(async (tmpDir) => { process.env['RUNNER_TEMP'] = tmpDir; process.env['GITHUB_WORKSPACE'] = tmpDir; - CodeQL.setCodeQL({ + const codeQL = codeql_1.setCodeQL({ resolveQueries: async function () { return { byLanguage: {}, @@ -362,7 +366,7 @@ function doInvalidInputTest(testName, inputFileContents, expectedErrorMessageGen setInput('config-file', 'input'); setInput('languages', 'javascript'); try { - await configUtils.initConfig(); + await configUtils.initConfig(tmpDir, tmpDir, codeQL); throw new Error('initConfig did not throw error'); } catch (err) { diff --git a/lib/config-utils.test.js.map b/lib/config-utils.test.js.map index 6a6a82faf..a5d19654f 100644 --- a/lib/config-utils.test.js.map +++ b/lib/config-utils.test.js.map @@ -1 +1 @@ -{"version":3,"file":"config-utils.test.js","sourceRoot":"","sources":["../src/config-utils.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"config-utils.test.js","sourceRoot":"","sources":["../src/config-utils.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/external-queries.js b/lib/external-queries.js index f15a49685..fa660dfb5 100644 --- a/lib/external-queries.js +++ b/lib/external-queries.js @@ -11,14 +11,12 @@ const core = __importStar(require("@actions/core")); const exec = __importStar(require("@actions/exec")); const fs = __importStar(require("fs")); const path = __importStar(require("path")); -const util = __importStar(require("./util")); /** * Check out repository at the given ref, and return the directory of the checkout. */ -async function checkoutExternalRepository(repository, ref) { - const folder = util.getRequiredEnvParam('RUNNER_TEMP'); +async function checkoutExternalRepository(repository, ref, tempDir) { core.info('Checking out ' + repository); - const checkoutLocation = path.join(folder, repository); + const checkoutLocation = path.join(tempDir, repository); if (!fs.existsSync(checkoutLocation)) { const repoURL = 'https://github.com/' + repository + '.git'; await exec.exec('git', ['clone', repoURL, checkoutLocation]); diff --git a/lib/external-queries.js.map b/lib/external-queries.js.map index 0a190c616..8a94b633e 100644 --- a/lib/external-queries.js.map +++ b/lib/external-queries.js.map @@ -1 +1 @@ -{"version":3,"file":"external-queries.js","sourceRoot":"","sources":["../src/external-queries.ts"],"names":[],"mappings":";;;;;;;;;AAAA,oDAAsC;AACtC,oDAAsC;AACtC,uCAAyB;AACzB,2CAA6B;AAE7B,6CAA+B;AAE/B;;GAEG;AACI,KAAK,UAAU,0BAA0B,CAAC,UAAkB,EAAE,GAAW;IAC9E,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;IAEvD,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,CAAC;IAExC,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACvD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE;QACpC,MAAM,OAAO,GAAG,qBAAqB,GAAG,UAAU,GAAG,MAAM,CAAC;QAC5D,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC;QAC7D,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACrB,cAAc,GAAG,gBAAgB;YACjC,YAAY,GAAG,gBAAgB,GAAG,OAAO;YACzC,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;KACJ;IAED,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAjBD,gEAiBC"} \ No newline at end of file +{"version":3,"file":"external-queries.js","sourceRoot":"","sources":["../src/external-queries.ts"],"names":[],"mappings":";;;;;;;;;AAAA,oDAAsC;AACtC,oDAAsC;AACtC,uCAAyB;AACzB,2CAA6B;AAE7B;;GAEG;AACI,KAAK,UAAU,0BAA0B,CAAC,UAAkB,EAAE,GAAW,EAAE,OAAe;IAC/F,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,CAAC;IAExC,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACxD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE;QACpC,MAAM,OAAO,GAAG,qBAAqB,GAAG,UAAU,GAAG,MAAM,CAAC;QAC5D,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC;QAC7D,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACrB,cAAc,GAAG,gBAAgB;YACjC,YAAY,GAAG,gBAAgB,GAAG,OAAO;YACzC,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;KACJ;IAED,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAfD,gEAeC"} \ No newline at end of file diff --git a/lib/external-queries.test.js b/lib/external-queries.test.js index d66d82432..06d9d2f84 100644 --- a/lib/external-queries.test.js +++ b/lib/external-queries.test.js @@ -19,8 +19,7 @@ const util = __importStar(require("./util")); testing_utils_1.setupTests(ava_1.default); ava_1.default("checkoutExternalQueries", async (t) => { await util.withTmpDir(async (tmpDir) => { - process.env["RUNNER_TEMP"] = tmpDir; - await externalQueries.checkoutExternalRepository("github/codeql-go", "df4c6869212341b601005567381944ed90906b6b"); + await externalQueries.checkoutExternalRepository("github/codeql-go", "df4c6869212341b601005567381944ed90906b6b", tmpDir); // COPYRIGHT file existed in df4c6869212341b601005567381944ed90906b6b but not in the default branch t.true(fs.existsSync(path.join(tmpDir, "github", "codeql-go", "COPYRIGHT"))); }); diff --git a/lib/external-queries.test.js.map b/lib/external-queries.test.js.map index ad9fd4805..2181cea69 100644 --- a/lib/external-queries.test.js.map +++ b/lib/external-queries.test.js.map @@ -1 +1 @@ -{"version":3,"file":"external-queries.test.js","sourceRoot":"","sources":["../src/external-queries.test.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8CAAuB;AACvB,uCAAyB;AACzB,2CAA6B;AAE7B,oEAAsD;AACtD,mDAA2C;AAC3C,6CAA+B;AAE/B,0BAAU,CAAC,aAAI,CAAC,CAAC;AAEjB,aAAI,CAAC,yBAAyB,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IACxC,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;QACnC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC;QACpC,MAAM,eAAe,CAAC,0BAA0B,CAAC,kBAAkB,EAAE,0CAA0C,CAAC,CAAC;QAEjH,mGAAmG;QACnG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"external-queries.test.js","sourceRoot":"","sources":["../src/external-queries.test.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8CAAuB;AACvB,uCAAyB;AACzB,2CAA6B;AAE7B,oEAAsD;AACtD,mDAA2C;AAC3C,6CAA+B;AAE/B,0BAAU,CAAC,aAAI,CAAC,CAAC;AAEjB,aAAI,CAAC,yBAAyB,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IACxC,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;QACnC,MAAM,eAAe,CAAC,0BAA0B,CAC9C,kBAAkB,EAClB,0CAA0C,EAC1C,MAAM,CAAC,CAAC;QAEV,mGAAmG;QACnG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/lib/finalize-db.js b/lib/finalize-db.js index b0bf4e9e8..ff0803255 100644 --- a/lib/finalize-db.js +++ b/lib/finalize-db.js @@ -12,6 +12,7 @@ const fs = __importStar(require("fs")); const path = __importStar(require("path")); const codeql_1 = require("./codeql"); const configUtils = __importStar(require("./config-utils")); +const languages_1 = require("./languages"); const logging_1 = require("./logging"); const repository_1 = require("./repository"); const sharedEnv = __importStar(require("./shared-environment")); @@ -29,9 +30,9 @@ async function sendStatusReport(startedAt, queriesStats, uploadStats, error) { await util.sendStatusReport(statusReport); } async function createdDBForScannedLanguages(databaseFolder, config) { - const codeql = codeql_1.getCodeQL(); + const codeql = codeql_1.getCodeQL(config.codeQLCmd); for (const language of config.languages) { - if (codeql_1.isScannedLanguage(language)) { + if (languages_1.isScannedLanguage(language)) { core.startGroup('Extracting ' + language); await codeql.extractScannedLanguage(path.join(databaseFolder, language), language); core.endGroup(); @@ -40,7 +41,7 @@ async function createdDBForScannedLanguages(databaseFolder, config) { } async function finalizeDatabaseCreation(databaseFolder, config) { await createdDBForScannedLanguages(databaseFolder, config); - const codeql = codeql_1.getCodeQL(); + const codeql = codeql_1.getCodeQL(config.codeQLCmd); for (const language of config.languages) { core.startGroup('Finalizing ' + language); await codeql.finalizeDatabase(path.join(databaseFolder, language)); @@ -49,7 +50,7 @@ async function finalizeDatabaseCreation(databaseFolder, config) { } // Runs queries and creates sarif files in the given folder async function runQueries(databaseFolder, sarifFolder, config) { - const codeql = codeql_1.getCodeQL(); + const codeql = codeql_1.getCodeQL(config.codeQLCmd); for (let language of fs.readdirSync(databaseFolder)) { core.startGroup('Analyzing ' + language); const queries = config.queries[language] || []; @@ -86,10 +87,10 @@ async function run() { if (!await util.sendStatusReport(await util.createStatusReportBase('finish', 'starting', startedAt), true)) { return; } - const config = await configUtils.getConfig(); + const config = await configUtils.getConfig(util.getRequiredEnvParam('RUNNER_TEMP')); core.exportVariable(sharedEnv.ODASA_TRACER_CONFIGURATION, ''); delete process.env[sharedEnv.ODASA_TRACER_CONFIGURATION]; - const databaseFolder = util.getCodeQLDatabasesDir(); + const databaseFolder = util.getCodeQLDatabasesDir(config.tempDir); const sarifFolder = core.getInput('output'); fs.mkdirSync(sarifFolder, { recursive: true }); core.info('Finalizing database creation'); diff --git a/lib/finalize-db.js.map b/lib/finalize-db.js.map index 1921ec524..033de3812 100644 --- a/lib/finalize-db.js.map +++ b/lib/finalize-db.js.map @@ -1 +1 @@ -{"version":3,"file":"finalize-db.js","sourceRoot":"","sources":["../src/finalize-db.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"finalize-db.js","sourceRoot":"","sources":["../src/finalize-db.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/fingerprints.js b/lib/fingerprints.js index d9a1e3b27..f5a8d2217 100644 --- a/lib/fingerprints.js +++ b/lib/fingerprints.js @@ -10,7 +10,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); -const core = __importStar(require("@actions/core")); const fs = __importStar(require("fs")); const long_1 = __importDefault(require("long")); const tab = '\t'.charCodeAt(0); @@ -122,7 +121,7 @@ function hash(callback, input) { exports.hash = hash; // Generate a hash callback function that updates the given result in-place // when it recieves a hash for the correct line number. Ignores hashes for other lines. -function locationUpdateCallback(result, location) { +function locationUpdateCallback(result, location, logger) { var _a, _b; let locationStartLine = (_b = (_a = location.physicalLocation) === null || _a === void 0 ? void 0 : _a.region) === null || _b === void 0 ? void 0 : _b.startLine; if (locationStartLine === undefined) { @@ -146,7 +145,7 @@ function locationUpdateCallback(result, location) { result.partialFingerprints.primaryLocationLineHash = hash; } else if (existingFingerprint !== hash) { - core.warning('Calculated fingerprint of ' + hash + + logger.warning('Calculated fingerprint of ' + hash + ' for file ' + location.physicalLocation.artifactLocation.uri + ' line ' + lineNumber + ', but found existing inconsistent fingerprint value ' + existingFingerprint); @@ -157,21 +156,21 @@ function locationUpdateCallback(result, location) { // the source file so we can hash it. // If possible returns a absolute file path for the source file, // or if not possible then returns undefined. -function resolveUriToFile(location, artifacts) { +function resolveUriToFile(location, artifacts, logger) { // This may be referencing an artifact if (!location.uri && location.index !== undefined) { if (typeof location.index !== 'number' || location.index < 0 || location.index >= artifacts.length || typeof artifacts[location.index].location !== 'object') { - core.debug(`Ignoring location as URI "${location.index}" is invalid`); + logger.debug(`Ignoring location as URI "${location.index}" is invalid`); return undefined; } location = artifacts[location.index].location; } // Get the URI and decode if (typeof location.uri !== 'string') { - core.debug(`Ignoring location as index "${location.uri}" is invalid`); + logger.debug(`Ignoring location as index "${location.uri}" is invalid`); return undefined; } let uri = decodeURIComponent(location.uri); @@ -181,13 +180,13 @@ function resolveUriToFile(location, artifacts) { uri = uri.substring(fileUriPrefix.length); } if (uri.indexOf('://') !== -1) { - core.debug(`Ignoring location URI "${uri}" as the scheme is not recognised`); + logger.debug(`Ignoring location URI "${uri}" as the scheme is not recognised`); return undefined; } // Discard any absolute paths that aren't in the src root const srcRootPrefix = process.env['GITHUB_WORKSPACE'] + '/'; if (uri.startsWith('/') && !uri.startsWith(srcRootPrefix)) { - core.debug(`Ignoring location URI "${uri}" as it is outside of the src root`); + logger.debug(`Ignoring location URI "${uri}" as it is outside of the src root`); return undefined; } // Just assume a relative path is relative to the src root. @@ -198,7 +197,7 @@ function resolveUriToFile(location, artifacts) { } // Check the file exists if (!fs.existsSync(uri)) { - core.debug(`Unable to compute fingerprint for non-existent file: ${uri}`); + logger.debug(`Unable to compute fingerprint for non-existent file: ${uri}`); return undefined; } return uri; @@ -206,7 +205,7 @@ function resolveUriToFile(location, artifacts) { exports.resolveUriToFile = resolveUriToFile; // Compute fingerprints for results in the given sarif file // and return an updated sarif file contents. -function addFingerprints(sarifContents) { +function addFingerprints(sarifContents, logger) { var _a, _b; let sarif = JSON.parse(sarifContents); // Gather together results for the same file and construct @@ -219,17 +218,17 @@ function addFingerprints(sarifContents) { // Check the primary location is defined correctly and is in the src root const primaryLocation = (result.locations || [])[0]; if (!((_b = (_a = primaryLocation) === null || _a === void 0 ? void 0 : _a.physicalLocation) === null || _b === void 0 ? void 0 : _b.artifactLocation)) { - core.debug(`Unable to compute fingerprint for invalid location: ${JSON.stringify(primaryLocation)}`); + logger.debug(`Unable to compute fingerprint for invalid location: ${JSON.stringify(primaryLocation)}`); continue; } - const filepath = resolveUriToFile(primaryLocation.physicalLocation.artifactLocation, artifacts); + const filepath = resolveUriToFile(primaryLocation.physicalLocation.artifactLocation, artifacts, logger); if (!filepath) { continue; } if (!callbacksByFile[filepath]) { callbacksByFile[filepath] = []; } - callbacksByFile[filepath].push(locationUpdateCallback(result, primaryLocation)); + callbacksByFile[filepath].push(locationUpdateCallback(result, primaryLocation, logger)); } } // Now hash each file that was found diff --git a/lib/fingerprints.js.map b/lib/fingerprints.js.map index 3b8064b84..eec4a3b97 100644 --- a/lib/fingerprints.js.map +++ b/lib/fingerprints.js.map @@ -1 +1 @@ -{"version":3,"file":"fingerprints.js","sourceRoot":"","sources":["../src/fingerprints.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"fingerprints.js","sourceRoot":"","sources":["../src/fingerprints.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/fingerprints.test.js b/lib/fingerprints.test.js index 01b867866..11951a512 100644 --- a/lib/fingerprints.test.js +++ b/lib/fingerprints.test.js @@ -14,6 +14,7 @@ const ava_1 = __importDefault(require("ava")); const fs = __importStar(require("fs")); const path = __importStar(require("path")); const fingerprints = __importStar(require("./fingerprints")); +const logging_1 = require("./logging"); const testing_utils_1 = require("./testing-utils"); testing_utils_1.setupTests(ava_1.default); function testHash(t, input, expectedHashes) { @@ -98,7 +99,7 @@ ava_1.default('hash', (t) => { function testResolveUriToFile(uri, index, artifactsURIs) { const location = { "uri": uri, "index": index }; const artifacts = artifactsURIs.map(uri => ({ "location": { "uri": uri } })); - return fingerprints.resolveUriToFile(location, artifacts); + return fingerprints.resolveUriToFile(location, artifacts, logging_1.getCLILogger()); } ava_1.default('resolveUriToFile', t => { // The resolveUriToFile method checks that the file exists and is in the right directory @@ -143,7 +144,7 @@ ava_1.default('addFingerprints', t => { expected = JSON.stringify(JSON.parse(expected)); // The URIs in the SARIF files resolve to files in the testdata directory process.env['GITHUB_WORKSPACE'] = path.normalize(__dirname + '/../src/testdata'); - t.deepEqual(fingerprints.addFingerprints(input), expected); + t.deepEqual(fingerprints.addFingerprints(input, logging_1.getCLILogger()), expected); }); ava_1.default('missingRegions', t => { // Run an end-to-end test on a test file @@ -154,6 +155,6 @@ ava_1.default('missingRegions', t => { expected = JSON.stringify(JSON.parse(expected)); // The URIs in the SARIF files resolve to files in the testdata directory process.env['GITHUB_WORKSPACE'] = path.normalize(__dirname + '/../src/testdata'); - t.deepEqual(fingerprints.addFingerprints(input), expected); + t.deepEqual(fingerprints.addFingerprints(input, logging_1.getCLILogger()), expected); }); //# sourceMappingURL=fingerprints.test.js.map \ No newline at end of file diff --git a/lib/fingerprints.test.js.map b/lib/fingerprints.test.js.map index a6becd3c2..09047973d 100644 --- a/lib/fingerprints.test.js.map +++ b/lib/fingerprints.test.js.map @@ -1 +1 @@ -{"version":3,"file":"fingerprints.test.js","sourceRoot":"","sources":["../src/fingerprints.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"fingerprints.test.js","sourceRoot":"","sources":["../src/fingerprints.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/languages.js b/lib/languages.js new file mode 100644 index 000000000..2e839b098 --- /dev/null +++ b/lib/languages.js @@ -0,0 +1,43 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +// All the languages supported by CodeQL +var Language; +(function (Language) { + Language["csharp"] = "csharp"; + Language["cpp"] = "cpp"; + Language["go"] = "go"; + Language["java"] = "java"; + Language["javascript"] = "javascript"; + Language["python"] = "python"; +})(Language = exports.Language || (exports.Language = {})); +// Additional names for languages +const LANGUAGE_ALIASES = { + 'c': Language.cpp, + 'c++': Language.cpp, + 'c#': Language.csharp, + 'typescript': Language.javascript, +}; +// Translate from user input or GitHub's API names for languages to CodeQL's names for languages +function parseLanguage(language) { + // Normalise to lower case + language = language.toLowerCase(); + // See if it's an exact match + if (language in Language) { + return language; + } + // Check language aliases + if (language in LANGUAGE_ALIASES) { + return LANGUAGE_ALIASES[language]; + } + return undefined; +} +exports.parseLanguage = parseLanguage; +function isTracedLanguage(language) { + return ['cpp', 'java', 'csharp'].includes(language); +} +exports.isTracedLanguage = isTracedLanguage; +function isScannedLanguage(language) { + return !isTracedLanguage(language); +} +exports.isScannedLanguage = isScannedLanguage; +//# sourceMappingURL=languages.js.map \ No newline at end of file diff --git a/lib/languages.js.map b/lib/languages.js.map new file mode 100644 index 000000000..8cb6df90a --- /dev/null +++ b/lib/languages.js.map @@ -0,0 +1 @@ +{"version":3,"file":"languages.js","sourceRoot":"","sources":["../src/languages.ts"],"names":[],"mappings":";;AAAA,wCAAwC;AACxC,IAAY,QAOX;AAPD,WAAY,QAAQ;IAClB,6BAAiB,CAAA;IACjB,uBAAW,CAAA;IACX,qBAAS,CAAA;IACT,yBAAa,CAAA;IACb,qCAAyB,CAAA;IACzB,6BAAiB,CAAA;AACnB,CAAC,EAPW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAOnB;AAED,iCAAiC;AACjC,MAAM,gBAAgB,GAA+B;IACnD,GAAG,EAAE,QAAQ,CAAC,GAAG;IACjB,KAAK,EAAE,QAAQ,CAAC,GAAG;IACnB,IAAI,EAAE,QAAQ,CAAC,MAAM;IACrB,YAAY,EAAE,QAAQ,CAAC,UAAU;CAClC,CAAC;AAEF,gGAAgG;AAChG,SAAgB,aAAa,CAAC,QAAgB;IAC5C,0BAA0B;IAC1B,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IAElC,6BAA6B;IAC7B,IAAI,QAAQ,IAAI,QAAQ,EAAE;QACxB,OAAO,QAAoB,CAAC;KAC7B;IAED,yBAAyB;IACzB,IAAI,QAAQ,IAAI,gBAAgB,EAAE;QAChC,OAAO,gBAAgB,CAAC,QAAQ,CAAC,CAAC;KACnC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAfD,sCAeC;AAGD,SAAgB,gBAAgB,CAAC,QAAkB;IACjD,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACtD,CAAC;AAFD,4CAEC;AAED,SAAgB,iBAAiB,CAAC,QAAkB;IAClD,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AACrC,CAAC;AAFD,8CAEC"} \ No newline at end of file diff --git a/lib/languages.test.js b/lib/languages.test.js new file mode 100644 index 000000000..9de8b4173 --- /dev/null +++ b/lib/languages.test.js @@ -0,0 +1,44 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const ava_1 = __importDefault(require("ava")); +const languages_1 = require("./languages"); +const testing_utils_1 = require("./testing-utils"); +testing_utils_1.setupTests(ava_1.default); +ava_1.default('parseLangauge', async (t) => { + // Exact matches + t.deepEqual(languages_1.parseLanguage('csharp'), languages_1.Language.csharp); + t.deepEqual(languages_1.parseLanguage('cpp'), languages_1.Language.cpp); + t.deepEqual(languages_1.parseLanguage('go'), languages_1.Language.go); + t.deepEqual(languages_1.parseLanguage('java'), languages_1.Language.java); + t.deepEqual(languages_1.parseLanguage('javascript'), languages_1.Language.javascript); + t.deepEqual(languages_1.parseLanguage('python'), languages_1.Language.python); + // Aliases + t.deepEqual(languages_1.parseLanguage('c'), languages_1.Language.cpp); + t.deepEqual(languages_1.parseLanguage('c++'), languages_1.Language.cpp); + t.deepEqual(languages_1.parseLanguage('c#'), languages_1.Language.csharp); + t.deepEqual(languages_1.parseLanguage('typescript'), languages_1.Language.javascript); + // Not matches + t.deepEqual(languages_1.parseLanguage('foo'), undefined); + t.deepEqual(languages_1.parseLanguage(' '), undefined); + t.deepEqual(languages_1.parseLanguage(''), undefined); +}); +ava_1.default('isTracedLanguage', async (t) => { + t.true(languages_1.isTracedLanguage(languages_1.Language.cpp)); + t.true(languages_1.isTracedLanguage(languages_1.Language.java)); + t.true(languages_1.isTracedLanguage(languages_1.Language.csharp)); + t.false(languages_1.isTracedLanguage(languages_1.Language.go)); + t.false(languages_1.isTracedLanguage(languages_1.Language.javascript)); + t.false(languages_1.isTracedLanguage(languages_1.Language.python)); +}); +ava_1.default('isScannedLanguage', async (t) => { + t.false(languages_1.isScannedLanguage(languages_1.Language.cpp)); + t.false(languages_1.isScannedLanguage(languages_1.Language.java)); + t.false(languages_1.isScannedLanguage(languages_1.Language.csharp)); + t.true(languages_1.isScannedLanguage(languages_1.Language.go)); + t.true(languages_1.isScannedLanguage(languages_1.Language.javascript)); + t.true(languages_1.isScannedLanguage(languages_1.Language.python)); +}); +//# sourceMappingURL=languages.test.js.map \ No newline at end of file diff --git a/lib/languages.test.js.map b/lib/languages.test.js.map new file mode 100644 index 000000000..e732925fe --- /dev/null +++ b/lib/languages.test.js.map @@ -0,0 +1 @@ +{"version":3,"file":"languages.test.js","sourceRoot":"","sources":["../src/languages.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/setup-tracer.js b/lib/setup-tracer.js index 762a41653..4fe76b086 100644 --- a/lib/setup-tracer.js +++ b/lib/setup-tracer.js @@ -14,6 +14,7 @@ const path = __importStar(require("path")); const analysisPaths = __importStar(require("./analysis-paths")); const codeql_1 = require("./codeql"); const configUtils = __importStar(require("./config-utils")); +const languages_1 = require("./languages"); const util = __importStar(require("./util")); const CRITICAL_TRACER_VARS = new Set(['SEMMLE_PRELOAD_libtrace', , @@ -49,14 +50,14 @@ async function tracerConfig(codeql, database, compilerSpec) { } return info; } -function concatTracerConfigs(configs) { +function concatTracerConfigs(tracerConfigs, config) { // A tracer config is a map containing additional environment variables and a tracer 'spec' file. // A tracer 'spec' file has the following format [log_file, number_of_blocks, blocks_text] // Merge the environments const env = {}; let copyExecutables = false; let envSize = 0; - for (const v of configs) { + for (const v of tracerConfigs) { for (let e of Object.entries(v.env)) { const name = e[0]; const value = e[1]; @@ -77,7 +78,7 @@ function concatTracerConfigs(configs) { } } // Concatenate spec files into a new spec file - let languages = Object.keys(configs); + let languages = Object.keys(tracerConfigs); const cppIndex = languages.indexOf('cpp'); // Make sure cpp is the last language, if it's present since it must be concatenated last if (cppIndex !== -1) { @@ -88,15 +89,14 @@ function concatTracerConfigs(configs) { let totalLines = []; let totalCount = 0; for (let lang of languages) { - const lines = fs.readFileSync(configs[lang].spec, 'utf8').split(/\r?\n/); + const lines = fs.readFileSync(tracerConfigs[lang].spec, 'utf8').split(/\r?\n/); const count = parseInt(lines[1], 10); totalCount += count; totalLines.push(...lines.slice(2)); } - const tempFolder = util.getRequiredEnvParam('RUNNER_TEMP'); - const newLogFilePath = path.resolve(tempFolder, 'compound-build-tracer.log'); - const spec = path.resolve(tempFolder, 'compound-spec'); - const compoundTempFolder = path.resolve(tempFolder, 'compound-temp'); + const newLogFilePath = path.resolve(config.tempDir, 'compound-build-tracer.log'); + const spec = path.resolve(config.tempDir, 'compound-spec'); + const compoundTempFolder = path.resolve(config.tempDir, 'compound-temp'); const newSpecContent = [newLogFilePath, totalCount.toString(10), ...totalLines]; if (copyExecutables) { env['SEMMLE_COPY_EXECUTABLES_ROOT'] = compoundTempFolder; @@ -152,7 +152,7 @@ async function run() { await codeql.printVersion(); core.endGroup(); core.startGroup('Load language configuration'); - config = await configUtils.initConfig(); + config = await configUtils.initConfig(util.getRequiredEnvParam('RUNNER_TEMP'), util.getRequiredEnvParam('RUNNER_TOOL_CACHE'), codeql); analysisPaths.includeAndExcludeAnalysisPaths(config); core.endGroup(); } @@ -173,7 +173,7 @@ async function run() { // Setup CODEQL_RAM flag (todo improve this https://github.com/github/dsp-code-scanning/issues/935) const codeqlRam = process.env['CODEQL_RAM'] || '6500'; core.exportVariable('CODEQL_RAM', codeqlRam); - const databaseFolder = util.getCodeQLDatabasesDir(); + const databaseFolder = util.getCodeQLDatabasesDir(config.tempDir); fs.mkdirSync(databaseFolder, { recursive: true }); let tracedLanguageConfigs = []; // TODO: replace this code once CodeQL supports multi-language tracing @@ -182,29 +182,30 @@ async function run() { // Init language database await codeql.databaseInit(languageDatabase, language, sourceRoot); // TODO: add better detection of 'traced languages' instead of using a hard coded list - if (codeql_1.isTracedLanguage(language)) { + if (languages_1.isTracedLanguage(language)) { const config = await tracerConfig(codeql, languageDatabase); tracedLanguageConfigs.push(config); } } if (tracedLanguageConfigs.length > 0) { - const mainTracerConfig = concatTracerConfigs(tracedLanguageConfigs); + const mainTracerConfig = concatTracerConfigs(tracedLanguageConfigs, config); if (mainTracerConfig.spec) { for (let entry of Object.entries(mainTracerConfig.env)) { core.exportVariable(entry[0], entry[1]); } core.exportVariable('ODASA_TRACER_CONFIGURATION', mainTracerConfig.spec); + const codeQLDir = path.dirname(codeql.getPath()); if (process.platform === 'darwin') { - core.exportVariable('DYLD_INSERT_LIBRARIES', path.join(codeql.getDir(), 'tools', 'osx64', 'libtrace.dylib')); + core.exportVariable('DYLD_INSERT_LIBRARIES', path.join(codeQLDir, 'tools', 'osx64', 'libtrace.dylib')); } else if (process.platform === 'win32') { await exec.exec('powershell', [ path.resolve(__dirname, '..', 'src', 'inject-tracer.ps1'), - path.resolve(codeql.getDir(), 'tools', 'win64', 'tracer.exe'), + path.resolve(codeQLDir, 'tools', 'win64', 'tracer.exe'), ], { env: { 'ODASA_TRACER_CONFIGURATION': mainTracerConfig.spec } }); } else { - core.exportVariable('LD_PRELOAD', path.join(codeql.getDir(), 'tools', 'linux64', '${LIB}trace.so')); + core.exportVariable('LD_PRELOAD', path.join(codeQLDir, 'tools', 'linux64', '${LIB}trace.so')); } } } diff --git a/lib/setup-tracer.js.map b/lib/setup-tracer.js.map index 5c2dfb171..4259b1744 100644 --- a/lib/setup-tracer.js.map +++ b/lib/setup-tracer.js.map @@ -1 +1 @@ -{"version":3,"file":"setup-tracer.js","sourceRoot":"","sources":["../src/setup-tracer.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"setup-tracer.js","sourceRoot":"","sources":["../src/setup-tracer.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/upload-lib.js b/lib/upload-lib.js index c7e4bfb62..5798aa004 100644 --- a/lib/upload-lib.js +++ b/lib/upload-lib.js @@ -166,7 +166,7 @@ async function uploadFiles(sarifFiles, repositoryNwo, commitOid, ref, analysisKe validateSarifFileSchema(file, logger); } let sarifPayload = combineSarifFiles(sarifFiles); - sarifPayload = fingerprints.addFingerprints(sarifPayload); + sarifPayload = fingerprints.addFingerprints(sarifPayload, logger); const zipped_sarif = zlib_1.default.gzipSync(sarifPayload).toString('base64'); let checkoutURI = file_url_1.default(checkoutPath); const toolNames = util.getToolNames(sarifPayload); diff --git a/lib/upload-lib.js.map b/lib/upload-lib.js.map index bb0a8102b..43c7378e3 100644 --- a/lib/upload-lib.js.map +++ b/lib/upload-lib.js.map @@ -1 +1 @@ -{"version":3,"file":"upload-lib.js","sourceRoot":"","sources":["../src/upload-lib.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"upload-lib.js","sourceRoot":"","sources":["../src/upload-lib.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/util.js b/lib/util.js index 45b5b39e5..a0e2d76bd 100644 --- a/lib/util.js +++ b/lib/util.js @@ -45,6 +45,25 @@ function getRequiredEnvParam(paramName) { return value; } exports.getRequiredEnvParam = getRequiredEnvParam; +/** + * Get the extra options for the codeql commands. + */ +function getExtraOptionsEnvParam() { + const varName = 'CODEQL_ACTION_EXTRA_OPTIONS'; + const raw = process.env[varName]; + if (raw === undefined || raw.length === 0) { + return {}; + } + try { + return JSON.parse(raw); + } + catch (e) { + throw new Error(varName + + ' environment variable is set, but does not contain valid JSON: ' + + e.message); + } +} +exports.getExtraOptionsEnvParam = getExtraOptionsEnvParam; function isLocalRun() { return !!process.env.CODEQL_LOCAL_RUN && process.env.CODEQL_LOCAL_RUN !== 'false' @@ -319,36 +338,44 @@ function getMemoryFlag() { } exports.getMemoryFlag = getMemoryFlag; /** - * Get the codeql `--threads` value specified for the `threads` input. The value - * defaults to 1. The value will be capped to the number of available CPUs. + * Get the codeql `--threads` value specified for the `threads` input. + * If not value was specified, all available threads will be used. + * + * The value will be capped to the number of available CPUs. * * @returns string */ function getThreadsFlag() { - let numThreads = 1; + let numThreads; const numThreadsString = core.getInput("threads"); + const maxThreads = os.cpus().length; if (numThreadsString) { numThreads = Number(numThreadsString); if (Number.isNaN(numThreads)) { throw new Error(`Invalid threads setting "${numThreadsString}", specified.`); } - const maxThreads = os.cpus().length; if (numThreads > maxThreads) { + core.info(`Clamping desired number of threads (${numThreads}) to max available (${maxThreads}).`); numThreads = maxThreads; } const minThreads = -maxThreads; if (numThreads < minThreads) { + core.info(`Clamping desired number of free threads (${numThreads}) to max available (${minThreads}).`); numThreads = minThreads; } } + else { + // Default to using all threads + numThreads = maxThreads; + } return `--threads=${numThreads}`; } exports.getThreadsFlag = getThreadsFlag; /** * Get the directory where CodeQL databases should be placed. */ -function getCodeQLDatabasesDir() { - return path.resolve(getRequiredEnvParam('RUNNER_TEMP'), 'codeql_databases'); +function getCodeQLDatabasesDir(tempDir) { + return path.resolve(tempDir, 'codeql_databases'); } exports.getCodeQLDatabasesDir = getCodeQLDatabasesDir; //# sourceMappingURL=util.js.map \ No newline at end of file diff --git a/lib/util.js.map b/lib/util.js.map index 320b90fcf..3f1dd0676 100644 --- a/lib/util.js.map +++ b/lib/util.js.map @@ -1 +1 @@ -{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/util.test.js b/lib/util.test.js index c92cd72a4..b5f4161a2 100644 --- a/lib/util.test.js +++ b/lib/util.test.js @@ -92,4 +92,25 @@ ava_1.default('prepareEnvironment() when a local run', t => { t.deepEqual(process.env.GITHUB_JOB, 'UNKNOWN-JOB'); process.env.CODEQL_LOCAL_RUN = origLocalRun; }); +ava_1.default('getExtraOptionsEnvParam() succeeds on valid JSON with invalid options (for now)', t => { + const origExtraOptions = process.env.CODEQL_ACTION_EXTRA_OPTIONS; + const options = { foo: 42 }; + process.env.CODEQL_ACTION_EXTRA_OPTIONS = JSON.stringify(options); + t.deepEqual(util.getExtraOptionsEnvParam(), options); + process.env.CODEQL_ACTION_EXTRA_OPTIONS = origExtraOptions; +}); +ava_1.default('getExtraOptionsEnvParam() succeeds on valid options', t => { + const origExtraOptions = process.env.CODEQL_ACTION_EXTRA_OPTIONS; + const options = { database: { init: ["--debug"] } }; + process.env.CODEQL_ACTION_EXTRA_OPTIONS = + JSON.stringify(options); + t.deepEqual(util.getExtraOptionsEnvParam(), options); + process.env.CODEQL_ACTION_EXTRA_OPTIONS = origExtraOptions; +}); +ava_1.default('getExtraOptionsEnvParam() fails on invalid JSON', t => { + const origExtraOptions = process.env.CODEQL_ACTION_EXTRA_OPTIONS; + process.env.CODEQL_ACTION_EXTRA_OPTIONS = "{{invalid-json}}"; + t.throws(util.getExtraOptionsEnvParam); + process.env.CODEQL_ACTION_EXTRA_OPTIONS = origExtraOptions; +}); //# sourceMappingURL=util.test.js.map \ No newline at end of file diff --git a/lib/util.test.js.map b/lib/util.test.js.map index df299e559..9f2eb61f9 100644 --- a/lib/util.test.js.map +++ b/lib/util.test.js.map @@ -1 +1 @@ -{"version":3,"file":"util.test.js","sourceRoot":"","sources":["../src/util.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"util.test.js","sourceRoot":"","sources":["../src/util.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/queries/unguarded-action-lib.ql b/queries/unguarded-action-lib.ql new file mode 100644 index 000000000..c7c872214 --- /dev/null +++ b/queries/unguarded-action-lib.ql @@ -0,0 +1,108 @@ +/** + * @name Unguarded actions library use + * @description Code that runs outside of GitHub Actions tries to use a library that should only be used when running on actions. + * @kind problem + * @problem.severity error + * @id javascript/codeql-action/unguarded-action-lib + */ + +import javascript + +/** + * An import from a library that is meant for GitHub Actions and + * we do not want to be using outside of actions. + */ +class ActionsLibImport extends ImportDeclaration { + ActionsLibImport() { + getImportedPath().getValue().matches("@actions/%") + } + + string getName() { + result = getImportedPath().getValue() + } + + Variable getAProvidedVariable() { + result = getASpecifier().getLocal().getVariable() + } +} + +/** + * An entrypoint to the CLI. + */ +class ClIEntrypoint extends Function { + ClIEntrypoint() { + getFile().getAbsolutePath().matches("%/cli.ts") + } +} + +/** + * A check of whether we are in actions mode or CLI mode. + */ +class ModeGuard extends IfStmt { + ModeGuard() { + getCondition().(EqualityTest).getAnOperand().(StringLiteral).getValue() = "actions" or + getCondition().(EqualityTest).getAnOperand().(StringLiteral).getValue() = "cli" + } + + string getOperand() { + result = getCondition().(EqualityTest).getAnOperand().(StringLiteral).getValue() + } + + predicate isPositive() { + getCondition().(EqualityTest).getPolarity() = true + } + + /** + * Get the then or else block that is the "actions" path. + */ + Stmt getActionsBlock() { + (getOperand() = "actions" and isPositive() and result = getThen()) + or + (getOperand() = "cli" and not isPositive() and result = getThen()) + or + (getOperand() = "actions" and not isPositive() and result = getElse()) + or + (getOperand() = "cli" and isPositive() and result = getElse()) + } + + /** + * Get an expr that is only executed on actions + */ + Expr getAnActionsExpr() { + getActionsBlock().getAChildStmt*().getAChildExpr*() = result + } +} + +/** + * Any expr that is a transitive child of the given function + * and is not only called on actions. + */ +Expr getAFunctionChildExpr(Function f) { + not exists(ModeGuard guard | guard.getAnActionsExpr() = result) and + result.getContainer() = f +} + +/* + * Result is a function that is called from the body of the given function `f` + * and is not only called on actions. + */ +Function calledBy(Function f) { + exists(InvokeExpr invokeExpr | + invokeExpr = getAFunctionChildExpr(f) and + invokeExpr.getResolvedCallee() = result and + not exists(ModeGuard guard | guard.getAnActionsExpr() = invokeExpr) + ) + or + // Assume outer function causes inner function to be called + (result instanceof Expr and + result.getEnclosingContainer() = f and + not exists(ModeGuard guard | guard.getAnActionsExpr() = result)) +} + +from VarAccess v, ActionsLibImport actionsLib, ClIEntrypoint cliEntry +where actionsLib.getAProvidedVariable() = v.getVariable() + and getAFunctionChildExpr(calledBy*(cliEntry)) = v +select v, "$@ is imported from $@ and this code can be called from $@", + v, v.getName(), + actionsLib, actionsLib.getName(), + cliEntry, "the CLI" diff --git a/src/analysis-paths.test.ts b/src/analysis-paths.test.ts index 7579fd782..2b830a154 100644 --- a/src/analysis-paths.test.ts +++ b/src/analysis-paths.test.ts @@ -2,33 +2,44 @@ import test from 'ava'; import * as analysisPaths from './analysis-paths'; import {setupTests} from './testing-utils'; +import * as util from './util'; setupTests(test); test("emptyPaths", async t => { - const config = { - languages: [], - queries: {}, - pathsIgnore: [], - paths: [], - originalUserInput: {}, - }; - analysisPaths.includeAndExcludeAnalysisPaths(config); - t.is(process.env['LGTM_INDEX_INCLUDE'], undefined); - t.is(process.env['LGTM_INDEX_EXCLUDE'], undefined); - t.is(process.env['LGTM_INDEX_FILTERS'], undefined); + return await util.withTmpDir(async tmpDir => { + const config = { + languages: [], + queries: {}, + pathsIgnore: [], + paths: [], + originalUserInput: {}, + tempDir: tmpDir, + toolCacheDir: tmpDir, + codeQLCmd: '', + }; + analysisPaths.includeAndExcludeAnalysisPaths(config); + t.is(process.env['LGTM_INDEX_INCLUDE'], undefined); + t.is(process.env['LGTM_INDEX_EXCLUDE'], undefined); + t.is(process.env['LGTM_INDEX_FILTERS'], undefined); + }); }); test("nonEmptyPaths", async t => { - const config = { - languages: [], - queries: {}, - paths: ['path1', 'path2', '**/path3'], - pathsIgnore: ['path4', 'path5', 'path6/**'], - originalUserInput: {}, - }; - analysisPaths.includeAndExcludeAnalysisPaths(config); - t.is(process.env['LGTM_INDEX_INCLUDE'], 'path1\npath2'); - t.is(process.env['LGTM_INDEX_EXCLUDE'], 'path4\npath5'); - t.is(process.env['LGTM_INDEX_FILTERS'], 'include:path1\ninclude:path2\ninclude:**/path3\nexclude:path4\nexclude:path5\nexclude:path6/**'); + return await util.withTmpDir(async tmpDir => { + const config = { + languages: [], + queries: {}, + paths: ['path1', 'path2', '**/path3'], + pathsIgnore: ['path4', 'path5', 'path6/**'], + originalUserInput: {}, + tempDir: tmpDir, + toolCacheDir: tmpDir, + codeQLCmd: '', + }; + analysisPaths.includeAndExcludeAnalysisPaths(config); + t.is(process.env['LGTM_INDEX_INCLUDE'], 'path1\npath2'); + t.is(process.env['LGTM_INDEX_EXCLUDE'], 'path4\npath5'); + t.is(process.env['LGTM_INDEX_FILTERS'], 'include:path1\ninclude:path2\ninclude:**/path3\nexclude:path4\nexclude:path5\nexclude:path6/**'); + }); }); diff --git a/src/autobuild.ts b/src/autobuild.ts index 5c611499a..e1ca5e8b3 100644 --- a/src/autobuild.ts +++ b/src/autobuild.ts @@ -1,7 +1,8 @@ import * as core from '@actions/core'; -import { getCodeQL, isTracedLanguage } from './codeql'; +import { getCodeQL } from './codeql'; import * as config_utils from './config-utils'; +import { isTracedLanguage } from './languages'; import * as util from './util'; interface AutobuildStatusReport extends util.StatusReportBase { @@ -41,7 +42,7 @@ async function run() { return; } - const config = await config_utils.getConfig(); + const config = await config_utils.getConfig(util.getRequiredEnvParam('RUNNER_TEMP')); // Attempt to find a language to autobuild // We want pick the dominant language in the repo from the ones we're able to build @@ -62,7 +63,7 @@ async function run() { } core.startGroup(`Attempting to automatically build ${language} code`); - const codeQL = getCodeQL(); + const codeQL = getCodeQL(config.codeQLCmd); await codeQL.runAutobuild(language); core.endGroup(); diff --git a/src/codeql.test.ts b/src/codeql.test.ts index 2d665b5a3..0db008fb2 100644 --- a/src/codeql.test.ts +++ b/src/codeql.test.ts @@ -63,3 +63,35 @@ test('parse codeql bundle url version', t => { } } }); + +test('getExtraOptions works for explicit paths', t => { + t.deepEqual(codeql.getExtraOptions({}, ['foo'], []), []); + + t.deepEqual(codeql.getExtraOptions({foo: [42]}, ['foo'], []), ['42']); + + t.deepEqual(codeql.getExtraOptions({foo: {bar: [42]}}, ['foo', 'bar'], []), ['42']); +}); + +test('getExtraOptions works for wildcards', t => { + t.deepEqual(codeql.getExtraOptions({'*': [42]}, ['foo'], []), ['42']); +}); + +test('getExtraOptions works for wildcards and explicit paths', t => { + let o1 = {'*': [42], foo: [87]}; + t.deepEqual(codeql.getExtraOptions(o1, ['foo'], []), ['42', '87']); + + let o2 = {'*': [42], foo: [87]}; + t.deepEqual(codeql.getExtraOptions(o2, ['foo', 'bar'], []), ['42']); + + let o3 = {'*': [42], foo: { '*': [87], bar: [99]}}; + let p = ['foo', 'bar']; + t.deepEqual(codeql.getExtraOptions(o3, p, []), ['42', '87', '99']); +}); + +test('getExtraOptions throws for bad content', t => { + t.throws(() => codeql.getExtraOptions({'*': 42}, ['foo'], [])); + + t.throws(() => codeql.getExtraOptions({foo: 87}, ['foo'], [])); + + t.throws(() => codeql.getExtraOptions({'*': [42], foo: { '*': 87, bar: [99]}}, ['foo', 'bar'], [])); +}); diff --git a/src/codeql.ts b/src/codeql.ts index 0e081a80f..ddf93aed8 100644 --- a/src/codeql.ts +++ b/src/codeql.ts @@ -12,13 +12,35 @@ import uuidV4 from 'uuid/v4'; import * as api from './api-client'; import * as defaults from './defaults.json'; // Referenced from codeql-action-sync-tool! +import { Language } from './languages'; import * as util from './util'; +type Options = (string|number|boolean)[]; + +/** + * Extra command line options for the codeql commands. + */ +interface ExtraOptions { + '*'?: Options; + database?: { + '*'?: Options, + init?: Options, + 'trace-command'?: Options, + analyze?: Options, + finalize?: Options + }; + resolve?: { + '*'?: Options, + extractor?: Options, + queries?: Options + }; +} + export interface CodeQL { /** - * Get the directory where the CodeQL executable is located. + * Get the path of the CodeQL executable. */ - getDir(): string; + getPath(): string; /** * Print version information about CodeQL. */ @@ -31,16 +53,16 @@ export interface CodeQL { /** * Run 'codeql database init'. */ - databaseInit(databasePath: string, language: string, sourceRoot: string): Promise; + databaseInit(databasePath: string, language: Language, sourceRoot: string): Promise; /** * Runs the autobuilder for the given language. */ - runAutobuild(language: string): Promise; + runAutobuild(language: Language): Promise; /** * Extract code for a scanned language using 'codeql database trace-command' * and running the language extracter. */ - extractScannedLanguage(database: string, language: string): Promise; + extractScannedLanguage(database: string, language: Language): Promise; /** * Finalize a database using 'codeql database finalize'. */ @@ -75,12 +97,6 @@ export interface ResolveQueriesOutput { */ let cachedCodeQL: CodeQL | undefined = undefined; -/** - * Environment variable used to store the location of the CodeQL CLI executable. - * Value is set by setupCodeQL and read by getCodeQL. - */ -const CODEQL_ACTION_CMD = "CODEQL_ACTION_CMD"; - const CODEQL_BUNDLE_VERSION = defaults.bundleVersion; const CODEQL_BUNDLE_NAME = "codeql-bundle.tar.gz"; const CODEQL_DEFAULT_ACTION_REPOSITORY = "github/codeql-action"; @@ -198,7 +214,6 @@ export async function setupCodeQL(): Promise { } cachedCodeQL = getCodeQLForCmd(codeqlCmd); - core.exportVariable(CODEQL_ACTION_CMD, codeqlCmd); return cachedCodeQL; } catch (e) { @@ -229,16 +244,24 @@ export function getCodeQLURLVersion(url: string): string { return s; } -export function getCodeQL(): CodeQL { +/** + * Use the CodeQL executable located at the given path. + */ +export function getCodeQL(cmd: string): CodeQL { if (cachedCodeQL === undefined) { - const codeqlCmd = util.getRequiredEnvParam(CODEQL_ACTION_CMD); - cachedCodeQL = getCodeQLForCmd(codeqlCmd); + cachedCodeQL = getCodeQLForCmd(cmd); } return cachedCodeQL; } -function resolveFunction(partialCodeql: Partial, methodName: string): T { +function resolveFunction( + partialCodeql: Partial, + methodName: string, + defaultImplementation?: T): T { if (typeof partialCodeql[methodName] !== 'function') { + if (defaultImplementation !== undefined) { + return defaultImplementation; + } const dummyMethod = () => { throw new Error('CodeQL ' + methodName + ' method not correctly defined'); }; @@ -253,9 +276,9 @@ function resolveFunction(partialCodeql: Partial, methodName: string): * Accepts a partial object and any undefined methods will be implemented * to immediately throw an exception indicating which method is missing. */ -export function setCodeQL(partialCodeql: Partial) { +export function setCodeQL(partialCodeql: Partial): CodeQL { cachedCodeQL = { - getDir: resolveFunction(partialCodeql, 'getDir'), + getPath: resolveFunction(partialCodeql, 'getPath', () => '/tmp/dummy-path'), printVersion: resolveFunction(partialCodeql, 'printVersion'), getTracerEnv: resolveFunction(partialCodeql, 'getTracerEnv'), databaseInit: resolveFunction(partialCodeql, 'databaseInit'), @@ -265,12 +288,27 @@ export function setCodeQL(partialCodeql: Partial) { resolveQueries: resolveFunction(partialCodeql, 'resolveQueries'), databaseAnalyze: resolveFunction(partialCodeql, 'databaseAnalyze') }; + return cachedCodeQL; +} + +/** + * Get the cached CodeQL object. Should only be used from tests. + * + * TODO: Work out a good way for tests to get this from the test context + * instead of having to have this method. + */ +export function getCachedCodeQL(): CodeQL { + if (cachedCodeQL === undefined) { + // Should never happen as setCodeQL is called by testing-utils.setupTests + throw new Error('cachedCodeQL undefined'); + } + return cachedCodeQL; } function getCodeQLForCmd(cmd: string): CodeQL { return { - getDir: function() { - return path.dirname(cmd); + getPath: function() { + return cmd; }, printVersion: async function() { await exec.exec(cmd, [ @@ -286,22 +324,24 @@ function getCodeQLForCmd(cmd: string): CodeQL { 'trace-command', databasePath, ...compilerSpecArg, + ...getExtraOptionsFromEnv(['database', 'trace-command']), process.execPath, path.resolve(__dirname, 'tracer-env.js'), envFile ]); return JSON.parse(fs.readFileSync(envFile, 'utf-8')); }, - databaseInit: async function(databasePath: string, language: string, sourceRoot: string) { + databaseInit: async function(databasePath: string, language: Language, sourceRoot: string) { await exec.exec(cmd, [ 'database', 'init', databasePath, '--language=' + language, '--source-root=' + sourceRoot, + ...getExtraOptionsFromEnv(['database', 'init']), ]); }, - runAutobuild: async function(language: string) { + runAutobuild: async function(language: Language) { const cmdName = process.platform === 'win32' ? 'autobuild.cmd' : 'autobuild.sh'; const autobuildCmd = path.join(path.dirname(cmd), language, 'tools', cmdName); @@ -315,7 +355,7 @@ function getCodeQLForCmd(cmd: string): CodeQL { await exec.exec(autobuildCmd); }, - extractScannedLanguage: async function(databasePath: string, language: string) { + extractScannedLanguage: async function(databasePath: string, language: Language) { // Get extractor location let extractorPath = ''; await exec.exec( @@ -324,7 +364,8 @@ function getCodeQLForCmd(cmd: string): CodeQL { 'resolve', 'extractor', '--format=json', - '--language=' + language + '--language=' + language, + ...getExtraOptionsFromEnv(['resolve', 'extractor']), ], { silent: true, @@ -342,6 +383,7 @@ function getCodeQLForCmd(cmd: string): CodeQL { await exec.exec(cmd, [ 'database', 'trace-command', + ...getExtraOptionsFromEnv(['database', 'trace-command']), databasePath, '--', traceCommand @@ -351,6 +393,7 @@ function getCodeQLForCmd(cmd: string): CodeQL { await exec.exec(cmd, [ 'database', 'finalize', + ...getExtraOptionsFromEnv(['database', 'finalize']), databasePath ]); }, @@ -359,7 +402,8 @@ function getCodeQLForCmd(cmd: string): CodeQL { 'resolve', 'queries', ...queries, - '--format=bylanguage' + '--format=bylanguage', + ...getExtraOptionsFromEnv(['resolve', 'queries']) ]; if (extraSearchPath !== undefined) { codeqlArgs.push('--search-path', extraSearchPath); @@ -385,16 +429,58 @@ function getCodeQLForCmd(cmd: string): CodeQL { '--format=sarif-latest', '--output=' + sarifFile, '--no-sarif-add-snippets', + ...getExtraOptionsFromEnv(['database', 'analyze']), querySuite ]); } }; } -export function isTracedLanguage(language: string): boolean { - return ['cpp', 'java', 'csharp'].includes(language); +/** + * Gets the options for `path` of `options` as an array of extra option strings. + */ +function getExtraOptionsFromEnv(path: string[]) { + let options: ExtraOptions = util.getExtraOptionsEnvParam(); + return getExtraOptions(options, path, []); } -export function isScannedLanguage(language: string): boolean { - return !isTracedLanguage(language); +/** + * Gets the options for `path` of `options` as an array of extra option strings. + * + * - the special terminal step name '*' in `options` matches all path steps + * - throws an exception if this conversion is impossible. + */ +export /* exported for testing */ function getExtraOptions( + options: any, + path: string[], + pathInfo: string[]): string[] { + /** + * Gets `options` as an array of extra option strings. + * + * - throws an exception mentioning `pathInfo` if this conversion is impossible. + */ + function asExtraOptions(options: any, pathInfo: string[]): string[] { + if (options === undefined) { + return []; + } + if (!Array.isArray(options)) { + const msg = + `The extra options for '${pathInfo.join('.')}' ('${JSON.stringify(options)}') are not in an array.`; + throw new Error(msg); + } + return options.map(o => { + const t = typeof o; + if (t !== 'string' && t !== 'number' && t !== 'boolean') { + const msg = + `The extra option for '${pathInfo.join('.')}' ('${JSON.stringify(o)}') is not a primitive value.`; + throw new Error(msg); + } + return o + ''; + }); + } + let all = asExtraOptions(options?.['*'], pathInfo.concat('*')); + let specific = path.length === 0 ? + asExtraOptions(options, pathInfo) : + getExtraOptions(options?.[path[0]], path?.slice(1), pathInfo.concat(path[0])); + return all.concat(specific); } diff --git a/src/config-utils.test.ts b/src/config-utils.test.ts index 25cf6fd46..0c1e48693 100644 --- a/src/config-utils.test.ts +++ b/src/config-utils.test.ts @@ -5,8 +5,9 @@ import * as path from 'path'; import sinon from 'sinon'; import * as api from './api-client'; -import * as CodeQL from './codeql'; +import { getCachedCodeQL, setCodeQL } from './codeql'; import * as configUtils from './config-utils'; +import { Language } from "./languages"; import {setupTests} from './testing-utils'; import * as util from './util'; @@ -57,7 +58,7 @@ test("load empty config", async t => { setInput('config-file', undefined); setInput('languages', 'javascript,python'); - CodeQL.setCodeQL({ + const codeQL = setCodeQL({ resolveQueries: async function() { return { byLanguage: {}, @@ -67,9 +68,9 @@ test("load empty config", async t => { }, }); - const config = await configUtils.initConfig(); + const config = await configUtils.initConfig(tmpDir, tmpDir, codeQL); - t.deepEqual(config, await configUtils.getDefaultConfig()); + t.deepEqual(config, await configUtils.getDefaultConfig(tmpDir, tmpDir, codeQL)); }); }); @@ -81,7 +82,7 @@ test("loading config saves config", async t => { setInput('config-file', undefined); setInput('languages', 'javascript,python'); - CodeQL.setCodeQL({ + const codeQL = setCodeQL({ resolveQueries: async function() { return { byLanguage: {}, @@ -93,18 +94,18 @@ test("loading config saves config", async t => { // Sanity check the saved config file does not already exist - t.false(fs.existsSync(configUtils.getPathToParsedConfigFile())); + t.false(fs.existsSync(configUtils.getPathToParsedConfigFile(tmpDir))); // Sanity check that getConfig throws before we have called initConfig - await t.throwsAsync(configUtils.getConfig); + await t.throwsAsync(() => configUtils.getConfig(tmpDir)); - const config1 = await configUtils.initConfig(); + const config1 = await configUtils.initConfig(tmpDir, tmpDir, codeQL); // The saved config file should now exist - t.true(fs.existsSync(configUtils.getPathToParsedConfigFile())); + t.true(fs.existsSync(configUtils.getPathToParsedConfigFile(tmpDir))); // And that same newly-initialised config should now be returned by getConfig - const config2 = await configUtils.getConfig(); + const config2 = await configUtils.getConfig(tmpDir); t.deepEqual(config1, config2); }); }); @@ -117,7 +118,7 @@ test("load input outside of workspace", async t => { setInput('config-file', '../input'); try { - await configUtils.initConfig(); + await configUtils.initConfig(tmpDir, tmpDir, getCachedCodeQL()); throw new Error('initConfig did not throw error'); } catch (err) { t.deepEqual(err, new Error(configUtils.getConfigFileOutsideWorkspaceErrorMessage(path.join(tmpDir, '../input')))); @@ -134,7 +135,7 @@ test("load non-local input with invalid repo syntax", async t => { setInput('config-file', 'octo-org/codeql-config@main'); try { - await configUtils.initConfig(); + await configUtils.initConfig(tmpDir, tmpDir, getCachedCodeQL()); throw new Error('initConfig did not throw error'); } catch (err) { t.deepEqual(err, new Error(configUtils.getConfigFileRepoFormatInvalidMessage('octo-org/codeql-config@main'))); @@ -152,7 +153,7 @@ test("load non-existent input", async t => { setInput('languages', 'javascript'); try { - await configUtils.initConfig(); + await configUtils.initConfig(tmpDir, tmpDir, getCachedCodeQL()); throw new Error('initConfig did not throw error'); } catch (err) { t.deepEqual(err, new Error(configUtils.getConfigFileDoesNotExistErrorMessage(path.join(tmpDir, 'input')))); @@ -165,7 +166,7 @@ test("load non-empty input", async t => { process.env['RUNNER_TEMP'] = tmpDir; process.env['GITHUB_WORKSPACE'] = tmpDir; - CodeQL.setCodeQL({ + const codeQL = setCodeQL({ resolveQueries: async function() { return { byLanguage: { @@ -196,7 +197,7 @@ test("load non-empty input", async t => { // And the config we expect it to parse to const expectedConfig: configUtils.Config = { - languages: ['javascript'], + languages: [Language.javascript], queries: {'javascript': ['/foo/a.ql', '/bar/b.ql']}, pathsIgnore: ['a', 'b'], paths: ['c/d'], @@ -207,13 +208,16 @@ test("load non-empty input", async t => { 'paths-ignore': ['a', 'b'], paths: ['c/d'], }, + tempDir: tmpDir, + toolCacheDir: tmpDir, + codeQLCmd: codeQL.getPath(), }; fs.writeFileSync(path.join(tmpDir, 'input'), inputFileContents, 'utf8'); setInput('config-file', 'input'); setInput('languages', 'javascript'); - const actualConfig = await configUtils.initConfig(); + const actualConfig = await configUtils.initConfig(tmpDir, tmpDir, codeQL); // Should exactly equal the object we constructed earlier t.deepEqual(actualConfig, expectedConfig); @@ -232,7 +236,7 @@ test("default queries are used", async t => { // with the correct arguments. const resolveQueriesArgs: {queries: string[], extraSearchPath: string | undefined}[] = []; - CodeQL.setCodeQL({ + const codeQL = setCodeQL({ resolveQueries: async function(queries: string[], extraSearchPath: string | undefined) { resolveQueriesArgs.push({queries, extraSearchPath}); return { @@ -260,7 +264,7 @@ test("default queries are used", async t => { setInput('config-file', 'input'); setInput('languages', 'javascript'); - await configUtils.initConfig(); + await configUtils.initConfig(tmpDir, tmpDir, codeQL); // Check resolve queries was called correctly t.deepEqual(resolveQueriesArgs.length, 1); @@ -274,7 +278,7 @@ test("API client used when reading remote config", async t => { process.env['RUNNER_TEMP'] = tmpDir; process.env['GITHUB_WORKSPACE'] = tmpDir; - CodeQL.setCodeQL({ + const codeQL = setCodeQL({ resolveQueries: async function() { return { byLanguage: { @@ -311,7 +315,7 @@ test("API client used when reading remote config", async t => { setInput('config-file', 'octo-org/codeql-config/config.yaml@main'); setInput('languages', 'javascript'); - await configUtils.initConfig(); + await configUtils.initConfig(tmpDir, tmpDir, codeQL); t.assert(spyGetContents.called); }); }); @@ -327,7 +331,7 @@ test("Remote config handles the case where a directory is provided", async t => const repoReference = 'octo-org/codeql-config/config.yaml@main'; setInput('config-file', repoReference); try { - await configUtils.initConfig(); + await configUtils.initConfig(tmpDir, tmpDir, getCachedCodeQL()); throw new Error('initConfig did not throw error'); } catch (err) { t.deepEqual(err, new Error(configUtils.getConfigFileDirectoryGivenMessage(repoReference))); @@ -348,7 +352,7 @@ test("Invalid format of remote config handled correctly", async t => { const repoReference = 'octo-org/codeql-config/config.yaml@main'; setInput('config-file', repoReference); try { - await configUtils.initConfig(); + await configUtils.initConfig(tmpDir, tmpDir, getCachedCodeQL()); throw new Error('initConfig did not throw error'); } catch (err) { t.deepEqual(err, new Error(configUtils.getConfigFileFormatInvalidMessage(repoReference))); @@ -364,7 +368,7 @@ test("No detected languages", async t => { mockListLanguages([]); try { - await configUtils.initConfig(); + await configUtils.initConfig(tmpDir, tmpDir, getCachedCodeQL()); throw new Error('initConfig did not throw error'); } catch (err) { t.deepEqual(err, new Error(configUtils.getNoLanguagesError())); @@ -380,7 +384,7 @@ test("Unknown languages", async t => { setInput('languages', 'ruby,english'); try { - await configUtils.initConfig(); + await configUtils.initConfig(tmpDir, tmpDir, getCachedCodeQL()); throw new Error('initConfig did not throw error'); } catch (err) { t.deepEqual(err, new Error(configUtils.getUnknownLanguagesError(['ruby', 'english']))); @@ -398,7 +402,7 @@ function doInvalidInputTest( process.env['RUNNER_TEMP'] = tmpDir; process.env['GITHUB_WORKSPACE'] = tmpDir; - CodeQL.setCodeQL({ + const codeQL = setCodeQL({ resolveQueries: async function() { return { byLanguage: {}, @@ -414,7 +418,7 @@ function doInvalidInputTest( setInput('languages', 'javascript'); try { - await configUtils.initConfig(); + await configUtils.initConfig(tmpDir, tmpDir, codeQL); throw new Error('initConfig did not throw error'); } catch (err) { t.deepEqual(err, new Error(expectedErrorMessageGenerator(inputFile))); diff --git a/src/config-utils.ts b/src/config-utils.ts index b886806d3..643bddb82 100644 --- a/src/config-utils.ts +++ b/src/config-utils.ts @@ -4,8 +4,9 @@ import * as yaml from 'js-yaml'; import * as path from 'path'; import * as api from './api-client'; -import { getCodeQL, ResolveQueriesOutput } from './codeql'; +import { CodeQL, ResolveQueriesOutput } from './codeql'; import * as externalQueries from "./external-queries"; +import { Language, parseLanguage } from "./languages"; import * as util from './util'; // Property names from the user-supplied config file. @@ -16,16 +17,6 @@ const QUERIES_USES_PROPERTY = 'uses'; const PATHS_IGNORE_PROPERTY = 'paths-ignore'; const PATHS_PROPERTY = 'paths'; -// All the languages supported by CodeQL -const ALL_LANGUAGES = ['csharp', 'cpp', 'go', 'java', 'javascript', 'python'] as const; -type Language = (typeof ALL_LANGUAGES)[number]; - -// Some alternate names for languages -const LANGUAGE_ALIASES: {[name: string]: Language} = { - 'c': 'cpp', - 'typescript': 'javascript', -}; - /** * Format of the config file supplied by the user. */ @@ -70,6 +61,20 @@ export interface Config { * top-level field above. */ originalUserInput: UserConfig; + /** + * Directory to use for temporary files that should be + * deleted at the end of the job. + */ + tempDir: string; + /** + * Directory to use for the tool cache. + * This may be persisted between jobs but this is not guaranteed. + */ + toolCacheDir: string; + /** + * Path of the CodeQL executable. + */ + codeQLCmd: string; } /** @@ -119,13 +124,13 @@ function validateQueries(resolvedQueries: ResolveQueriesOutput) { * Run 'codeql resolve queries' and add the results to resultMap */ async function runResolveQueries( + codeQL: CodeQL, resultMap: { [language: string]: string[] }, toResolve: string[], extraSearchPath: string | undefined, errorOnInvalidQueries: boolean) { - const codeQl = getCodeQL(); - const resolvedQueries = await codeQl.resolveQueries(toResolve, extraSearchPath); + const resolvedQueries = await codeQL.resolveQueries(toResolve, extraSearchPath); for (const [language, queries] of Object.entries(resolvedQueries.byLanguage)) { if (resultMap[language] === undefined) { @@ -142,9 +147,9 @@ async function runResolveQueries( /** * Get the set of queries included by default. */ -async function addDefaultQueries(languages: string[], resultMap: { [language: string]: string[] }) { +async function addDefaultQueries(codeQL: CodeQL, languages: string[], resultMap: { [language: string]: string[] }) { const suites = languages.map(l => l + '-code-scanning.qls'); - await runResolveQueries(resultMap, suites, undefined, false); + await runResolveQueries(codeQL, resultMap, suites, undefined, false); } // The set of acceptable values for built-in suites from the codeql bundle @@ -157,6 +162,7 @@ const builtinSuites = ['security-extended', 'security-and-quality'] as const; async function addBuiltinSuiteQueries( configFile: string, languages: string[], + codeQL: CodeQL, resultMap: { [language: string]: string[] }, suiteName: string) { @@ -166,7 +172,7 @@ async function addBuiltinSuiteQueries( } const suites = languages.map(l => l + '-' + suiteName + '.qls'); - await runResolveQueries(resultMap, suites, undefined, false); + await runResolveQueries(codeQL, resultMap, suites, undefined, false); } /** @@ -174,6 +180,7 @@ async function addBuiltinSuiteQueries( */ async function addLocalQueries( configFile: string, + codeQL: CodeQL, resultMap: { [language: string]: string[] }, localQueryPath: string) { @@ -198,13 +205,19 @@ async function addLocalQueries( // Get the root of the current repo to use when resolving query dependencies const rootOfRepo = util.getRequiredEnvParam('GITHUB_WORKSPACE'); - await runResolveQueries(resultMap, [absoluteQueryPath], rootOfRepo, true); + await runResolveQueries(codeQL, resultMap, [absoluteQueryPath], rootOfRepo, true); } /** * Retrieve the set of queries at the referenced remote repo and add them to resultMap. */ -async function addRemoteQueries(configFile: string, resultMap: { [language: string]: string[] }, queryUses: string) { +async function addRemoteQueries( + configFile: string, + codeQL: CodeQL, + resultMap: { [language: string]: string[] }, + queryUses: string, + tempDir: string) { + let tok = queryUses.split('@'); if (tok.length !== 2) { throw new Error(getQueryUsesInvalid(configFile, queryUses)); @@ -226,13 +239,13 @@ async function addRemoteQueries(configFile: string, resultMap: { [language: stri const nwo = tok[0] + '/' + tok[1]; // Checkout the external repository - const rootOfRepo = await externalQueries.checkoutExternalRepository(nwo, ref); + const rootOfRepo = await externalQueries.checkoutExternalRepository(nwo, ref, tempDir); const queryPath = tok.length > 2 ? path.join(rootOfRepo, tok.slice(2).join('/')) : rootOfRepo; - await runResolveQueries(resultMap, [queryPath], rootOfRepo, true); + await runResolveQueries(codeQL, resultMap, [queryPath], rootOfRepo, true); } /** @@ -246,8 +259,10 @@ async function addRemoteQueries(configFile: string, resultMap: { [language: stri async function parseQueryUses( configFile: string, languages: string[], + codeQL: CodeQL, resultMap: { [language: string]: string[] }, - queryUses: string) { + queryUses: string, + tempDir: string) { queryUses = queryUses.trim(); if (queryUses === "") { @@ -256,18 +271,18 @@ async function parseQueryUses( // Check for the local path case before we start trying to parse the repository name if (queryUses.startsWith("./")) { - await addLocalQueries(configFile, resultMap, queryUses.slice(2)); + await addLocalQueries(configFile, codeQL, resultMap, queryUses.slice(2)); return; } // Check for one of the builtin suites if (queryUses.indexOf('/') === -1 && queryUses.indexOf('@') === -1) { - await addBuiltinSuiteQueries(configFile, languages, resultMap, queryUses); + await addBuiltinSuiteQueries(configFile, languages, codeQL, resultMap, queryUses); return; } // Otherwise, must be a reference to another repo - await addRemoteQueries(configFile, resultMap, queryUses); + await addRemoteQueries(configFile, codeQL, resultMap, queryUses, tempDir); } // Regex validating stars in paths or paths-ignore entries. @@ -424,17 +439,6 @@ export function getUnknownLanguagesError(languages: string[]): string { * Gets the set of languages in the current repository */ async function getLanguagesInRepo(): Promise { - // Translate between GitHub's API names for languages and ours - const codeqlLanguages: {[lang: string]: Language} = { - 'C': 'cpp', - 'C++': 'cpp', - 'C#': 'csharp', - 'Go': 'go', - 'Java': 'java', - 'JavaScript': 'javascript', - 'TypeScript': 'javascript', - 'Python': 'python', - }; let repo_nwo = process.env['GITHUB_REPOSITORY']?.split("/"); if (repo_nwo) { let owner = repo_nwo[0]; @@ -453,9 +457,10 @@ async function getLanguagesInRepo(): Promise { // Since sets in javascript maintain insertion order, using a set here and then splatting it // into an array gives us an array of languages ordered by popularity let languages: Set = new Set(); - for (let lang in response.data) { - if (lang in codeqlLanguages) { - languages.add(codeqlLanguages[lang]); + for (let lang of Object.keys(response.data)) { + let parsedLang = parseLanguage(lang); + if (parsedLang !== undefined) { + languages.add(parsedLang); } } return [...languages]; @@ -496,50 +501,46 @@ async function getLanguages(): Promise { } // Make sure they are supported - const checkedLanguages: Language[] = []; + const parsedLanguages: Language[] = []; const unknownLanguages: string[] = []; for (let language of languages) { - // Normalise to lower case - language = language.toLowerCase(); - // Resolve any known aliases - if (language in LANGUAGE_ALIASES) { - language = LANGUAGE_ALIASES[language]; - } - - const checkedLanguage = ALL_LANGUAGES.find(l => l === language); - if (checkedLanguage === undefined) { + const parsedLanguage = parseLanguage(language); + if (parsedLanguage === undefined) { unknownLanguages.push(language); - } else if (checkedLanguages.indexOf(checkedLanguage) === -1) { - checkedLanguages.push(checkedLanguage); + } else if (parsedLanguages.indexOf(parsedLanguage) === -1) { + parsedLanguages.push(parsedLanguage); } } if (unknownLanguages.length > 0) { throw new Error(getUnknownLanguagesError(unknownLanguages)); } - return checkedLanguages; + return parsedLanguages; } /** * Get the default config for when the user has not supplied one. */ -export async function getDefaultConfig(): Promise { +export async function getDefaultConfig(tempDir: string, toolCacheDir: string, codeQL: CodeQL): Promise { const languages = await getLanguages(); const queries = {}; - await addDefaultQueries(languages, queries); + await addDefaultQueries(codeQL, languages, queries); return { languages: languages, queries: queries, pathsIgnore: [], paths: [], originalUserInput: {}, + tempDir, + toolCacheDir, + codeQLCmd: codeQL.getPath(), }; } /** * Load the config from the given file. */ -async function loadConfig(configFile: string): Promise { +async function loadConfig(configFile: string, tempDir: string, toolCacheDir: string, codeQL: CodeQL): Promise { let parsedYAML: UserConfig; if (isLocal(configFile)) { @@ -577,7 +578,7 @@ async function loadConfig(configFile: string): Promise { disableDefaultQueries = parsedYAML[DISABLE_DEFAULT_QUERIES_PROPERTY]!; } if (!disableDefaultQueries) { - await addDefaultQueries(languages, queries); + await addDefaultQueries(codeQL, languages, queries); } if (QUERIES_PROPERTY in parsedYAML) { @@ -588,7 +589,7 @@ async function loadConfig(configFile: string): Promise { if (!(QUERIES_USES_PROPERTY in query) || typeof query[QUERIES_USES_PROPERTY] !== "string") { throw new Error(getQueryUsesInvalid(configFile)); } - await parseQueryUses(configFile, languages, queries, query[QUERIES_USES_PROPERTY]); + await parseQueryUses(configFile, languages, codeQL, queries, query[QUERIES_USES_PROPERTY], tempDir); } } @@ -630,7 +631,10 @@ async function loadConfig(configFile: string): Promise { queries, pathsIgnore, paths, - originalUserInput: parsedYAML + originalUserInput: parsedYAML, + tempDir, + toolCacheDir, + codeQLCmd: codeQL.getPath(), }; } @@ -640,16 +644,16 @@ async function loadConfig(configFile: string): Promise { * This will parse the config from the user input if present, or generate * a default config. The parsed config is then stored to a known location. */ -export async function initConfig(): Promise { +export async function initConfig(tempDir: string, toolCacheDir: string, codeQL: CodeQL): Promise { const configFile = core.getInput('config-file'); let config: Config; // If no config file was provided create an empty one if (configFile === '') { core.debug('No configuration file was provided'); - config = await getDefaultConfig(); + config = await getDefaultConfig(tempDir, toolCacheDir, codeQL); } else { - config = await loadConfig(configFile); + config = await loadConfig(configFile, tempDir, toolCacheDir, codeQL); } // Save the config so we can easily access it again in the future @@ -711,8 +715,8 @@ async function getRemoteConfig(configFile: string): Promise { /** * Get the file path where the parsed config will be stored. */ -export function getPathToParsedConfigFile(): string { - return path.join(util.getRequiredEnvParam('RUNNER_TEMP'), 'config'); +export function getPathToParsedConfigFile(tempDir: string): string { + return path.join(tempDir, 'config'); } /** @@ -720,7 +724,7 @@ export function getPathToParsedConfigFile(): string { */ async function saveConfig(config: Config) { const configString = JSON.stringify(config); - const configFile = getPathToParsedConfigFile(); + const configFile = getPathToParsedConfigFile(config.tempDir); fs.mkdirSync(path.dirname(configFile), { recursive: true }); fs.writeFileSync(configFile, configString, 'utf8'); core.debug('Saved config:'); @@ -735,8 +739,8 @@ async function saveConfig(config: Config) { * stored to a known location. On the second and further calls, this will * return the contents of the parsed config from the known location. */ -export async function getConfig(): Promise { - const configFile = getPathToParsedConfigFile(); +export async function getConfig(tempDir: string): Promise { + const configFile = getPathToParsedConfigFile(tempDir); if (!fs.existsSync(configFile)) { throw new Error("Config file could not be found at expected location. Has the 'init' action been called?"); } diff --git a/src/external-queries.test.ts b/src/external-queries.test.ts index 9bec00064..87ed7d796 100644 --- a/src/external-queries.test.ts +++ b/src/external-queries.test.ts @@ -10,8 +10,10 @@ setupTests(test); test("checkoutExternalQueries", async t => { await util.withTmpDir(async tmpDir => { - process.env["RUNNER_TEMP"] = tmpDir; - await externalQueries.checkoutExternalRepository("github/codeql-go", "df4c6869212341b601005567381944ed90906b6b"); + await externalQueries.checkoutExternalRepository( + "github/codeql-go", + "df4c6869212341b601005567381944ed90906b6b", + tmpDir); // COPYRIGHT file existed in df4c6869212341b601005567381944ed90906b6b but not in the default branch t.true(fs.existsSync(path.join(tmpDir, "github", "codeql-go", "COPYRIGHT"))); diff --git a/src/external-queries.ts b/src/external-queries.ts index f8b7d84fd..2fdcf61e9 100644 --- a/src/external-queries.ts +++ b/src/external-queries.ts @@ -3,17 +3,13 @@ import * as exec from '@actions/exec'; import * as fs from 'fs'; import * as path from 'path'; -import * as util from './util'; - /** * Check out repository at the given ref, and return the directory of the checkout. */ -export async function checkoutExternalRepository(repository: string, ref: string): Promise { - const folder = util.getRequiredEnvParam('RUNNER_TEMP'); - +export async function checkoutExternalRepository(repository: string, ref: string, tempDir: string): Promise { core.info('Checking out ' + repository); - const checkoutLocation = path.join(folder, repository); + const checkoutLocation = path.join(tempDir, repository); if (!fs.existsSync(checkoutLocation)) { const repoURL = 'https://github.com/' + repository + '.git'; await exec.exec('git', ['clone', repoURL, checkoutLocation]); diff --git a/src/finalize-db.ts b/src/finalize-db.ts index ce2b037fe..3b3798855 100644 --- a/src/finalize-db.ts +++ b/src/finalize-db.ts @@ -2,8 +2,9 @@ import * as core from '@actions/core'; import * as fs from 'fs'; import * as path from 'path'; -import { getCodeQL, isScannedLanguage } from './codeql'; +import { getCodeQL } from './codeql'; import * as configUtils from './config-utils'; +import { isScannedLanguage } from './languages'; import { getActionsLogger } from './logging'; import { parseRepositoryNwo } from './repository'; import * as sharedEnv from './shared-environment'; @@ -58,7 +59,7 @@ async function sendStatusReport( } async function createdDBForScannedLanguages(databaseFolder: string, config: configUtils.Config) { - const codeql = getCodeQL(); + const codeql = getCodeQL(config.codeQLCmd); for (const language of config.languages) { if (isScannedLanguage(language)) { core.startGroup('Extracting ' + language); @@ -71,7 +72,7 @@ async function createdDBForScannedLanguages(databaseFolder: string, config: conf async function finalizeDatabaseCreation(databaseFolder: string, config: configUtils.Config) { await createdDBForScannedLanguages(databaseFolder, config); - const codeql = getCodeQL(); + const codeql = getCodeQL(config.codeQLCmd); for (const language of config.languages) { core.startGroup('Finalizing ' + language); await codeql.finalizeDatabase(path.join(databaseFolder, language)); @@ -85,7 +86,7 @@ async function runQueries( sarifFolder: string, config: configUtils.Config): Promise { - const codeql = getCodeQL(); + const codeql = getCodeQL(config.codeQLCmd); for (let language of fs.readdirSync(databaseFolder)) { core.startGroup('Analyzing ' + language); @@ -129,12 +130,12 @@ async function run() { if (!await util.sendStatusReport(await util.createStatusReportBase('finish', 'starting', startedAt), true)) { return; } - const config = await configUtils.getConfig(); + const config = await configUtils.getConfig(util.getRequiredEnvParam('RUNNER_TEMP')); core.exportVariable(sharedEnv.ODASA_TRACER_CONFIGURATION, ''); delete process.env[sharedEnv.ODASA_TRACER_CONFIGURATION]; - const databaseFolder = util.getCodeQLDatabasesDir(); + const databaseFolder = util.getCodeQLDatabasesDir(config.tempDir); const sarifFolder = core.getInput('output'); fs.mkdirSync(sarifFolder, { recursive: true }); diff --git a/src/fingerprints.test.ts b/src/fingerprints.test.ts index bd73e2218..9ffd94cc5 100644 --- a/src/fingerprints.test.ts +++ b/src/fingerprints.test.ts @@ -4,6 +4,7 @@ import * as fs from 'fs'; import * as path from 'path'; import * as fingerprints from './fingerprints'; +import { getCLILogger } from './logging'; import {setupTests} from './testing-utils'; setupTests(test); @@ -115,7 +116,7 @@ test('hash', (t: ava.Assertions) => { function testResolveUriToFile(uri: any, index: any, artifactsURIs: any[]) { const location = { "uri": uri, "index": index }; const artifacts = artifactsURIs.map(uri => ({ "location": { "uri": uri } })); - return fingerprints.resolveUriToFile(location, artifacts); + return fingerprints.resolveUriToFile(location, artifacts, getCLILogger()); } test('resolveUriToFile', t => { @@ -174,7 +175,7 @@ test('addFingerprints', t => { // The URIs in the SARIF files resolve to files in the testdata directory process.env['GITHUB_WORKSPACE'] = path.normalize(__dirname + '/../src/testdata'); - t.deepEqual(fingerprints.addFingerprints(input), expected); + t.deepEqual(fingerprints.addFingerprints(input, getCLILogger()), expected); }); test('missingRegions', t => { @@ -189,5 +190,5 @@ test('missingRegions', t => { // The URIs in the SARIF files resolve to files in the testdata directory process.env['GITHUB_WORKSPACE'] = path.normalize(__dirname + '/../src/testdata'); - t.deepEqual(fingerprints.addFingerprints(input), expected); + t.deepEqual(fingerprints.addFingerprints(input, getCLILogger()), expected); }); diff --git a/src/fingerprints.ts b/src/fingerprints.ts index 83ab602e1..c296c5464 100644 --- a/src/fingerprints.ts +++ b/src/fingerprints.ts @@ -1,7 +1,8 @@ -import * as core from '@actions/core'; import * as fs from 'fs'; import Long from 'long'; +import { Logger } from './logging'; + const tab = '\t'.charCodeAt(0); const space = ' '.charCodeAt(0); const lf = '\n'.charCodeAt(0); @@ -124,7 +125,7 @@ export function hash(callback: hashCallback, input: string) { // Generate a hash callback function that updates the given result in-place // when it recieves a hash for the correct line number. Ignores hashes for other lines. -function locationUpdateCallback(result: any, location: any): hashCallback { +function locationUpdateCallback(result: any, location: any, logger: Logger): hashCallback { let locationStartLine = location.physicalLocation?.region?.startLine; if (locationStartLine === undefined) { // We expect the region section to be present, but it can be absent if the @@ -148,7 +149,7 @@ function locationUpdateCallback(result: any, location: any): hashCallback { if (!existingFingerprint) { result.partialFingerprints.primaryLocationLineHash = hash; } else if (existingFingerprint !== hash) { - core.warning('Calculated fingerprint of ' + hash + + logger.warning('Calculated fingerprint of ' + hash + ' for file ' + location.physicalLocation.artifactLocation.uri + ' line ' + lineNumber + ', but found existing inconsistent fingerprint value ' + existingFingerprint); @@ -160,14 +161,14 @@ function locationUpdateCallback(result: any, location: any): hashCallback { // the source file so we can hash it. // If possible returns a absolute file path for the source file, // or if not possible then returns undefined. -export function resolveUriToFile(location: any, artifacts: any[]): string | undefined { +export function resolveUriToFile(location: any, artifacts: any[], logger: Logger): string | undefined { // This may be referencing an artifact if (!location.uri && location.index !== undefined) { if (typeof location.index !== 'number' || location.index < 0 || location.index >= artifacts.length || typeof artifacts[location.index].location !== 'object') { - core.debug(`Ignoring location as URI "${location.index}" is invalid`); + logger.debug(`Ignoring location as URI "${location.index}" is invalid`); return undefined; } location = artifacts[location.index].location; @@ -175,7 +176,7 @@ export function resolveUriToFile(location: any, artifacts: any[]): string | unde // Get the URI and decode if (typeof location.uri !== 'string') { - core.debug(`Ignoring location as index "${location.uri}" is invalid`); + logger.debug(`Ignoring location as index "${location.uri}" is invalid`); return undefined; } let uri = decodeURIComponent(location.uri); @@ -186,14 +187,14 @@ export function resolveUriToFile(location: any, artifacts: any[]): string | unde uri = uri.substring(fileUriPrefix.length); } if (uri.indexOf('://') !== -1) { - core.debug(`Ignoring location URI "${uri}" as the scheme is not recognised`); + logger.debug(`Ignoring location URI "${uri}" as the scheme is not recognised`); return undefined; } // Discard any absolute paths that aren't in the src root const srcRootPrefix = process.env['GITHUB_WORKSPACE'] + '/'; if (uri.startsWith('/') && !uri.startsWith(srcRootPrefix)) { - core.debug(`Ignoring location URI "${uri}" as it is outside of the src root`); + logger.debug(`Ignoring location URI "${uri}" as it is outside of the src root`); return undefined; } @@ -206,7 +207,7 @@ export function resolveUriToFile(location: any, artifacts: any[]): string | unde // Check the file exists if (!fs.existsSync(uri)) { - core.debug(`Unable to compute fingerprint for non-existent file: ${uri}`); + logger.debug(`Unable to compute fingerprint for non-existent file: ${uri}`); return undefined; } @@ -215,7 +216,7 @@ export function resolveUriToFile(location: any, artifacts: any[]): string | unde // Compute fingerprints for results in the given sarif file // and return an updated sarif file contents. -export function addFingerprints(sarifContents: string): string { +export function addFingerprints(sarifContents: string, logger: Logger): string { let sarif = JSON.parse(sarifContents); // Gather together results for the same file and construct @@ -229,18 +230,18 @@ export function addFingerprints(sarifContents: string): string { // Check the primary location is defined correctly and is in the src root const primaryLocation = (result.locations || [])[0]; if (!primaryLocation?.physicalLocation?.artifactLocation) { - core.debug(`Unable to compute fingerprint for invalid location: ${JSON.stringify(primaryLocation)}`); + logger.debug(`Unable to compute fingerprint for invalid location: ${JSON.stringify(primaryLocation)}`); continue; } - const filepath = resolveUriToFile(primaryLocation.physicalLocation.artifactLocation, artifacts); + const filepath = resolveUriToFile(primaryLocation.physicalLocation.artifactLocation, artifacts, logger); if (!filepath) { continue; } if (!callbacksByFile[filepath]) { callbacksByFile[filepath] = []; } - callbacksByFile[filepath].push(locationUpdateCallback(result, primaryLocation)); + callbacksByFile[filepath].push(locationUpdateCallback(result, primaryLocation, logger)); } } diff --git a/src/languages.test.ts b/src/languages.test.ts new file mode 100644 index 000000000..93881a907 --- /dev/null +++ b/src/languages.test.ts @@ -0,0 +1,47 @@ +import test from 'ava'; + +import {isScannedLanguage, isTracedLanguage, Language, parseLanguage} from './languages'; +import {setupTests} from './testing-utils'; + +setupTests(test); + +test('parseLangauge', async t => { + // Exact matches + t.deepEqual(parseLanguage('csharp'), Language.csharp); + t.deepEqual(parseLanguage('cpp'), Language.cpp); + t.deepEqual(parseLanguage('go'), Language.go); + t.deepEqual(parseLanguage('java'), Language.java); + t.deepEqual(parseLanguage('javascript'), Language.javascript); + t.deepEqual(parseLanguage('python'), Language.python); + + // Aliases + t.deepEqual(parseLanguage('c'), Language.cpp); + t.deepEqual(parseLanguage('c++'), Language.cpp); + t.deepEqual(parseLanguage('c#'), Language.csharp); + t.deepEqual(parseLanguage('typescript'), Language.javascript); + + // Not matches + t.deepEqual(parseLanguage('foo'), undefined); + t.deepEqual(parseLanguage(' '), undefined); + t.deepEqual(parseLanguage(''), undefined); +}); + +test('isTracedLanguage', async t => { + t.true(isTracedLanguage(Language.cpp)); + t.true(isTracedLanguage(Language.java)); + t.true(isTracedLanguage(Language.csharp)); + + t.false(isTracedLanguage(Language.go)); + t.false(isTracedLanguage(Language.javascript)); + t.false(isTracedLanguage(Language.python)); +}); + +test('isScannedLanguage', async t => { + t.false(isScannedLanguage(Language.cpp)); + t.false(isScannedLanguage(Language.java)); + t.false(isScannedLanguage(Language.csharp)); + + t.true(isScannedLanguage(Language.go)); + t.true(isScannedLanguage(Language.javascript)); + t.true(isScannedLanguage(Language.python)); +}); diff --git a/src/languages.ts b/src/languages.ts new file mode 100644 index 000000000..40c1de7ab --- /dev/null +++ b/src/languages.ts @@ -0,0 +1,44 @@ +// All the languages supported by CodeQL +export enum Language { + csharp = 'csharp', + cpp = 'cpp', + go = 'go', + java = 'java', + javascript = 'javascript', + python = 'python', +} + +// Additional names for languages +const LANGUAGE_ALIASES: {[lang: string]: Language} = { + 'c': Language.cpp, + 'c++': Language.cpp, + 'c#': Language.csharp, + 'typescript': Language.javascript, +}; + +// Translate from user input or GitHub's API names for languages to CodeQL's names for languages +export function parseLanguage(language: string): Language | undefined { + // Normalise to lower case + language = language.toLowerCase(); + + // See if it's an exact match + if (language in Language) { + return language as Language; + } + + // Check language aliases + if (language in LANGUAGE_ALIASES) { + return LANGUAGE_ALIASES[language]; + } + + return undefined; +} + + +export function isTracedLanguage(language: Language): boolean { + return ['cpp', 'java', 'csharp'].includes(language); +} + +export function isScannedLanguage(language: Language): boolean { + return !isTracedLanguage(language); +} diff --git a/src/setup-tracer.ts b/src/setup-tracer.ts index 1f672b9c2..9e25439da 100644 --- a/src/setup-tracer.ts +++ b/src/setup-tracer.ts @@ -4,8 +4,9 @@ import * as fs from 'fs'; import * as path from 'path'; import * as analysisPaths from './analysis-paths'; -import { CodeQL, isTracedLanguage, setupCodeQL } from './codeql'; +import { CodeQL, setupCodeQL } from './codeql'; import * as configUtils from './config-utils'; +import { isTracedLanguage } from './languages'; import * as util from './util'; type TracerConfig = { @@ -52,7 +53,7 @@ async function tracerConfig( return info; } -function concatTracerConfigs(configs: TracerConfig[]): TracerConfig { +function concatTracerConfigs(tracerConfigs: TracerConfig[], config: configUtils.Config): TracerConfig { // A tracer config is a map containing additional environment variables and a tracer 'spec' file. // A tracer 'spec' file has the following format [log_file, number_of_blocks, blocks_text] @@ -60,7 +61,7 @@ function concatTracerConfigs(configs: TracerConfig[]): TracerConfig { const env: { [key: string]: string; } = {}; let copyExecutables = false; let envSize = 0; - for (const v of configs) { + for (const v of tracerConfigs) { for (let e of Object.entries(v.env)) { const name = e[0]; const value = e[1]; @@ -80,7 +81,7 @@ function concatTracerConfigs(configs: TracerConfig[]): TracerConfig { } // Concatenate spec files into a new spec file - let languages = Object.keys(configs); + let languages = Object.keys(tracerConfigs); const cppIndex = languages.indexOf('cpp'); // Make sure cpp is the last language, if it's present since it must be concatenated last if (cppIndex !== -1) { @@ -92,16 +93,15 @@ function concatTracerConfigs(configs: TracerConfig[]): TracerConfig { let totalLines: string[] = []; let totalCount = 0; for (let lang of languages) { - const lines = fs.readFileSync(configs[lang].spec, 'utf8').split(/\r?\n/); + const lines = fs.readFileSync(tracerConfigs[lang].spec, 'utf8').split(/\r?\n/); const count = parseInt(lines[1], 10); totalCount += count; totalLines.push(...lines.slice(2)); } - const tempFolder = util.getRequiredEnvParam('RUNNER_TEMP'); - const newLogFilePath = path.resolve(tempFolder, 'compound-build-tracer.log'); - const spec = path.resolve(tempFolder, 'compound-spec'); - const compoundTempFolder = path.resolve(tempFolder, 'compound-temp'); + const newLogFilePath = path.resolve(config.tempDir, 'compound-build-tracer.log'); + const spec = path.resolve(config.tempDir, 'compound-spec'); + const compoundTempFolder = path.resolve(config.tempDir, 'compound-temp'); const newSpecContent = [newLogFilePath, totalCount.toString(10), ...totalLines]; if (copyExecutables) { @@ -186,7 +186,10 @@ async function run() { core.endGroup(); core.startGroup('Load language configuration'); - config = await configUtils.initConfig(); + config = await configUtils.initConfig( + util.getRequiredEnvParam('RUNNER_TEMP'), + util.getRequiredEnvParam('RUNNER_TOOL_CACHE'), + codeql); analysisPaths.includeAndExcludeAnalysisPaths(config); core.endGroup(); @@ -212,7 +215,7 @@ async function run() { const codeqlRam = process.env['CODEQL_RAM'] || '6500'; core.exportVariable('CODEQL_RAM', codeqlRam); - const databaseFolder = util.getCodeQLDatabasesDir(); + const databaseFolder = util.getCodeQLDatabasesDir(config.tempDir); fs.mkdirSync(databaseFolder, { recursive: true }); let tracedLanguageConfigs: TracerConfig[] = []; @@ -229,27 +232,28 @@ async function run() { } } if (tracedLanguageConfigs.length > 0) { - const mainTracerConfig = concatTracerConfigs(tracedLanguageConfigs); + const mainTracerConfig = concatTracerConfigs(tracedLanguageConfigs, config); if (mainTracerConfig.spec) { for (let entry of Object.entries(mainTracerConfig.env)) { core.exportVariable(entry[0], entry[1]); } core.exportVariable('ODASA_TRACER_CONFIGURATION', mainTracerConfig.spec); + const codeQLDir = path.dirname(codeql.getPath()); if (process.platform === 'darwin') { core.exportVariable( 'DYLD_INSERT_LIBRARIES', - path.join(codeql.getDir(), 'tools', 'osx64', 'libtrace.dylib')); + path.join(codeQLDir, 'tools', 'osx64', 'libtrace.dylib')); } else if (process.platform === 'win32') { await exec.exec( 'powershell', [ path.resolve(__dirname, '..', 'src', 'inject-tracer.ps1'), - path.resolve(codeql.getDir(), 'tools', 'win64', 'tracer.exe'), + path.resolve(codeQLDir, 'tools', 'win64', 'tracer.exe'), ], { env: { 'ODASA_TRACER_CONFIGURATION': mainTracerConfig.spec } }); } else { - core.exportVariable('LD_PRELOAD', path.join(codeql.getDir(), 'tools', 'linux64', '${LIB}trace.so')); + core.exportVariable('LD_PRELOAD', path.join(codeQLDir, 'tools', 'linux64', '${LIB}trace.so')); } } } diff --git a/src/upload-lib.ts b/src/upload-lib.ts index 94a762fad..2455b934d 100644 --- a/src/upload-lib.ts +++ b/src/upload-lib.ts @@ -235,7 +235,7 @@ async function uploadFiles( } let sarifPayload = combineSarifFiles(sarifFiles); - sarifPayload = fingerprints.addFingerprints(sarifPayload); + sarifPayload = fingerprints.addFingerprints(sarifPayload, logger); const zipped_sarif = zlib.gzipSync(sarifPayload).toString('base64'); let checkoutURI = fileUrl(checkoutPath); diff --git a/src/util.test.ts b/src/util.test.ts index 844c749a4..e31c96557 100644 --- a/src/util.test.ts +++ b/src/util.test.ts @@ -116,3 +116,37 @@ test('prepareEnvironment() when a local run', t => { process.env.CODEQL_LOCAL_RUN = origLocalRun; }); + +test('getExtraOptionsEnvParam() succeeds on valid JSON with invalid options (for now)', t => { + const origExtraOptions = process.env.CODEQL_ACTION_EXTRA_OPTIONS; + + const options = {foo: 42}; + + process.env.CODEQL_ACTION_EXTRA_OPTIONS = JSON.stringify(options); + + t.deepEqual(util.getExtraOptionsEnvParam(), options); + + process.env.CODEQL_ACTION_EXTRA_OPTIONS = origExtraOptions; +}); + + +test('getExtraOptionsEnvParam() succeeds on valid options', t => { + const origExtraOptions = process.env.CODEQL_ACTION_EXTRA_OPTIONS; + + const options = { database: { init: ["--debug"] } }; + process.env.CODEQL_ACTION_EXTRA_OPTIONS = + JSON.stringify(options); + + t.deepEqual(util.getExtraOptionsEnvParam(), options); + + process.env.CODEQL_ACTION_EXTRA_OPTIONS = origExtraOptions; +}); + +test('getExtraOptionsEnvParam() fails on invalid JSON', t => { + const origExtraOptions = process.env.CODEQL_ACTION_EXTRA_OPTIONS; + + process.env.CODEQL_ACTION_EXTRA_OPTIONS = "{{invalid-json}}"; + t.throws(util.getExtraOptionsEnvParam); + + process.env.CODEQL_ACTION_EXTRA_OPTIONS = origExtraOptions; +}); diff --git a/src/util.ts b/src/util.ts index e3ab9d831..c4bf9c93e 100644 --- a/src/util.ts +++ b/src/util.ts @@ -39,6 +39,26 @@ export function getRequiredEnvParam(paramName: string): string { return value; } +/** + * Get the extra options for the codeql commands. + */ +export function getExtraOptionsEnvParam(): object { + const varName = 'CODEQL_ACTION_EXTRA_OPTIONS'; + const raw = process.env[varName]; + if (raw === undefined || raw.length === 0) { + return {}; + } + try { + return JSON.parse(raw); + } catch (e) { + throw new Error( + varName + + ' environment variable is set, but does not contain valid JSON: ' + + e.message + ); + } +} + export function isLocalRun(): boolean { return !!process.env.CODEQL_LOCAL_RUN && process.env.CODEQL_LOCAL_RUN !== 'false' @@ -375,27 +395,34 @@ export function getMemoryFlag(): string { } /** - * Get the codeql `--threads` value specified for the `threads` input. The value - * defaults to 1. The value will be capped to the number of available CPUs. + * Get the codeql `--threads` value specified for the `threads` input. + * If not value was specified, all available threads will be used. + * + * The value will be capped to the number of available CPUs. * * @returns string */ export function getThreadsFlag(): string { - let numThreads = 1; + let numThreads: number; const numThreadsString = core.getInput("threads"); + const maxThreads = os.cpus().length; if (numThreadsString) { numThreads = Number(numThreadsString); if (Number.isNaN(numThreads)) { throw new Error(`Invalid threads setting "${numThreadsString}", specified.`); } - const maxThreads = os.cpus().length; if (numThreads > maxThreads) { + core.info(`Clamping desired number of threads (${numThreads}) to max available (${maxThreads}).`); numThreads = maxThreads; } const minThreads = -maxThreads; if (numThreads < minThreads) { + core.info(`Clamping desired number of free threads (${numThreads}) to max available (${minThreads}).`); numThreads = minThreads; } + } else { + // Default to using all threads + numThreads = maxThreads; } return `--threads=${numThreads}`; } @@ -403,6 +430,6 @@ export function getThreadsFlag(): string { /** * Get the directory where CodeQL databases should be placed. */ -export function getCodeQLDatabasesDir() { - return path.resolve(getRequiredEnvParam('RUNNER_TEMP'), 'codeql_databases'); +export function getCodeQLDatabasesDir(tempDir: string) { + return path.resolve(tempDir, 'codeql_databases'); }