diff --git a/ql/src/Debug/SyntaxError.ql b/ql/src/Debug/SyntaxError.ql new file mode 100644 index 00000000000..9a638ad7fbe --- /dev/null +++ b/ql/src/Debug/SyntaxError.ql @@ -0,0 +1,17 @@ +/** + * @name Syntax error + * @description A piece of code could not be parsed due to syntax errors. + * @kind problem + * @problem.severity recommendation + * @id actions/syntax-error + * @tags reliability + * correctness + * language-features + * debug + * @precision very-high + */ + +private import codeql.actions.ast.internal.Yaml + +from YamlParseError pe +select pe, pe.getMessage() diff --git a/ql/test/query-tests/SyntaxError/.github/workflows/malformed.yml b/ql/test/query-tests/SyntaxError/.github/workflows/malformed.yml new file mode 100644 index 00000000000..a8bfa4ae19a --- /dev/null +++ b/ql/test/query-tests/SyntaxError/.github/workflows/malformed.yml @@ -0,0 +1,7 @@ +on: pull_request_target + +jobs: + test: + runs-on: ubuntu-latest + steps: + - run: echo ${{ github.event.pull_request.body}} diff --git a/ql/test/query-tests/SyntaxError/SyntaxError.expected b/ql/test/query-tests/SyntaxError/SyntaxError.expected new file mode 100644 index 00000000000..386e6554e2d --- /dev/null +++ b/ql/test/query-tests/SyntaxError/SyntaxError.expected @@ -0,0 +1 @@ +| .github/workflows/malformed.yml:7:4:7:4 | expected , but found '' | expected , but found '' | diff --git a/ql/test/query-tests/SyntaxError/SyntaxError.qlref b/ql/test/query-tests/SyntaxError/SyntaxError.qlref new file mode 100644 index 00000000000..97c5686103c --- /dev/null +++ b/ql/test/query-tests/SyntaxError/SyntaxError.qlref @@ -0,0 +1 @@ +Debug/SyntaxError.ql diff --git a/ql/test/query-tests/SyntaxError/options b/ql/test/query-tests/SyntaxError/options new file mode 100644 index 00000000000..096355709a6 --- /dev/null +++ b/ql/test/query-tests/SyntaxError/options @@ -0,0 +1 @@ +semmle-extractor-options: --tolerate-parse-errors --experimental