From af36eae002df13ccbe241ec01270f624dfaa129e Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Tue, 6 Jan 2026 12:48:01 +0000 Subject: [PATCH 1/4] All languages: account for paths and paths-ignore in XML and other ancillary extraction --- csharp/tools/pre-finalize.cmd | 1 + csharp/tools/pre-finalize.sh | 1 + go/codeql-tools/pre-finalize.cmd | 1 + go/codeql-tools/pre-finalize.sh | 1 + python/tools/pre-finalize.cmd | 1 + python/tools/pre-finalize.sh | 1 + ql/tools/pre-finalize.cmd | 1 + ql/tools/pre-finalize.sh | 1 + 8 files changed, 8 insertions(+) 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/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 \ -- \ From 6ed24f22b50118b44a77b52ebf1a0b08cb83710b Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Tue, 6 Jan 2026 13:01:37 +0000 Subject: [PATCH 2/4] Change notes --- .../2026-01-06-paths-directives-ancillary-data.md | 4 ++++ .../2026-01-06-paths-directives-ancillary-data.md | 4 ++++ .../2026-01-06-paths-directives-ancillary-data.md | 4 ++++ 3 files changed, 12 insertions(+) create mode 100644 csharp/ql/lib/change-notes/2026-01-06-paths-directives-ancillary-data.md create mode 100644 go/ql/lib/change-notes/2026-01-06-paths-directives-ancillary-data.md create mode 100644 python/ql/lib/change-notes/2026-01-06-paths-directives-ancillary-data.md 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/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/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. From 13e0e6c6948657a2ab7df45fc52aa85ecf66b703 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Fri, 9 Jan 2026 13:42:43 +0000 Subject: [PATCH 3/4] Reapply "Add integration test for paths and paths-ignore vs. Java buildless mode" This reverts commit 9db11f73c561a0eaf6da0241120849148f5f3669. --- .../java/buildless-paths/codescanning-config.yml | 4 ++++ .../java/buildless-paths/include/ShouldAppear2.java | 1 + .../java/buildless-paths/include/ShouldAppear2.xml | 1 + .../buildless-paths/include/exclude/ShouldNotAppear3.java | 1 + .../buildless-paths/include/exclude/ShouldNotAppear3.xml | 1 + .../java/buildless-paths/sibling/ShouldNotAppear1.java | 1 + .../java/buildless-paths/sibling/ShouldNotAppear1.xml | 1 + .../ql/integration-tests/java/buildless-paths/test.expected | 4 ++++ java/ql/integration-tests/java/buildless-paths/test.py | 5 +++++ java/ql/integration-tests/java/buildless-paths/test.ql | 6 ++++++ 10 files changed, 25 insertions(+) create mode 100644 java/ql/integration-tests/java/buildless-paths/codescanning-config.yml create mode 100644 java/ql/integration-tests/java/buildless-paths/include/ShouldAppear2.java create mode 100644 java/ql/integration-tests/java/buildless-paths/include/ShouldAppear2.xml create mode 100644 java/ql/integration-tests/java/buildless-paths/include/exclude/ShouldNotAppear3.java create mode 100644 java/ql/integration-tests/java/buildless-paths/include/exclude/ShouldNotAppear3.xml create mode 100644 java/ql/integration-tests/java/buildless-paths/sibling/ShouldNotAppear1.java create mode 100644 java/ql/integration-tests/java/buildless-paths/sibling/ShouldNotAppear1.xml create mode 100644 java/ql/integration-tests/java/buildless-paths/test.expected create mode 100644 java/ql/integration-tests/java/buildless-paths/test.py create mode 100644 java/ql/integration-tests/java/buildless-paths/test.ql 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 From 634e9e6c39ecde16be70b92012cf758a68cb220d Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Fri, 9 Jan 2026 13:42:48 +0000 Subject: [PATCH 4/4] Reapply "Change note" This reverts commit 688f10daf1e61c2be55a8e04fada92b45434db48. --- java/ql/lib/change-notes/2025-12-16-java-xml-paths.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 java/ql/lib/change-notes/2025-12-16-java-xml-paths.md 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.