Skip to content

Commit 1cd5043

Browse files
authored
Merge pull request #1208 from github/aeisenberg/better-error-message
More readable error message for invalid `queries` block and invalid `query-filters` blocl
2 parents 3e49948 + e379edd commit 1cd5043

13 files changed

+48
-16
lines changed

Diff for: CHANGELOG.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
## [UNRELEASED]
44

5-
No user facing changes.
5+
- Improve error messages when the code scanning configuration file includes an invalid `queries` block or an invalid `query-filters` block. [#1208](https://github.com/github/codeql-action/pull/1208)
66

77
## 2.1.20 - 22 Aug 2022
88

Diff for: lib/analyze.js

+3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: lib/analyze.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: lib/analyze.test.js

+5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: lib/analyze.test.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: lib/config-utils.js

+7-4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: lib/config-utils.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: lib/config-utils.test.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: lib/config-utils.test.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: src/analyze.test.ts

+10
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,16 @@ test("validateQueryFilters", (t) => {
313313
},
314314
{ message: /Only "include" or "exclude" filters are allowed/ }
315315
);
316+
317+
t.throws(
318+
() => {
319+
return validateQueryFilters({ exclude: "foo" } as any);
320+
},
321+
{
322+
message:
323+
/Query filters must be an array of "include" or "exclude" entries/,
324+
}
325+
);
316326
});
317327

318328
const convertPackToQuerySuiteEntryMacro = test.macro({

Diff for: src/analyze.ts

+6
Original file line numberDiff line numberDiff line change
@@ -593,6 +593,12 @@ export function validateQueryFilters(queryFilters?: configUtils.QueryFilter[]) {
593593
return [];
594594
}
595595

596+
if (!Array.isArray(queryFilters)) {
597+
throw new Error(
598+
`Query filters must be an array of "include" or "exclude" entries. Found ${typeof queryFilters}`
599+
);
600+
}
601+
596602
const errors: string[] = [];
597603
for (const qf of queryFilters) {
598604
const keys = Object.keys(qf);

Diff for: src/config-utils.test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1328,7 +1328,7 @@ doInvalidInputTest(
13281328
queries:
13291329
- uses:
13301330
- hello: world`,
1331-
configUtils.getQueryUsesInvalid
1331+
configUtils.getQueriesMissingUses
13321332
);
13331333

13341334
function doInvalidQueryUsesTest(

Diff for: src/config-utils.ts

+10-5
Original file line numberDiff line numberDiff line change
@@ -683,6 +683,14 @@ export function getQueriesInvalid(configFile: string): string {
683683
);
684684
}
685685

686+
export function getQueriesMissingUses(configFile: string): string {
687+
return getConfigFilePropertyError(
688+
configFile,
689+
QUERIES_PROPERTY,
690+
"must be an array, with each entry having a 'uses' property"
691+
);
692+
}
693+
686694
export function getQueryUsesInvalid(
687695
configFile: string | undefined,
688696
queryUses?: string
@@ -1181,11 +1189,8 @@ async function loadConfig(
11811189
throw new Error(getQueriesInvalid(configFile));
11821190
}
11831191
for (const query of queriesArr) {
1184-
if (
1185-
!(QUERIES_USES_PROPERTY in query) ||
1186-
typeof query[QUERIES_USES_PROPERTY] !== "string"
1187-
) {
1188-
throw new Error(getQueryUsesInvalid(configFile));
1192+
if (typeof query[QUERIES_USES_PROPERTY] !== "string") {
1193+
throw new Error(getQueriesMissingUses(configFile));
11891194
}
11901195
await parseQueryUses(
11911196
languages,

0 commit comments

Comments
 (0)