diff --git a/csharp/ql/lib/change-notes/2026-01-06-paths-directives-ancillary-data.md b/csharp/ql/lib/change-notes/2026-01-06-paths-directives-ancillary-data.md new file mode 100644 index 00000000000..ac96e579147 --- /dev/null +++ b/csharp/ql/lib/change-notes/2026-01-06-paths-directives-ancillary-data.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* When a code-scanning configuration specifies the `paths:` and/or `paths-ignore:` settings, these are now taken into account by the C# extractor's search for `.config`, `.props`, XML and project files. diff --git a/csharp/tools/pre-finalize.cmd b/csharp/tools/pre-finalize.cmd index 0ee982b6585..b20e2bf77d8 100644 --- a/csharp/tools/pre-finalize.cmd +++ b/csharp/tools/pre-finalize.cmd @@ -5,6 +5,7 @@ type NUL && "%CODEQL_DIST%\codeql" database index-files ^ --include-extension=.csproj ^ --include-extension=.props ^ --include-extension=.xml ^ + --also-match-lgtm-index-filters ^ --size-limit 10m ^ --language xml ^ --working-dir=. ^ diff --git a/csharp/tools/pre-finalize.sh b/csharp/tools/pre-finalize.sh index b0abd28f9ee..409fb252da3 100755 --- a/csharp/tools/pre-finalize.sh +++ b/csharp/tools/pre-finalize.sh @@ -7,6 +7,7 @@ set -eu --include-extension=.csproj \ --include-extension=.props \ --include-extension=.xml \ + --also-match-lgtm-index-filters \ --size-limit 10m \ --language xml \ --working-dir=. \ diff --git a/go/codeql-tools/pre-finalize.cmd b/go/codeql-tools/pre-finalize.cmd index 4abac249933..66f6e80a69f 100644 --- a/go/codeql-tools/pre-finalize.cmd +++ b/go/codeql-tools/pre-finalize.cmd @@ -9,6 +9,7 @@ if NOT "%CODEQL_EXTRACTOR_GO_EXTRACT_HTML%"=="no" ( --include-extension=.xhtm ^ --include-extension=.xhtml ^ --include-extension=.vue ^ + --also-match-lgtm-index-filters ^ --size-limit 10m ^ --language html ^ -- ^ diff --git a/go/codeql-tools/pre-finalize.sh b/go/codeql-tools/pre-finalize.sh index 3a8b31c70a0..9cf0b7ae0b1 100755 --- a/go/codeql-tools/pre-finalize.sh +++ b/go/codeql-tools/pre-finalize.sh @@ -10,6 +10,7 @@ if [ "${CODEQL_EXTRACTOR_GO_EXTRACT_HTML:-yes}" != "no" ]; then --include-extension=.xhtm \ --include-extension=.xhtml \ --include-extension=.vue \ + --also-match-lgtm-index-filters \ --size-limit 10m \ --language html \ -- \ diff --git a/go/ql/lib/change-notes/2026-01-06-paths-directives-ancillary-data.md b/go/ql/lib/change-notes/2026-01-06-paths-directives-ancillary-data.md new file mode 100644 index 00000000000..bf9c4553573 --- /dev/null +++ b/go/ql/lib/change-notes/2026-01-06-paths-directives-ancillary-data.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* When a code-scanning configuration specifies the `paths:` and/or `paths-ignore:` settings, these are now taken into account by the Go extractor's search for `.vue` and HTML files. diff --git a/java/ql/integration-tests/java/buildless-paths/codescanning-config.yml b/java/ql/integration-tests/java/buildless-paths/codescanning-config.yml new file mode 100644 index 00000000000..9baea12fdfe --- /dev/null +++ b/java/ql/integration-tests/java/buildless-paths/codescanning-config.yml @@ -0,0 +1,4 @@ +paths: + - include +paths-ignore: + - include/exclude diff --git a/java/ql/integration-tests/java/buildless-paths/include/ShouldAppear2.java b/java/ql/integration-tests/java/buildless-paths/include/ShouldAppear2.java new file mode 100644 index 00000000000..09e2bc29dcc --- /dev/null +++ b/java/ql/integration-tests/java/buildless-paths/include/ShouldAppear2.java @@ -0,0 +1 @@ +public class ShouldAppear2 { } diff --git a/java/ql/integration-tests/java/buildless-paths/include/ShouldAppear2.xml b/java/ql/integration-tests/java/buildless-paths/include/ShouldAppear2.xml new file mode 100644 index 00000000000..5c2795036a0 --- /dev/null +++ b/java/ql/integration-tests/java/buildless-paths/include/ShouldAppear2.xml @@ -0,0 +1 @@ + diff --git a/java/ql/integration-tests/java/buildless-paths/include/exclude/ShouldNotAppear3.java b/java/ql/integration-tests/java/buildless-paths/include/exclude/ShouldNotAppear3.java new file mode 100644 index 00000000000..164b0c1d1d8 --- /dev/null +++ b/java/ql/integration-tests/java/buildless-paths/include/exclude/ShouldNotAppear3.java @@ -0,0 +1 @@ +public class ShouldNotAppear3 { } diff --git a/java/ql/integration-tests/java/buildless-paths/include/exclude/ShouldNotAppear3.xml b/java/ql/integration-tests/java/buildless-paths/include/exclude/ShouldNotAppear3.xml new file mode 100644 index 00000000000..5c2795036a0 --- /dev/null +++ b/java/ql/integration-tests/java/buildless-paths/include/exclude/ShouldNotAppear3.xml @@ -0,0 +1 @@ + diff --git a/java/ql/integration-tests/java/buildless-paths/sibling/ShouldNotAppear1.java b/java/ql/integration-tests/java/buildless-paths/sibling/ShouldNotAppear1.java new file mode 100644 index 00000000000..55a0b62aa88 --- /dev/null +++ b/java/ql/integration-tests/java/buildless-paths/sibling/ShouldNotAppear1.java @@ -0,0 +1 @@ +public class ShouldNotAppear1 { } diff --git a/java/ql/integration-tests/java/buildless-paths/sibling/ShouldNotAppear1.xml b/java/ql/integration-tests/java/buildless-paths/sibling/ShouldNotAppear1.xml new file mode 100644 index 00000000000..5c2795036a0 --- /dev/null +++ b/java/ql/integration-tests/java/buildless-paths/sibling/ShouldNotAppear1.xml @@ -0,0 +1 @@ + diff --git a/java/ql/integration-tests/java/buildless-paths/test.expected b/java/ql/integration-tests/java/buildless-paths/test.expected new file mode 100644 index 00000000000..95b59dab6b1 --- /dev/null +++ b/java/ql/integration-tests/java/buildless-paths/test.expected @@ -0,0 +1,4 @@ +javaFiles +| include/ShouldAppear2.java:0:0:0:0 | ShouldAppear2 | +#select +| include/ShouldAppear2.xml:0:0:0:0 | include/ShouldAppear2.xml | diff --git a/java/ql/integration-tests/java/buildless-paths/test.py b/java/ql/integration-tests/java/buildless-paths/test.py new file mode 100644 index 00000000000..bbbf14aaa2c --- /dev/null +++ b/java/ql/integration-tests/java/buildless-paths/test.py @@ -0,0 +1,5 @@ +import os +import os.path + +def test(codeql, java): + codeql.database.create(build_mode = "none", codescanning_config = "codescanning-config.yml") diff --git a/java/ql/integration-tests/java/buildless-paths/test.ql b/java/ql/integration-tests/java/buildless-paths/test.ql new file mode 100644 index 00000000000..3023403edfc --- /dev/null +++ b/java/ql/integration-tests/java/buildless-paths/test.ql @@ -0,0 +1,6 @@ +import java + +query predicate javaFiles(File f) { f.isJavaSourceFile() } + +from XmlFile f +select f diff --git a/java/ql/lib/change-notes/2025-12-16-java-xml-paths.md b/java/ql/lib/change-notes/2025-12-16-java-xml-paths.md new file mode 100644 index 00000000000..877d0e7e2ed --- /dev/null +++ b/java/ql/lib/change-notes/2025-12-16-java-xml-paths.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* When a code-scanning configuration specifies the `paths:` and/or `paths-ignore:` settings, these are now taken into account by the Java extractor's search for XML and properties files. diff --git a/python/ql/lib/change-notes/2026-01-06-paths-directives-ancillary-data.md b/python/ql/lib/change-notes/2026-01-06-paths-directives-ancillary-data.md new file mode 100644 index 00000000000..ed16f8b6565 --- /dev/null +++ b/python/ql/lib/change-notes/2026-01-06-paths-directives-ancillary-data.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* When a code-scanning configuration specifies the `paths:` and/or `paths-ignore:` settings, these are now taken into account by the Python extractor's search for YAML files. diff --git a/python/tools/pre-finalize.cmd b/python/tools/pre-finalize.cmd index 07454671062..235b79c77b0 100644 --- a/python/tools/pre-finalize.cmd +++ b/python/tools/pre-finalize.cmd @@ -3,6 +3,7 @@ type NUL && "%CODEQL_DIST%\codeql" database index-files ^ --include-extension=.yaml ^ --include-extension=.yml ^ + --also-match-lgtm-index-filters ^ --size-limit=5m ^ --language yaml ^ -- ^ diff --git a/python/tools/pre-finalize.sh b/python/tools/pre-finalize.sh index 9fe5200a38f..b938be75aa7 100755 --- a/python/tools/pre-finalize.sh +++ b/python/tools/pre-finalize.sh @@ -5,6 +5,7 @@ set -eu "$CODEQL_DIST/codeql" database index-files \ --include-extension=.yaml \ --include-extension=.yml \ + --also-match-lgtm-index-filters \ --size-limit=5m \ --language yaml \ -- \ diff --git a/ql/tools/pre-finalize.cmd b/ql/tools/pre-finalize.cmd index 49d18f3d197..19fa7b04523 100644 --- a/ql/tools/pre-finalize.cmd +++ b/ql/tools/pre-finalize.cmd @@ -3,6 +3,7 @@ type NUL && "%CODEQL_DIST%\codeql" database index-files ^ --include=**/qlpack.yml ^ --include-extension=.qlref ^ + --also-match-lgtm-index-filters ^ --size-limit=5m ^ --language yaml ^ -- ^ diff --git a/ql/tools/pre-finalize.sh b/ql/tools/pre-finalize.sh index 7003ad81c1b..afae94ef83a 100755 --- a/ql/tools/pre-finalize.sh +++ b/ql/tools/pre-finalize.sh @@ -5,6 +5,7 @@ set -eu "$CODEQL_DIST/codeql" database index-files \ "--include=**/qlpack.yml" \ --include-extension=.qlref \ + --also-match-lgtm-index-filters \ --size-limit=5m \ --language yaml \ -- \