diff --git a/README.md b/README.md index dfca171ca..17f4caaf1 100644 --- a/README.md +++ b/README.md @@ -100,6 +100,22 @@ Use the `config-file` parameter of the `init` action to enable the configuration The configuration file must be located within the local repository. For information on how to write a configuration file, see "[Using a custom configuration](https://help.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#using-a-custom-configuration)." +If you only want to customise the queries used, you can specify them in your workflow instead of creating a config file, using the `queries` property of the `init` action: + +```yaml +- uses: github/codeql-action/init@v1 + with: + queries: <local-or-remote-query>,<another-query> +``` + +By default, this will override any queries specified in a config file. If you wish to use both sets of queries, prefix the list of queries in the workflow with `+`: + +```yaml +- uses: github/codeql-action/init@v1 + with: + queries: +<local-or-remote-query>,<another-query> +``` + ## Troubleshooting Read about [troubleshooting code scanning](https://help.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/troubleshooting-code-scanning). diff --git a/init/action.yml b/init/action.yml index f45f05a1f..0b3ea9da8 100644 --- a/init/action.yml +++ b/init/action.yml @@ -17,7 +17,7 @@ inputs: description: Path of the config file to use required: false queries: - description: Comma-separated list of additional queries to run. By default, this overrides the same setting in a configuration file + description: Comma-separated list of additional queries to run. By default, this overrides the same setting in a configuration file; prefix with "+" to use both sets of queries. required: false runs: using: 'node12' diff --git a/lib/config-utils.js b/lib/config-utils.js index f43296642..5b0a4f62f 100644 --- a/lib/config-utils.js +++ b/lib/config-utils.js @@ -356,15 +356,24 @@ async function getLanguages(languagesInput, repository, githubAuth, githubUrl, l } return parsedLanguages; } -/** - * Returns true if queries were provided in the workflow file - * (and thus added), otherwise false - */ async function addQueriesFromWorkflow(codeQL, queriesInput, languages, resultMap, tempDir, checkoutPath, githubUrl, logger) { + queriesInput = queriesInput.trim(); + // "+" means "don't override config file" - see shouldAddConfigFileQueries + queriesInput = queriesInput.replace(/^\+/, ''); for (const query of queriesInput.split(',')) { await parseQueryUses(languages, codeQL, resultMap, query, tempDir, checkoutPath, githubUrl, logger); } } +// Returns true if either no queries were provided in the workflow. +// or if the queries in the workflow were provided in "additive" mode, +// indicating that they shouldn't override the config queries but +// should instead be added in addition +function shouldAddConfigFileQueries(queriesInput) { + if (queriesInput) { + return queriesInput.trimStart().substr(0, 1) === '+'; + } + return true; +} /** * Get the default config for when the user has not supplied one. */ @@ -426,10 +435,12 @@ async function loadConfig(languagesInput, queriesInput, configFile, repository, } // If queries were provided using `with` in the action configuration, // they should take precedence over the queries in the config file + // unless they're prefixed with "+", in which case they supplement those + // in the config file. if (queriesInput) { await addQueriesFromWorkflow(codeQL, queriesInput, languages, queries, tempDir, checkoutPath, githubUrl, logger); } - else if (QUERIES_PROPERTY in parsedYAML) { + if (shouldAddConfigFileQueries(queriesInput) && QUERIES_PROPERTY in parsedYAML) { if (!(parsedYAML[QUERIES_PROPERTY] instanceof Array)) { throw new Error(getQueriesInvalid(configFile)); } diff --git a/lib/config-utils.js.map b/lib/config-utils.js.map index 7f1d5ef0e..116353526 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/lib/config-utils.test.js b/lib/config-utils.test.js index ce500d265..f23790c75 100644 --- a/lib/config-utils.test.js +++ b/lib/config-utils.test.js @@ -23,6 +23,12 @@ const logging_1 = require("./logging"); const testing_utils_1 = require("./testing-utils"); const util = __importStar(require("./util")); testing_utils_1.setupTests(ava_1.default); +// Returns the filepath of the newly-created file +function createConfigFile(inputFileContents, tmpDir) { + const configFilePath = path.join(tmpDir, 'input'); + fs.writeFileSync(configFilePath, inputFileContents, 'utf8'); + return configFilePath; +} function mockGetContents(content) { // Passing an auth token is required, so we just use a dummy value let client = new github.GitHub('123'); @@ -170,14 +176,13 @@ ava_1.default("load non-empty input", async (t) => { codeQLCmd: codeQL.getPath(), }; const languages = 'javascript'; - const configFile = 'input'; - fs.writeFileSync(path.join(tmpDir, configFile), inputFileContents, 'utf8'); - const actualConfig = await configUtils.initConfig(languages, undefined, configFile, { owner: 'github', repo: 'example ' }, tmpDir, tmpDir, codeQL, tmpDir, 'token', 'https://github.example.com', logging_1.getRunnerLogger(true)); + const configFilePath = createConfigFile(inputFileContents, tmpDir); + const actualConfig = await configUtils.initConfig(languages, undefined, configFilePath, { owner: 'github', repo: 'example ' }, tmpDir, tmpDir, codeQL, tmpDir, 'token', 'https://github.example.com', logging_1.getRunnerLogger(true)); // Should exactly equal the object we constructed earlier t.deepEqual(actualConfig, expectedConfig); }); }); -ava_1.default("default queries are used", async (t) => { +ava_1.default("Default queries are used", async (t) => { return await util.withTmpDir(async (tmpDir) => { // Check that the default behaviour is to add the default queries. // In this case if a config file is specified but does not include @@ -207,44 +212,47 @@ ava_1.default("default queries are used", async (t) => { - foo`; fs.mkdirSync(path.join(tmpDir, 'foo')); const languages = 'javascript'; - const configFile = 'input'; - fs.writeFileSync(path.join(tmpDir, configFile), inputFileContents, 'utf8'); - await configUtils.initConfig(languages, undefined, configFile, { owner: 'github', repo: 'example ' }, tmpDir, tmpDir, codeQL, tmpDir, 'token', 'https://github.example.com', logging_1.getRunnerLogger(true)); + const configFilePath = createConfigFile(inputFileContents, tmpDir); + await configUtils.initConfig(languages, undefined, configFilePath, { owner: 'github', repo: 'example ' }, tmpDir, tmpDir, codeQL, tmpDir, 'token', 'https://github.example.com', logging_1.getRunnerLogger(true)); // Check resolve queries was called correctly t.deepEqual(resolveQueriesArgs.length, 1); t.deepEqual(resolveQueriesArgs[0].queries, ['javascript-code-scanning.qls']); t.deepEqual(resolveQueriesArgs[0].extraSearchPath, undefined); }); }); +/** + * Returns the provided queries, just in the right format for a resolved query + * This way we can test by seeing which returned items are in the final + * configuration. + */ +function queriesToResolvedQueryForm(queries) { + const dummyResolvedQueries = {}; + queries.forEach(q => { dummyResolvedQueries[q] = {}; }); + return { + byLanguage: { + 'javascript': dummyResolvedQueries, + }, + noDeclaredLanguage: {}, + multipleDeclaredLanguages: {}, + }; +} ava_1.default("Queries can be specified in config file", async (t) => { return await util.withTmpDir(async (tmpDir) => { const inputFileContents = ` name: my config queries: - uses: ./foo`; - const configFile = path.join(tmpDir, 'input'); - fs.writeFileSync(configFile, inputFileContents, 'utf8'); + const configFilePath = createConfigFile(inputFileContents, tmpDir); fs.mkdirSync(path.join(tmpDir, 'foo')); const resolveQueriesArgs = []; const codeQL = codeql_1.setCodeQL({ resolveQueries: async function (queries, extraSearchPath) { resolveQueriesArgs.push({ queries, extraSearchPath }); - // Return what we're given, just in the right format for a resolved query - // This way we can test by seeing which returned items are in the final - // configuration. - const dummyResolvedQueries = {}; - queries.forEach(q => { dummyResolvedQueries[q] = {}; }); - return { - byLanguage: { - 'javascript': dummyResolvedQueries, - }, - noDeclaredLanguage: {}, - multipleDeclaredLanguages: {}, - }; + return queriesToResolvedQueryForm(queries); }, }); const languages = 'javascript'; - const config = await configUtils.initConfig(languages, undefined, configFile, { owner: 'github', repo: 'example ' }, tmpDir, tmpDir, codeQL, tmpDir, 'token', 'https://github.example.com', logging_1.getRunnerLogger(true)); + const config = await configUtils.initConfig(languages, undefined, configFilePath, { owner: 'github', repo: 'example ' }, tmpDir, tmpDir, codeQL, tmpDir, 'token', 'https://github.example.com', logging_1.getRunnerLogger(true)); // Check resolveQueries was called correctly // It'll be called once for the default queries // and once for `./foo` from the config file. @@ -263,8 +271,7 @@ ava_1.default("Queries from config file can be overridden in workflow file", asy name: my config queries: - uses: ./foo`; - const configFile = path.join(tmpDir, 'input'); - fs.writeFileSync(configFile, inputFileContents, 'utf8'); + const configFilePath = createConfigFile(inputFileContents, tmpDir); // This config item should take precedence over the config file but shouldn't affect the default queries. const queries = './override'; fs.mkdirSync(path.join(tmpDir, 'foo')); @@ -273,22 +280,11 @@ ava_1.default("Queries from config file can be overridden in workflow file", asy const codeQL = codeql_1.setCodeQL({ resolveQueries: async function (queries, extraSearchPath) { resolveQueriesArgs.push({ queries, extraSearchPath }); - // Return what we're given, just in the right format for a resolved query - // This way we can test overriding by seeing which returned items are in - // the final configuration. - const dummyResolvedQueries = {}; - queries.forEach(q => { dummyResolvedQueries[q] = {}; }); - return { - byLanguage: { - 'javascript': dummyResolvedQueries, - }, - noDeclaredLanguage: {}, - multipleDeclaredLanguages: {}, - }; + return queriesToResolvedQueryForm(queries); }, }); const languages = 'javascript'; - const config = await configUtils.initConfig(languages, queries, configFile, { owner: 'github', repo: 'example ' }, tmpDir, tmpDir, codeQL, tmpDir, 'token', 'https://github.example.com', logging_1.getRunnerLogger(true)); + const config = await configUtils.initConfig(languages, queries, configFilePath, { owner: 'github', repo: 'example ' }, tmpDir, tmpDir, codeQL, tmpDir, 'token', 'https://github.example.com', logging_1.getRunnerLogger(true)); // Check resolveQueries was called correctly // It'll be called once for the default queries and once for `./override`, // but won't be called for './foo' from the config file. @@ -301,6 +297,36 @@ ava_1.default("Queries from config file can be overridden in workflow file", asy t.regex(config.queries['javascript'][1], /.*\/override$/); }); }); +ava_1.default("Queries in workflow file can be used in tandem with the 'disable default queries' option", async (t) => { + return await util.withTmpDir(async (tmpDir) => { + process.env['RUNNER_TEMP'] = tmpDir; + process.env['GITHUB_WORKSPACE'] = tmpDir; + const inputFileContents = ` + name: my config + disable-default-queries: true`; + const configFilePath = createConfigFile(inputFileContents, tmpDir); + const queries = './workflow-query'; + fs.mkdirSync(path.join(tmpDir, 'workflow-query')); + const resolveQueriesArgs = []; + const codeQL = codeql_1.setCodeQL({ + resolveQueries: async function (queries, extraSearchPath) { + resolveQueriesArgs.push({ queries, extraSearchPath }); + return queriesToResolvedQueryForm(queries); + }, + }); + const languages = 'javascript'; + const config = await configUtils.initConfig(languages, queries, configFilePath, { owner: 'github', repo: 'example ' }, tmpDir, tmpDir, codeQL, tmpDir, 'token', 'https://github.example.com', logging_1.getRunnerLogger(true)); + // Check resolveQueries was called correctly + // It'll be called once for `./workflow-query`, + // but won't be called for the default one since that was disabled + t.deepEqual(resolveQueriesArgs.length, 1); + t.deepEqual(resolveQueriesArgs[0].queries.length, 1); + t.regex(resolveQueriesArgs[0].queries[0], /.*\/workflow-query$/); + // Now check that the end result contains only the workflow query, and not the default one + t.deepEqual(config.queries['javascript'].length, 1); + t.regex(config.queries['javascript'][0], /.*\/workflow-query$/); + }); +}); ava_1.default("Multiple queries can be specified in workflow file, no config file required", async (t) => { return await util.withTmpDir(async (tmpDir) => { fs.mkdirSync(path.join(tmpDir, 'override1')); @@ -310,18 +336,7 @@ ava_1.default("Multiple queries can be specified in workflow file, no config fil const codeQL = codeql_1.setCodeQL({ resolveQueries: async function (queries, extraSearchPath) { resolveQueriesArgs.push({ queries, extraSearchPath }); - // Return what we're given, just in the right format for a resolved query - // This way we can test overriding by seeing which returned items are in - // the final configuration. - const dummyResolvedQueries = {}; - queries.forEach(q => { dummyResolvedQueries[q] = {}; }); - return { - byLanguage: { - 'javascript': dummyResolvedQueries, - }, - noDeclaredLanguage: {}, - multipleDeclaredLanguages: {}, - }; + return queriesToResolvedQueryForm(queries); }, }); const languages = 'javascript'; @@ -341,6 +356,48 @@ ava_1.default("Multiple queries can be specified in workflow file, no config fil t.regex(config.queries['javascript'][2], /.*\/override2$/); }); }); +ava_1.default("Queries in workflow file can be added to the set of queries without overriding config file", async (t) => { + return await util.withTmpDir(async (tmpDir) => { + process.env['RUNNER_TEMP'] = tmpDir; + process.env['GITHUB_WORKSPACE'] = tmpDir; + const inputFileContents = ` + name: my config + queries: + - uses: ./foo`; + const configFilePath = createConfigFile(inputFileContents, tmpDir); + // These queries shouldn't override anything, because the value is prefixed with "+" + const queries = '+./additional1,./additional2'; + fs.mkdirSync(path.join(tmpDir, 'foo')); + fs.mkdirSync(path.join(tmpDir, 'additional1')); + fs.mkdirSync(path.join(tmpDir, 'additional2')); + const resolveQueriesArgs = []; + const codeQL = codeql_1.setCodeQL({ + resolveQueries: async function (queries, extraSearchPath) { + resolveQueriesArgs.push({ queries, extraSearchPath }); + return queriesToResolvedQueryForm(queries); + }, + }); + const languages = 'javascript'; + const config = await configUtils.initConfig(languages, queries, configFilePath, { owner: 'github', repo: 'example ' }, tmpDir, tmpDir, codeQL, tmpDir, 'token', 'https://github.example.com', logging_1.getRunnerLogger(true)); + // Check resolveQueries was called correctly + // It'll be called once for the default queries, + // once for each of additional1 and additional2, + // and once for './foo' from the config file + t.deepEqual(resolveQueriesArgs.length, 4); + t.deepEqual(resolveQueriesArgs[1].queries.length, 1); + t.regex(resolveQueriesArgs[1].queries[0], /.*\/additional1$/); + t.deepEqual(resolveQueriesArgs[2].queries.length, 1); + t.regex(resolveQueriesArgs[2].queries[0], /.*\/additional2$/); + t.deepEqual(resolveQueriesArgs[3].queries.length, 1); + t.regex(resolveQueriesArgs[3].queries[0], /.*\/foo$/); + // Now check that the end result contains all the queries + t.deepEqual(config.queries['javascript'].length, 4); + t.regex(config.queries['javascript'][0], /javascript-code-scanning.qls$/); + t.regex(config.queries['javascript'][1], /.*\/additional1$/); + t.regex(config.queries['javascript'][2], /.*\/additional2$/); + t.regex(config.queries['javascript'][3], /.*\/foo$/); + }); +}); ava_1.default("Invalid queries in workflow file handled correctly", async (t) => { return await util.withTmpDir(async (tmpDir) => { const queries = 'foo/bar@v1@v3'; diff --git a/lib/config-utils.test.js.map b/lib/config-utils.test.js.map index ad2d5d98f..ef56568d6 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/src/config-utils.test.ts b/src/config-utils.test.ts index 7ea867812..df34fb5f3 100644 --- a/src/config-utils.test.ts +++ b/src/config-utils.test.ts @@ -14,6 +14,13 @@ import * as util from './util'; setupTests(test); +// Returns the filepath of the newly-created file +function createConfigFile(inputFileContents: string, tmpDir: string): string { + const configFilePath = path.join(tmpDir, 'input'); + fs.writeFileSync(configFilePath, inputFileContents, 'utf8'); + return configFilePath; +} + type GetContentsResponse = { content?: string; } | {}[]; function mockGetContents(content: GetContentsResponse): sinon.SinonStub<any, any> { @@ -248,13 +255,12 @@ test("load non-empty input", async t => { }; const languages = 'javascript'; - const configFile = 'input'; - fs.writeFileSync(path.join(tmpDir, configFile), inputFileContents, 'utf8'); + const configFilePath = createConfigFile(inputFileContents, tmpDir); const actualConfig = await configUtils.initConfig( languages, undefined, - configFile, + configFilePath, { owner: 'github', repo: 'example '}, tmpDir, tmpDir, @@ -269,7 +275,7 @@ test("load non-empty input", async t => { }); }); -test("default queries are used", async t => { +test("Default queries are used", async t => { return await util.withTmpDir(async tmpDir => { // Check that the default behaviour is to add the default queries. // In this case if a config file is specified but does not include @@ -303,13 +309,12 @@ test("default queries are used", async t => { fs.mkdirSync(path.join(tmpDir, 'foo')); const languages = 'javascript'; - const configFile = 'input'; - fs.writeFileSync(path.join(tmpDir, configFile), inputFileContents, 'utf8'); + const configFilePath = createConfigFile(inputFileContents, tmpDir); await configUtils.initConfig( languages, undefined, - configFile, + configFilePath, { owner: 'github', repo: 'example '}, tmpDir, tmpDir, @@ -326,6 +331,23 @@ test("default queries are used", async t => { }); }); +/** + * Returns the provided queries, just in the right format for a resolved query + * This way we can test by seeing which returned items are in the final + * configuration. + */ +function queriesToResolvedQueryForm(queries: string[]) { + const dummyResolvedQueries = {}; + queries.forEach(q => { dummyResolvedQueries[q] = {}; }); + return { + byLanguage: { + 'javascript': dummyResolvedQueries, + }, + noDeclaredLanguage: {}, + multipleDeclaredLanguages: {}, + }; +} + test("Queries can be specified in config file", async t => { return await util.withTmpDir(async tmpDir => { const inputFileContents = ` @@ -333,8 +355,7 @@ test("Queries can be specified in config file", async t => { queries: - uses: ./foo`; - const configFile = path.join(tmpDir, 'input'); - fs.writeFileSync(configFile, inputFileContents, 'utf8'); + const configFilePath = createConfigFile(inputFileContents, tmpDir); fs.mkdirSync(path.join(tmpDir, 'foo')); @@ -342,18 +363,7 @@ test("Queries can be specified in config file", async t => { const codeQL = setCodeQL({ resolveQueries: async function(queries: string[], extraSearchPath: string | undefined) { resolveQueriesArgs.push({queries, extraSearchPath}); - // Return what we're given, just in the right format for a resolved query - // This way we can test by seeing which returned items are in the final - // configuration. - const dummyResolvedQueries = {}; - queries.forEach(q => { dummyResolvedQueries[q] = {}; }); - return { - byLanguage: { - 'javascript': dummyResolvedQueries, - }, - noDeclaredLanguage: {}, - multipleDeclaredLanguages: {}, - }; + return queriesToResolvedQueryForm(queries); }, }); @@ -362,7 +372,7 @@ test("Queries can be specified in config file", async t => { const config = await configUtils.initConfig( languages, undefined, - configFile, + configFilePath, { owner: 'github', repo: 'example '}, tmpDir, tmpDir, @@ -393,8 +403,7 @@ test("Queries from config file can be overridden in workflow file", async t => { queries: - uses: ./foo`; - const configFile = path.join(tmpDir, 'input'); - fs.writeFileSync(configFile, inputFileContents, 'utf8'); + const configFilePath = createConfigFile(inputFileContents, tmpDir); // This config item should take precedence over the config file but shouldn't affect the default queries. const queries = './override'; @@ -406,18 +415,7 @@ test("Queries from config file can be overridden in workflow file", async t => { const codeQL = setCodeQL({ resolveQueries: async function(queries: string[], extraSearchPath: string | undefined) { resolveQueriesArgs.push({queries, extraSearchPath}); - // Return what we're given, just in the right format for a resolved query - // This way we can test overriding by seeing which returned items are in - // the final configuration. - const dummyResolvedQueries = {}; - queries.forEach(q => { dummyResolvedQueries[q] = {}; }); - return { - byLanguage: { - 'javascript': dummyResolvedQueries, - }, - noDeclaredLanguage: {}, - multipleDeclaredLanguages: {}, - }; + return queriesToResolvedQueryForm(queries); }, }); @@ -426,7 +424,7 @@ test("Queries from config file can be overridden in workflow file", async t => { const config = await configUtils.initConfig( languages, queries, - configFile, + configFilePath, { owner: 'github', repo: 'example '}, tmpDir, tmpDir, @@ -450,6 +448,55 @@ test("Queries from config file can be overridden in workflow file", async t => { }); }); +test("Queries in workflow file can be used in tandem with the 'disable default queries' option", async t => { + return await util.withTmpDir(async tmpDir => { + process.env['RUNNER_TEMP'] = tmpDir; + process.env['GITHUB_WORKSPACE'] = tmpDir; + + const inputFileContents = ` + name: my config + disable-default-queries: true`; + const configFilePath = createConfigFile(inputFileContents, tmpDir); + + const queries = './workflow-query'; + fs.mkdirSync(path.join(tmpDir, 'workflow-query')); + + const resolveQueriesArgs: {queries: string[], extraSearchPath: string | undefined}[] = []; + const codeQL = setCodeQL({ + resolveQueries: async function(queries: string[], extraSearchPath: string | undefined) { + resolveQueriesArgs.push({queries, extraSearchPath}); + return queriesToResolvedQueryForm(queries); + }, + }); + + const languages = 'javascript'; + + const config = await configUtils.initConfig( + languages, + queries, + configFilePath, + { owner: 'github', repo: 'example '}, + tmpDir, + tmpDir, + codeQL, + tmpDir, + 'token', + 'https://github.example.com', + getRunnerLogger(true)); + + // Check resolveQueries was called correctly + // It'll be called once for `./workflow-query`, + // but won't be called for the default one since that was disabled + t.deepEqual(resolveQueriesArgs.length, 1); + t.deepEqual(resolveQueriesArgs[0].queries.length, 1); + t.regex(resolveQueriesArgs[0].queries[0], /.*\/workflow-query$/); + + // Now check that the end result contains only the workflow query, and not the default one + t.deepEqual(config.queries['javascript'].length, 1); + t.regex(config.queries['javascript'][0], /.*\/workflow-query$/); + }); +}); + test("Multiple queries can be specified in workflow file, no config file required", async t => { return await util.withTmpDir(async tmpDir => { fs.mkdirSync(path.join(tmpDir, 'override1')); @@ -461,18 +508,7 @@ test("Multiple queries can be specified in workflow file, no config file require const codeQL = setCodeQL({ resolveQueries: async function(queries: string[], extraSearchPath: string | undefined) { resolveQueriesArgs.push({queries, extraSearchPath}); - // Return what we're given, just in the right format for a resolved query - // This way we can test overriding by seeing which returned items are in - // the final configuration. - const dummyResolvedQueries = {}; - queries.forEach(q => { dummyResolvedQueries[q] = {}; }); - return { - byLanguage: { - 'javascript': dummyResolvedQueries, - }, - noDeclaredLanguage: {}, - multipleDeclaredLanguages: {}, - }; + return queriesToResolvedQueryForm(queries); }, }); @@ -508,6 +544,68 @@ test("Multiple queries can be specified in workflow file, no config file require }); }); +test("Queries in workflow file can be added to the set of queries without overriding config file", async t => { + return await util.withTmpDir(async tmpDir => { + process.env['RUNNER_TEMP'] = tmpDir; + process.env['GITHUB_WORKSPACE'] = tmpDir; + + const inputFileContents = ` + name: my config + queries: + - uses: ./foo`; + const configFilePath = createConfigFile(inputFileContents, tmpDir); + + // These queries shouldn't override anything, because the value is prefixed with "+" + const queries = '+./additional1,./additional2'; + + fs.mkdirSync(path.join(tmpDir, 'foo')); + fs.mkdirSync(path.join(tmpDir, 'additional1')); + fs.mkdirSync(path.join(tmpDir, 'additional2')); + + const resolveQueriesArgs: {queries: string[], extraSearchPath: string | undefined}[] = []; + const codeQL = setCodeQL({ + resolveQueries: async function(queries: string[], extraSearchPath: string | undefined) { + resolveQueriesArgs.push({queries, extraSearchPath}); + return queriesToResolvedQueryForm(queries); + }, + }); + + const languages = 'javascript'; + + const config = await configUtils.initConfig( + languages, + queries, + configFilePath, + { owner: 'github', repo: 'example '}, + tmpDir, + tmpDir, + codeQL, + tmpDir, + 'token', + 'https://github.example.com', + getRunnerLogger(true)); + + // Check resolveQueries was called correctly + // It'll be called once for the default queries, + // once for each of additional1 and additional2, + // and once for './foo' from the config file + t.deepEqual(resolveQueriesArgs.length, 4); + t.deepEqual(resolveQueriesArgs[1].queries.length, 1); + t.regex(resolveQueriesArgs[1].queries[0], /.*\/additional1$/); + t.deepEqual(resolveQueriesArgs[2].queries.length, 1); + t.regex(resolveQueriesArgs[2].queries[0], /.*\/additional2$/); + t.deepEqual(resolveQueriesArgs[3].queries.length, 1); + t.regex(resolveQueriesArgs[3].queries[0], /.*\/foo$/); + + // Now check that the end result contains all the queries + t.deepEqual(config.queries['javascript'].length, 4); + t.regex(config.queries['javascript'][0], /javascript-code-scanning.qls$/); + t.regex(config.queries['javascript'][1], /.*\/additional1$/); + t.regex(config.queries['javascript'][2], /.*\/additional2$/); + t.regex(config.queries['javascript'][3], /.*\/foo$/); + }); +}); + test("Invalid queries in workflow file handled correctly", async t => { return await util.withTmpDir(async tmpDir => { const queries = 'foo/bar@v1@v3'; diff --git a/src/config-utils.ts b/src/config-utils.ts index e97f2c47d..c313b6c30 100644 --- a/src/config-utils.ts +++ b/src/config-utils.ts @@ -539,10 +539,6 @@ async function getLanguages( return parsedLanguages; } -/** - * Returns true if queries were provided in the workflow file - * (and thus added), otherwise false - */ async function addQueriesFromWorkflow( codeQL: CodeQL, queriesInput: string, @@ -553,6 +549,10 @@ async function addQueriesFromWorkflow( githubUrl: string, logger: Logger) { + queriesInput = queriesInput.trim(); + // "+" means "don't override config file" - see shouldAddConfigFileQueries + queriesInput = queriesInput.replace(/^\+/, ''); + for (const query of queriesInput.split(',')) { await parseQueryUses( languages, @@ -566,6 +566,18 @@ async function addQueriesFromWorkflow( } } +// Returns true if either no queries were provided in the workflow. +// or if the queries in the workflow were provided in "additive" mode, +// indicating that they shouldn't override the config queries but +// should instead be added in addition +function shouldAddConfigFileQueries(queriesInput: string | undefined): boolean { + if (queriesInput) { + return queriesInput.trimStart().substr(0, 1) === '+'; + } + + return true; +} + /** * Get the default config for when the user has not supplied one. */ @@ -677,6 +689,8 @@ async function loadConfig( // If queries were provided using `with` in the action configuration, // they should take precedence over the queries in the config file + // unless they're prefixed with "+", in which case they supplement those + // in the config file. if (queriesInput) { await addQueriesFromWorkflow( codeQL, @@ -687,7 +701,8 @@ async function loadConfig( checkoutPath, githubUrl, logger); - } else if (QUERIES_PROPERTY in parsedYAML) { + } + if (shouldAddConfigFileQueries(queriesInput) && QUERIES_PROPERTY in parsedYAML) { if (!(parsedYAML[QUERIES_PROPERTY] instanceof Array)) { throw new Error(getQueriesInvalid(configFile)); }