diff --git a/lib/config-utils.js b/lib/config-utils.js index 11a9a610b..c7217d627 100644 --- a/lib/config-utils.js +++ b/lib/config-utils.js @@ -105,32 +105,7 @@ async function addBuiltinSuiteQueries(configFile, languages, resultMap, suiteNam const suites = languages.map(l => l + '-' + suiteName + '.qls'); await runResolveQueries(resultMap, suites, undefined, false); } -/** - * Retrieve the set of queries at localQueryPath and add them to resultMap. - */ -async function addLocalQueries(configFile, 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')); - let absoluteQueryPath = path.join(workspacePath, localQueryPath); - // Check the file exists - if (!fs.existsSync(absoluteQueryPath)) { - throw new Error(getLocalPathDoesNotExist(configFile, localQueryPath)); - } - // Call this after checking file exists, because it'll fail if file doesn't exist - absoluteQueryPath = fs.realpathSync(absoluteQueryPath); - // Check the local path doesn't jump outside the repo using '..' or symlinks - if (!(absoluteQueryPath + path.sep).startsWith(workspacePath + path.sep)) { - throw new Error(getLocalPathOutsideOfRepository(configFile, 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); -} -/** - * Retrieve the set of queries at the referenced remote repo and add them to resultMap. - */ -async function addRemoteQueries(configFile, resultMap, queryUses) { +function parseRemoteQueryUses(configFile, queryUses) { let tok = queryUses.split('@'); if (tok.length !== 2) { throw new Error(getQueryUsesInvalid(configFile, queryUses)); @@ -148,12 +123,18 @@ async function addRemoteQueries(configFile, resultMap, queryUses) { throw new Error(getQueryUsesInvalid(configFile, queryUses)); } const nwo = tok[0] + '/' + tok[1]; + const queryPath = tok.length > 2 + ? tok.slice(2).join('/') + : ''; + return [nwo, queryPath, ref]; +} +/** + * Retrieve the set of queries at the referenced remote repo and add them to resultMap. + */ +async function addRemoteQueries(resultMap, nwo, queryPath, ref) { // Checkout the external repository const rootOfRepo = await externalQueries.checkoutExternalRepository(nwo, ref); - const queryPath = tok.length > 2 - ? path.join(rootOfRepo, tok.slice(2).join('/')) - : rootOfRepo; - await runResolveQueries(resultMap, [queryPath], rootOfRepo, true); + await runResolveQueries(resultMap, [path.join(rootOfRepo, queryPath)], rootOfRepo, true); } /** * Parse a query 'uses' field to a discrete set of query files and update resultMap. @@ -170,7 +151,8 @@ async function parseQueryUses(configFile, languages, resultMap, queryUses) { } // 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)); + // now we're using the pre-hook we have to retrieve even 'local' queries using the API + await addRemoteQueries(resultMap, util.getRequiredEnvParam("GITHUB_REPOSITORY"), queryUses.substr(2), util.getRef()); return; } // Check for one of the builtin suites @@ -179,7 +161,8 @@ async function parseQueryUses(configFile, languages, resultMap, queryUses) { return; } // Otherwise, must be a reference to another repo - await addRemoteQueries(configFile, resultMap, queryUses); + const [nwo, queryPath, ref] = parseRemoteQueryUses(configFile, queryUses); + await addRemoteQueries(resultMap, nwo, queryPath, ref); } // Regex validating stars in paths or paths-ignore entries. // The intention is to only allow ** to appear when immediately diff --git a/lib/config-utils.js.map b/lib/config-utils.js.map index 8edd69eac..920614f8e 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":"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"} \ No newline at end of file diff --git a/src/config-utils.ts b/src/config-utils.ts index e01c0ecfc..8613f7b23 100644 --- a/src/config-utils.ts +++ b/src/config-utils.ts @@ -169,42 +169,8 @@ async function addBuiltinSuiteQueries( await runResolveQueries(resultMap, suites, undefined, false); } -/** - * Retrieve the set of queries at localQueryPath and add them to resultMap. - */ -async function addLocalQueries( - configFile: string, - resultMap: { [language: string]: string[] }, - localQueryPath: string) { +function parseRemoteQueryUses(configFile: string, queryUses: string) { - // 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')); - let absoluteQueryPath = path.join(workspacePath, localQueryPath); - - // Check the file exists - if (!fs.existsSync(absoluteQueryPath)) { - throw new Error(getLocalPathDoesNotExist(configFile, localQueryPath)); - } - - // Call this after checking file exists, because it'll fail if file doesn't exist - absoluteQueryPath = fs.realpathSync(absoluteQueryPath); - - // Check the local path doesn't jump outside the repo using '..' or symlinks - if (!(absoluteQueryPath + path.sep).startsWith(workspacePath + path.sep)) { - throw new Error(getLocalPathOutsideOfRepository(configFile, 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); -} - -/** - * 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) { let tok = queryUses.split('@'); if (tok.length !== 2) { throw new Error(getQueryUsesInvalid(configFile, queryUses)); @@ -225,14 +191,23 @@ async function addRemoteQueries(configFile: string, resultMap: { [language: stri } const nwo = tok[0] + '/' + tok[1]; + const queryPath = tok.length > 2 + ? tok.slice(2).join('/') + : ''; + + return [nwo, queryPath, ref]; +} + +/** + * Retrieve the set of queries at the referenced remote repo and add them to resultMap. + */ +async function addRemoteQueries(resultMap: { [language: string]: string[] }, + nwo: string, queryPath: string, ref: string) { + // Checkout the external repository const rootOfRepo = await externalQueries.checkoutExternalRepository(nwo, ref); - const queryPath = tok.length > 2 - ? path.join(rootOfRepo, tok.slice(2).join('/')) - : rootOfRepo; - - await runResolveQueries(resultMap, [queryPath], rootOfRepo, true); + await runResolveQueries(resultMap, [path.join(rootOfRepo, queryPath)], rootOfRepo, true); } /** @@ -256,7 +231,9 @@ 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)); + // now we're using the pre-hook we have to retrieve even 'local' queries using the API + await addRemoteQueries(resultMap, util.getRequiredEnvParam("GITHUB_REPOSITORY"), + queryUses.substr(2), util.getRef()); return; } @@ -267,7 +244,8 @@ async function parseQueryUses( } // Otherwise, must be a reference to another repo - await addRemoteQueries(configFile, resultMap, queryUses); + const [nwo, queryPath, ref] = parseRemoteQueryUses(configFile, queryUses); + await addRemoteQueries(resultMap, nwo, queryPath, ref); } // Regex validating stars in paths or paths-ignore entries.