diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.DS_Store b/ql/docs/language/learn-ql/build.html-5f4acb8/.DS_Store new file mode 100644 index 0000000..0502275 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.DS_Store differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.buildinfo b/ql/docs/language/learn-ql/build.html-5f4acb8/.buildinfo new file mode 100644 index 0000000..23da1cb --- /dev/null +++ b/ql/docs/language/learn-ql/build.html-5f4acb8/.buildinfo @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. +config: 2b2aca0469e829e82d2255ad769235a8 +tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/about-codeql-packs.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/about-codeql-packs.doctree new file mode 100644 index 0000000..a800427 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/about-codeql-packs.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/about-codeql-workspaces.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/about-codeql-workspaces.doctree new file mode 100644 index 0000000..142e081 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/about-codeql-workspaces.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/about-ql-packs.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/about-ql-packs.doctree new file mode 100644 index 0000000..4f6b019 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/about-ql-packs.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/about-the-codeql-cli.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/about-the-codeql-cli.doctree new file mode 100644 index 0000000..1055283 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/about-the-codeql-cli.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/analyzing-databases-with-the-codeql-cli.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/analyzing-databases-with-the-codeql-cli.doctree new file mode 100644 index 0000000..6c05379 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/analyzing-databases-with-the-codeql-cli.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/codeql-cli-reference.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/codeql-cli-reference.doctree new file mode 100644 index 0000000..ff17663 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/codeql-cli-reference.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/creating-and-working-with-codeql-packs.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/creating-and-working-with-codeql-packs.doctree new file mode 100644 index 0000000..76a313f Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/creating-and-working-with-codeql-packs.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/creating-codeql-databases.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/creating-codeql-databases.doctree new file mode 100644 index 0000000..4b9abcc Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/creating-codeql-databases.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/creating-codeql-query-suites.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/creating-codeql-query-suites.doctree new file mode 100644 index 0000000..080e85f Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/creating-codeql-query-suites.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/exit-codes.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/exit-codes.doctree new file mode 100644 index 0000000..0e21fde Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/exit-codes.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/extractor-options.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/extractor-options.doctree new file mode 100644 index 0000000..d2a3b78 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/extractor-options.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/getting-started-with-the-codeql-cli.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/getting-started-with-the-codeql-cli.doctree new file mode 100644 index 0000000..eb7be6e Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/getting-started-with-the-codeql-cli.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/index.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/index.doctree new file mode 100644 index 0000000..7a55dc1 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/index.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/publishing-and-using-codeql-packs.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/publishing-and-using-codeql-packs.doctree new file mode 100644 index 0000000..ee33a3f Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/publishing-and-using-codeql-packs.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/query-reference-files.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/query-reference-files.doctree new file mode 100644 index 0000000..87b0694 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/query-reference-files.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/sarif-output.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/sarif-output.doctree new file mode 100644 index 0000000..6ade835 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/sarif-output.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/specifying-command-options-in-a-codeql-configuration-file.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/specifying-command-options-in-a-codeql-configuration-file.doctree new file mode 100644 index 0000000..87349c6 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/specifying-command-options-in-a-codeql-configuration-file.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/testing-custom-queries.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/testing-custom-queries.doctree new file mode 100644 index 0000000..d9d03e0 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/testing-custom-queries.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/testing-query-help-files.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/testing-query-help-files.doctree new file mode 100644 index 0000000..59dec9c Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/testing-query-help-files.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/upgrading-codeql-databases.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/upgrading-codeql-databases.doctree new file mode 100644 index 0000000..b2546f8 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/upgrading-codeql-databases.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/using-custom-queries-with-the-codeql-cli.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/using-custom-queries-with-the-codeql-cli.doctree new file mode 100644 index 0000000..2361c1f Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/using-custom-queries-with-the-codeql-cli.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/using-the-codeql-cli.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/using-the-codeql-cli.doctree new file mode 100644 index 0000000..467c8d0 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-cli/using-the-codeql-cli.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-for-visual-studio-code/about-codeql-for-visual-studio-code.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-for-visual-studio-code/about-codeql-for-visual-studio-code.doctree new file mode 100644 index 0000000..8bfaace Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-for-visual-studio-code/about-codeql-for-visual-studio-code.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-for-visual-studio-code/about-telemetry-in-codeql-for-visual-studio-code.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-for-visual-studio-code/about-telemetry-in-codeql-for-visual-studio-code.doctree new file mode 100644 index 0000000..d3acc3d Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-for-visual-studio-code/about-telemetry-in-codeql-for-visual-studio-code.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-for-visual-studio-code/analyzing-your-projects.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-for-visual-studio-code/analyzing-your-projects.doctree new file mode 100644 index 0000000..81b3f72 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-for-visual-studio-code/analyzing-your-projects.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-for-visual-studio-code/customizing-settings.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-for-visual-studio-code/customizing-settings.doctree new file mode 100644 index 0000000..9493ea5 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-for-visual-studio-code/customizing-settings.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-for-visual-studio-code/exploring-data-flow-with-path-queries.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-for-visual-studio-code/exploring-data-flow-with-path-queries.doctree new file mode 100644 index 0000000..3878cc8 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-for-visual-studio-code/exploring-data-flow-with-path-queries.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-for-visual-studio-code/exploring-the-structure-of-your-source-code.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-for-visual-studio-code/exploring-the-structure-of-your-source-code.doctree new file mode 100644 index 0000000..753bb7c Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-for-visual-studio-code/exploring-the-structure-of-your-source-code.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-for-visual-studio-code/index.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-for-visual-studio-code/index.doctree new file mode 100644 index 0000000..2903e57 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-for-visual-studio-code/index.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-for-visual-studio-code/running-codeql-queries-at-scale-with-mrva.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-for-visual-studio-code/running-codeql-queries-at-scale-with-mrva.doctree new file mode 100644 index 0000000..d00bbb1 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-for-visual-studio-code/running-codeql-queries-at-scale-with-mrva.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-for-visual-studio-code/setting-up-codeql-in-visual-studio-code.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-for-visual-studio-code/setting-up-codeql-in-visual-studio-code.doctree new file mode 100644 index 0000000..3ab9839 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-for-visual-studio-code/setting-up-codeql-in-visual-studio-code.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-for-visual-studio-code/testing-codeql-queries-in-visual-studio-code.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-for-visual-studio-code/testing-codeql-queries-in-visual-studio-code.doctree new file mode 100644 index 0000000..1d5f4be Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-for-visual-studio-code/testing-codeql-queries-in-visual-studio-code.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-for-visual-studio-code/troubleshooting-codeql-for-visual-studio-code.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-for-visual-studio-code/troubleshooting-codeql-for-visual-studio-code.doctree new file mode 100644 index 0000000..ce51499 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-for-visual-studio-code/troubleshooting-codeql-for-visual-studio-code.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-for-visual-studio-code/troubleshooting-variant-analysis.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-for-visual-studio-code/troubleshooting-variant-analysis.doctree new file mode 100644 index 0000000..36bca0e Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-for-visual-studio-code/troubleshooting-variant-analysis.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-for-visual-studio-code/using-the-codeql-model-editor.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-for-visual-studio-code/using-the-codeql-model-editor.doctree new file mode 100644 index 0000000..bfd052f Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-for-visual-studio-code/using-the-codeql-model-editor.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-for-visual-studio-code/working-with-codeql-packs-in-visual-studio-code.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-for-visual-studio-code/working-with-codeql-packs-in-visual-studio-code.doctree new file mode 100644 index 0000000..088af19 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-for-visual-studio-code/working-with-codeql-packs-in-visual-studio-code.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/abstract-syntax-tree-classes-for-working-with-go-programs.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/abstract-syntax-tree-classes-for-working-with-go-programs.doctree new file mode 100644 index 0000000..298b3ce Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/abstract-syntax-tree-classes-for-working-with-go-programs.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/abstract-syntax-tree-classes-for-working-with-java-programs.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/abstract-syntax-tree-classes-for-working-with-java-programs.doctree new file mode 100644 index 0000000..d0af965 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/abstract-syntax-tree-classes-for-working-with-java-programs.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/abstract-syntax-tree-classes-for-working-with-javascript-and-typescript-programs.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/abstract-syntax-tree-classes-for-working-with-javascript-and-typescript-programs.doctree new file mode 100644 index 0000000..49cc063 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/abstract-syntax-tree-classes-for-working-with-javascript-and-typescript-programs.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/abstract-syntax-tree-classes-for-working-with-ruby-programs.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/abstract-syntax-tree-classes-for-working-with-ruby-programs.doctree new file mode 100644 index 0000000..a39602e Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/abstract-syntax-tree-classes-for-working-with-ruby-programs.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/advanced-dataflow-scenarios-cpp.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/advanced-dataflow-scenarios-cpp.doctree new file mode 100644 index 0000000..087a54c Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/advanced-dataflow-scenarios-cpp.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/analyzing-control-flow-in-python.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/analyzing-control-flow-in-python.doctree new file mode 100644 index 0000000..cb710b7 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/analyzing-control-flow-in-python.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/analyzing-data-flow-in-cpp-new.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/analyzing-data-flow-in-cpp-new.doctree new file mode 100644 index 0000000..340125a Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/analyzing-data-flow-in-cpp-new.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/analyzing-data-flow-in-cpp.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/analyzing-data-flow-in-cpp.doctree new file mode 100644 index 0000000..9be7d5f Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/analyzing-data-flow-in-cpp.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/analyzing-data-flow-in-csharp.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/analyzing-data-flow-in-csharp.doctree new file mode 100644 index 0000000..9832fb9 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/analyzing-data-flow-in-csharp.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/analyzing-data-flow-in-java.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/analyzing-data-flow-in-java.doctree new file mode 100644 index 0000000..3b28b70 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/analyzing-data-flow-in-java.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/analyzing-data-flow-in-javascript-and-typescript.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/analyzing-data-flow-in-javascript-and-typescript.doctree new file mode 100644 index 0000000..25ff3ed Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/analyzing-data-flow-in-javascript-and-typescript.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/analyzing-data-flow-in-python.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/analyzing-data-flow-in-python.doctree new file mode 100644 index 0000000..d138107 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/analyzing-data-flow-in-python.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/analyzing-data-flow-in-ruby.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/analyzing-data-flow-in-ruby.doctree new file mode 100644 index 0000000..3266ff9 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/analyzing-data-flow-in-ruby.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/analyzing-data-flow-in-swift.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/analyzing-data-flow-in-swift.doctree new file mode 100644 index 0000000..bcbb306 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/analyzing-data-flow-in-swift.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/annotations-in-java.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/annotations-in-java.doctree new file mode 100644 index 0000000..496eb0c Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/annotations-in-java.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/basic-query-for-cpp-code.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/basic-query-for-cpp-code.doctree new file mode 100644 index 0000000..a8c5b4b Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/basic-query-for-cpp-code.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/basic-query-for-csharp-code.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/basic-query-for-csharp-code.doctree new file mode 100644 index 0000000..7f99f62 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/basic-query-for-csharp-code.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/basic-query-for-go-code.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/basic-query-for-go-code.doctree new file mode 100644 index 0000000..d912cfc Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/basic-query-for-go-code.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/basic-query-for-java-code.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/basic-query-for-java-code.doctree new file mode 100644 index 0000000..f099d8d Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/basic-query-for-java-code.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/basic-query-for-javascript-code.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/basic-query-for-javascript-code.doctree new file mode 100644 index 0000000..839a74d Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/basic-query-for-javascript-code.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/basic-query-for-python-code.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/basic-query-for-python-code.doctree new file mode 100644 index 0000000..c757351 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/basic-query-for-python-code.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/basic-query-for-ruby-code.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/basic-query-for-ruby-code.doctree new file mode 100644 index 0000000..1bfd7c1 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/basic-query-for-ruby-code.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/basic-query-for-swift-code.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/basic-query-for-swift-code.doctree new file mode 100644 index 0000000..65e30e4 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/basic-query-for-swift-code.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-for-cpp.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-for-cpp.doctree new file mode 100644 index 0000000..e8f1b4c Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-for-cpp.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-for-csharp.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-for-csharp.doctree new file mode 100644 index 0000000..020451d Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-for-csharp.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-for-go.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-for-go.doctree new file mode 100644 index 0000000..c9222a0 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-for-go.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-for-java.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-for-java.doctree new file mode 100644 index 0000000..401c08e Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-for-java.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-for-javascript.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-for-javascript.doctree new file mode 100644 index 0000000..2ae25e8 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-for-javascript.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-for-python.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-for-python.doctree new file mode 100644 index 0000000..74f8f74 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-for-python.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-for-ruby.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-for-ruby.doctree new file mode 100644 index 0000000..51a3188 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-for-ruby.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-for-swift.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-for-swift.doctree new file mode 100644 index 0000000..d03c8a2 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-for-swift.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-library-for-cpp.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-library-for-cpp.doctree new file mode 100644 index 0000000..97ca99b Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-library-for-cpp.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-library-for-csharp.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-library-for-csharp.doctree new file mode 100644 index 0000000..85ed68a Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-library-for-csharp.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-library-for-go.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-library-for-go.doctree new file mode 100644 index 0000000..a4193ea Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-library-for-go.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-library-for-java.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-library-for-java.doctree new file mode 100644 index 0000000..a4e0c1d Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-library-for-java.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-library-for-javascript.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-library-for-javascript.doctree new file mode 100644 index 0000000..68c73d5 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-library-for-javascript.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-library-for-python.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-library-for-python.doctree new file mode 100644 index 0000000..441ea8f Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-library-for-python.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-library-for-ruby.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-library-for-ruby.doctree new file mode 100644 index 0000000..5edd4fd Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-library-for-ruby.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-library-for-typescript.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-library-for-typescript.doctree new file mode 100644 index 0000000..9fdd669 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/codeql-library-for-typescript.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/conversions-and-classes-in-cpp.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/conversions-and-classes-in-cpp.doctree new file mode 100644 index 0000000..2b6a072 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/conversions-and-classes-in-cpp.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/customizing-library-models-for-java-and-kotlin.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/customizing-library-models-for-java-and-kotlin.doctree new file mode 100644 index 0000000..ad697b1 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/customizing-library-models-for-java-and-kotlin.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/customizing-library-models-for-javascript.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/customizing-library-models-for-javascript.doctree new file mode 100644 index 0000000..1b0c5a9 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/customizing-library-models-for-javascript.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/data-flow-cheat-sheet-for-javascript.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/data-flow-cheat-sheet-for-javascript.doctree new file mode 100644 index 0000000..e0ecd6c Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/data-flow-cheat-sheet-for-javascript.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/detecting-a-potential-buffer-overflow.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/detecting-a-potential-buffer-overflow.doctree new file mode 100644 index 0000000..eaf022a Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/detecting-a-potential-buffer-overflow.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/expressions-and-statements-in-python.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/expressions-and-statements-in-python.doctree new file mode 100644 index 0000000..b50db0d Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/expressions-and-statements-in-python.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/expressions-types-and-statements-in-cpp.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/expressions-types-and-statements-in-cpp.doctree new file mode 100644 index 0000000..6f0deed Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/expressions-types-and-statements-in-cpp.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/extensible-predicates.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/extensible-predicates.doctree new file mode 100644 index 0000000..74f9f00 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/extensible-predicates.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/functions-in-cpp.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/functions-in-cpp.doctree new file mode 100644 index 0000000..fbe6a84 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/functions-in-cpp.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/functions-in-python.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/functions-in-python.doctree new file mode 100644 index 0000000..330f062 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/functions-in-python.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/hash-consing-and-value-numbering.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/hash-consing-and-value-numbering.doctree new file mode 100644 index 0000000..50ae86f Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/hash-consing-and-value-numbering.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/index.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/index.doctree new file mode 100644 index 0000000..c923f0f Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/index.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/javadoc.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/javadoc.doctree new file mode 100644 index 0000000..df2afea Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/javadoc.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/modeling-data-flow-in-go-libraries.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/modeling-data-flow-in-go-libraries.doctree new file mode 100644 index 0000000..843ddf5 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/modeling-data-flow-in-go-libraries.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/navigating-the-call-graph.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/navigating-the-call-graph.doctree new file mode 100644 index 0000000..8227323 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/navigating-the-call-graph.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/overflow-prone-comparisons-in-java.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/overflow-prone-comparisons-in-java.doctree new file mode 100644 index 0000000..5bcd720 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/overflow-prone-comparisons-in-java.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/refining-a-query-to-account-for-edge-cases.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/refining-a-query-to-account-for-edge-cases.doctree new file mode 100644 index 0000000..1c7abff Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/refining-a-query-to-account-for-edge-cases.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/specifying-additional-remote-flow-sources-for-javascript.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/specifying-additional-remote-flow-sources-for-javascript.doctree new file mode 100644 index 0000000..07a9124 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/specifying-additional-remote-flow-sources-for-javascript.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/types-in-java.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/types-in-java.doctree new file mode 100644 index 0000000..1968b02 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/types-in-java.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/using-api-graphs-in-python.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/using-api-graphs-in-python.doctree new file mode 100644 index 0000000..4c15a45 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/using-api-graphs-in-python.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/using-api-graphs-in-ruby.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/using-api-graphs-in-ruby.doctree new file mode 100644 index 0000000..3777b63 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/using-api-graphs-in-ruby.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/using-flow-labels-for-precise-data-flow-analysis.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/using-flow-labels-for-precise-data-flow-analysis.doctree new file mode 100644 index 0000000..70061b5 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/using-flow-labels-for-precise-data-flow-analysis.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/using-range-analsis-in-cpp.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/using-range-analsis-in-cpp.doctree new file mode 100644 index 0000000..353435e Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/using-range-analsis-in-cpp.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/using-the-guards-library-in-cpp.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/using-the-guards-library-in-cpp.doctree new file mode 100644 index 0000000..58b996d Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/using-the-guards-library-in-cpp.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/using-type-tracking-for-api-modeling.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/using-type-tracking-for-api-modeling.doctree new file mode 100644 index 0000000..2b0b742 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/using-type-tracking-for-api-modeling.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/working-with-source-locations.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/working-with-source-locations.doctree new file mode 100644 index 0000000..02d5b51 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-language-guides/working-with-source-locations.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-overview/about-codeql.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-overview/about-codeql.doctree new file mode 100644 index 0000000..8222a8f Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-overview/about-codeql.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-overview/codeql-glossary.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-overview/codeql-glossary.doctree new file mode 100644 index 0000000..e47b465 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-overview/codeql-glossary.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-overview/codeql-tools.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-overview/codeql-tools.doctree new file mode 100644 index 0000000..30e0b9a Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-overview/codeql-tools.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-overview/index.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-overview/index.doctree new file mode 100644 index 0000000..322dc8b Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-overview/index.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-overview/supported-languages-and-frameworks.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-overview/supported-languages-and-frameworks.doctree new file mode 100644 index 0000000..71bacc4 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-overview/supported-languages-and-frameworks.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-overview/system-requirements.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-overview/system-requirements.doctree new file mode 100644 index 0000000..e937ebc Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/codeql-overview/system-requirements.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/contents.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/contents.doctree new file mode 100644 index 0000000..60e7f45 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/contents.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/environment.pickle b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/environment.pickle new file mode 100644 index 0000000..ca86c00 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/environment.pickle differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/about-the-ql-language.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/about-the-ql-language.doctree new file mode 100644 index 0000000..3f51619 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/about-the-ql-language.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/aliases.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/aliases.doctree new file mode 100644 index 0000000..c8268cd Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/aliases.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/annotations.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/annotations.doctree new file mode 100644 index 0000000..57ecc74 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/annotations.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/evaluation-of-ql-programs.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/evaluation-of-ql-programs.doctree new file mode 100644 index 0000000..8515749 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/evaluation-of-ql-programs.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/expressions.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/expressions.doctree new file mode 100644 index 0000000..d4c0aa8 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/expressions.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/formulas.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/formulas.doctree new file mode 100644 index 0000000..1913ab6 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/formulas.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/index.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/index.doctree new file mode 100644 index 0000000..e2f27e6 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/index.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/lexical-syntax.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/lexical-syntax.doctree new file mode 100644 index 0000000..d5c71ff Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/lexical-syntax.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/modules.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/modules.doctree new file mode 100644 index 0000000..1c98b48 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/modules.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/name-resolution.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/name-resolution.doctree new file mode 100644 index 0000000..f067e3d Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/name-resolution.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/predicates.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/predicates.doctree new file mode 100644 index 0000000..e158d46 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/predicates.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/ql-language-specification.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/ql-language-specification.doctree new file mode 100644 index 0000000..a7fa3c8 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/ql-language-specification.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/queries.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/queries.doctree new file mode 100644 index 0000000..6f33d81 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/queries.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/recursion.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/recursion.doctree new file mode 100644 index 0000000..8ef24e2 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/recursion.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/signatures.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/signatures.doctree new file mode 100644 index 0000000..7155f0b Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/signatures.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/types.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/types.doctree new file mode 100644 index 0000000..e85b96a Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/types.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/variables.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/variables.doctree new file mode 100644 index 0000000..58d1cdd Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/ql-language-reference/variables.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/about-codeql-queries.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/about-codeql-queries.doctree new file mode 100644 index 0000000..ebe7e17 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/about-codeql-queries.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/about-data-flow-analysis.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/about-data-flow-analysis.doctree new file mode 100644 index 0000000..3d1b439 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/about-data-flow-analysis.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/catch-the-fire-starter.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/catch-the-fire-starter.doctree new file mode 100644 index 0000000..4caaac9 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/catch-the-fire-starter.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/codeql-queries.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/codeql-queries.doctree new file mode 100644 index 0000000..17c2648 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/codeql-queries.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/creating-path-queries.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/creating-path-queries.doctree new file mode 100644 index 0000000..630a1db Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/creating-path-queries.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/cross-the-river.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/cross-the-river.doctree new file mode 100644 index 0000000..6ec1b8e Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/cross-the-river.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/crown-the-rightful-heir.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/crown-the-rightful-heir.doctree new file mode 100644 index 0000000..135182b Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/crown-the-rightful-heir.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/debugging-data-flow-queries-using-partial-flow.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/debugging-data-flow-queries-using-partial-flow.doctree new file mode 100644 index 0000000..7f3adc3 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/debugging-data-flow-queries-using-partial-flow.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/defining-the-results-of-a-query.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/defining-the-results-of-a-query.doctree new file mode 100644 index 0000000..edc89b6 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/defining-the-results-of-a-query.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/find-the-thief.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/find-the-thief.doctree new file mode 100644 index 0000000..8467195 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/find-the-thief.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/index.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/index.doctree new file mode 100644 index 0000000..b99007a Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/index.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/introduction-to-ql.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/introduction-to-ql.doctree new file mode 100644 index 0000000..784278c Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/introduction-to-ql.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/metadata-for-codeql-queries.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/metadata-for-codeql-queries.doctree new file mode 100644 index 0000000..5f7ba9a Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/metadata-for-codeql-queries.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/providing-locations-in-codeql-queries.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/providing-locations-in-codeql-queries.doctree new file mode 100644 index 0000000..8b4d829 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/providing-locations-in-codeql-queries.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/ql-tutorials.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/ql-tutorials.doctree new file mode 100644 index 0000000..a1ade34 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/ql-tutorials.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/query-help-files.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/query-help-files.doctree new file mode 100644 index 0000000..62afe81 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/query-help-files.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/troubleshooting-query-performance.doctree b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/troubleshooting-query-performance.doctree new file mode 100644 index 0000000..ecbbf4a Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/.doctrees/writing-codeql-queries/troubleshooting-query-performance.doctree differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/add-codeql-db-github.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/add-codeql-db-github.png new file mode 100644 index 0000000..6b61e32 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/add-codeql-db-github.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/add-database-source-to-workspace.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/add-database-source-to-workspace.png new file mode 100644 index 0000000..0f2076a Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/add-database-source-to-workspace.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/ast.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/ast.png new file mode 100644 index 0000000..61a9f29 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/ast.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-cpp-query-results-1.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-cpp-query-results-1.png new file mode 100644 index 0000000..3751e6f Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-cpp-query-results-1.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-cpp-query-results-2.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-cpp-query-results-2.png new file mode 100644 index 0000000..cdbe594 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-cpp-query-results-2.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-csharp-query-results-1.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-csharp-query-results-1.png new file mode 100644 index 0000000..51e30ba Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-csharp-query-results-1.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-csharp-query-results-2.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-csharp-query-results-2.png new file mode 100644 index 0000000..e03df57 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-csharp-query-results-2.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-go-query-results-1.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-go-query-results-1.png new file mode 100644 index 0000000..65a527b Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-go-query-results-1.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-go-query-results-2.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-go-query-results-2.png new file mode 100644 index 0000000..619408c Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-go-query-results-2.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-java-query-results-1.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-java-query-results-1.png new file mode 100644 index 0000000..e32ce79 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-java-query-results-1.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-java-query-results-2.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-java-query-results-2.png new file mode 100644 index 0000000..48057a6 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-java-query-results-2.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-js-query-results-1.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-js-query-results-1.png new file mode 100644 index 0000000..1f98927 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-js-query-results-1.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-js-query-results-2.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-js-query-results-2.png new file mode 100644 index 0000000..59d38f8 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-js-query-results-2.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-python-query-results-1.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-python-query-results-1.png new file mode 100644 index 0000000..84e5dee Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-python-query-results-1.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-python-query-results-2.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-python-query-results-2.png new file mode 100644 index 0000000..d92f8e3 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-python-query-results-2.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-ruby-query-results-1.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-ruby-query-results-1.png new file mode 100644 index 0000000..13d5e13 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-ruby-query-results-1.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-ruby-query-results-2.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-ruby-query-results-2.png new file mode 100644 index 0000000..f4f3393 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-ruby-query-results-2.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-swift-query-results-1.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-swift-query-results-1.png new file mode 100644 index 0000000..3ab9607 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-swift-query-results-1.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-swift-query-results-2.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-swift-query-results-2.png new file mode 100644 index 0000000..b3e42e7 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/basic-swift-query-results-2.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/cfg.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/cfg.png new file mode 100644 index 0000000..1290dad Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/cfg.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/cfg2.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/cfg2.png new file mode 100644 index 0000000..617fe4f Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/cfg2.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/choose-database.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/choose-database.png new file mode 100644 index 0000000..71ca5d6 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/choose-database.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/choose-language-filter.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/choose-language-filter.png new file mode 100644 index 0000000..8f26d5f Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/choose-language-filter.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/codeql-extension-icon.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/codeql-extension-icon.png new file mode 100644 index 0000000..c8ffd6e Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/codeql-extension-icon.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/controller-repository.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/controller-repository.png new file mode 100644 index 0000000..3b4ae62 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/controller-repository.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/create-query-icon.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/create-query-icon.png new file mode 100644 index 0000000..eadb948 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/create-query-icon.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/dfg.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/dfg.png new file mode 100644 index 0000000..6727af7 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/dfg.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/explore-ast.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/explore-ast.png new file mode 100644 index 0000000..1cdbd1d Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/explore-ast.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/model-application-mode-expanded.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/model-application-mode-expanded.png new file mode 100644 index 0000000..b319918 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/model-application-mode-expanded.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/model-application-mode.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/model-application-mode.png new file mode 100644 index 0000000..b2ecaaf Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/model-application-mode.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/model-dependency-mode-expanded.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/model-dependency-mode-expanded.png new file mode 100644 index 0000000..2528ee9 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/model-dependency-mode-expanded.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/model-dependency-mode.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/model-dependency-mode.png new file mode 100644 index 0000000..033a133 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/model-dependency-mode.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/monotonic-aggregates-graph.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/monotonic-aggregates-graph.png new file mode 100644 index 0000000..d8182f4 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/monotonic-aggregates-graph.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/open-extension-settings.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/open-extension-settings.png new file mode 100644 index 0000000..631388f Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/open-extension-settings.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/open-source-file.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/open-source-file.png new file mode 100644 index 0000000..316798f Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/open-source-file.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/open-test-explorer.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/open-test-explorer.png new file mode 100644 index 0000000..b5a2a16 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/open-test-explorer.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/python-flow-graph.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/python-flow-graph.png new file mode 100644 index 0000000..4bec7b7 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/python-flow-graph.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/ql-select-statement-basic.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/ql-select-statement-basic.png new file mode 100644 index 0000000..228542d Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/ql-select-statement-basic.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/ql-select-statement-class-name.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/ql-select-statement-class-name.png new file mode 100644 index 0000000..705db26 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/ql-select-statement-class-name.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/ql-select-statement-filename.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/ql-select-statement-filename.png new file mode 100644 index 0000000..4e94bc0 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/ql-select-statement-filename.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/ql-select-statement-link.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/ql-select-statement-link.png new file mode 100644 index 0000000..f87f6cb Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/ql-select-statement-link.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/ql-select-statement-similarity.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/ql-select-statement-similarity.png new file mode 100644 index 0000000..181fe75 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/ql-select-statement-similarity.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/query-history.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/query-history.png new file mode 100644 index 0000000..c648fa7 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/query-history.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/query-metadata.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/query-metadata.png new file mode 100644 index 0000000..62fcc50 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/query-metadata.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/query-progress.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/query-progress.png new file mode 100644 index 0000000..4d4721f Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/query-progress.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/quick-query-tab-cpp.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/quick-query-tab-cpp.png new file mode 100644 index 0000000..679fa4c Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/quick-query-tab-cpp.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/quick-query-tab-csharp.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/quick-query-tab-csharp.png new file mode 100644 index 0000000..07a5ec5 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/quick-query-tab-csharp.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/quick-query-tab-go.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/quick-query-tab-go.png new file mode 100644 index 0000000..8ea9009 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/quick-query-tab-go.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/quick-query-tab-java.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/quick-query-tab-java.png new file mode 100644 index 0000000..68ea2ba Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/quick-query-tab-java.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/quick-query-tab-js.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/quick-query-tab-js.png new file mode 100644 index 0000000..4e066bf Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/quick-query-tab-js.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/quick-query-tab-python.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/quick-query-tab-python.png new file mode 100644 index 0000000..195d401 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/quick-query-tab-python.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/quick-query-tab-ruby.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/quick-query-tab-ruby.png new file mode 100644 index 0000000..25819ae Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/quick-query-tab-ruby.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/quick-query-tab-swift.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/quick-query-tab-swift.png new file mode 100644 index 0000000..e7caf3d Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/quick-query-tab-swift.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/run-local-queries-icon.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/run-local-queries-icon.png new file mode 100644 index 0000000..e797c35 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/run-local-queries-icon.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/run-local-query-icon.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/run-local-query-icon.png new file mode 100644 index 0000000..dc89f88 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/run-local-query-icon.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/run-multiple-queries.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/run-multiple-queries.png new file mode 100644 index 0000000..0e764b7 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/run-multiple-queries.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/select-logs.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/select-logs.png new file mode 100644 index 0000000..5d078ba Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/select-logs.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/show-test-diff.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/show-test-diff.png new file mode 100644 index 0000000..7b1e45d Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/show-test-diff.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/ssa.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/ssa.png new file mode 100644 index 0000000..cd5ba3f Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/ssa.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/variant-analysis-add-list.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/variant-analysis-add-list.png new file mode 100644 index 0000000..53eaac3 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/variant-analysis-add-list.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/variant-analysis-code-search-language.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/variant-analysis-code-search-language.png new file mode 100644 index 0000000..5f2edde Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/variant-analysis-code-search-language.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/variant-analysis-repo-and-org.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/variant-analysis-repo-and-org.png new file mode 100644 index 0000000..a4dc74e Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/variant-analysis-repo-and-org.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/variant-analysis-repo-lists.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/variant-analysis-repo-lists.png new file mode 100644 index 0000000..b9472c6 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/variant-analysis-repo-lists.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/variant-analysis-result.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/variant-analysis-result.png new file mode 100644 index 0000000..45410ab Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/variant-analysis-result.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/variant-analysis-results-view.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/variant-analysis-results-view.png new file mode 100644 index 0000000..6d73fb3 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/variant-analysis-results-view.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_images/variant-analysis-results-warning.png b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/variant-analysis-results-warning.png new file mode 100644 index 0000000..fe05097 Binary files /dev/null and b/ql/docs/language/learn-ql/build.html-5f4acb8/_images/variant-analysis-results-warning.png differ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/about-codeql-packs.rst.txt b/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/about-codeql-packs.rst.txt new file mode 100644 index 0000000..2f9c6ee --- /dev/null +++ b/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/about-codeql-packs.rst.txt @@ -0,0 +1,104 @@ +.. _about-codeql-packs: + +About CodeQL packs +================== + +.. include:: ../reusables/beta-note-package-management.rst + +CodeQL packs are used to create, share, depend on, and run CodeQL queries and libraries. You can publish your own CodeQL packs and download packs created by others. CodeQL packs contain queries, library files, query suites, and metadata. + +There are two types of CodeQL packs: query packs and library packs. + +* Query packs are designed to be run. When a query pack is published, the bundle includes all the transitive dependencies and a compilation cache. This ensures consistent and efficient execution of the queries in the pack. +* Library packs are designed to be used by query packs (or other library packs) and do not contain queries themselves. The libraries are not compiled and there is no compilation cache included when the pack is published. + +You can use the package management commands in the CodeQL CLI to create CodeQL packs, add dependencies to packs, and install or update dependencies. For more information, see ":ref:`Creating and working with CodeQL packs `." You can also publish and download CodeQL packs using the CodeQL CLI. For more information, see ":doc:`Publishing and using CodeQL packs `." + +CodeQL pack structure +--------------------- + +A CodeQL pack must contain a file called ``qlpack.yml`` in its root directory. In the ``qlpack.yml`` file, the ``name:`` field must have a value that follows the format of ``/``, where ```` is the GitHub organization or user account that the pack will be published to and ```` is the name of the pack. The other +files and directories within the pack should be logically organized. For example, typically: + +- Queries are organized into directories for specific categories. +- Queries for specific products, libraries, and frameworks are organized into + their own top-level directories. + +About ``qlpack.yml`` files +-------------------------- + +When executing query-related commands, CodeQL first looks in siblings of the installation directory (and their subdirectories) for ``qlpack.yml`` files. +Then it checks the package cache for CodeQL packs which have been downloaded. This means that when you are developing queries locally, the local packages +in the installation directory override packages of the same name in the package cache, so that you can test your local changes. + +The metadata in each `qlpack.yml`` file tells +CodeQL how to compile any queries in the pack, what libraries the pack depends on, and where to +find query suite definitions. + +The contents of the CodeQL pack (queries or libraries used in CodeQL analysis) is +included in the same directory as ``qlpack.yml``, or its subdirectories. + +The location of ``qlpack.yml`` defines the library path for the content +of the CodeQL pack. That is, for all ``.ql`` and ``.qll`` files in the pack, +CodeQL will resolve all import statements relative to the ``qlpack.yml`` at the +pack's root. + +.. _codeqlpack-yml-properties: + +``qlpack.yml`` properties +~~~~~~~~~~~~~~~~~~~~~~~~~ + +The following properties are supported in ``qlpack.yml`` files. + +.. list-table:: + :header-rows: 1 + :widths: auto + + * - Property + - Example + - Required + - Purpose + * - ``name`` + - ``octo-org/security-queries`` + - All packs + - The scope, where the CodeQL pack is published, and the name of the pack defined using alphanumeric characters and hyphens. It must be unique as CodeQL cannot differentiate between CodeQL packs with identical names. Name components cannot start or end with a hyphen. Additionally, a period is not allowed in pack names at all. Use the pack name to specify queries to run using ``database analyze`` and to define dependencies between QL packs (see examples below). + * - ``version`` + - ``0.0.0`` + - All packs + - A version range for this CodeQL pack. This must be a valid semantic version that meets the `SemVer v2.0.0 specification `__. + * - ``dependencies`` + - ``codeql/javascript-all: ^1.2.3`` + - Optional + - The names and version ranges of any CodeQL packs that this pack depends on, as a mapping. This gives the pack access to any libraries, database schema, and query suites defined in the dependency. For more information, see `SemVer ranges `__ in the NPM documentation. + * - ``suites`` + - ``octo-org-query-suites`` + - Optional + - The path to a directory in the pack that contains the query suites you want to make known to the CLI, defined relative to the pack directory. QL pack users can run "well-known" suites stored in this directory by specifying the pack name, without providing their full path. This is not supported for CodeQL packs downloaded from a package registry. For more information about query suites, see ":doc:`Creating CodeQL query suites `." + * - ``extractor`` + - ``javascript`` + - All test packs + - The CodeQL language extractor to use when the CLI creates a database in the pack. For more information about testing queries, see ":doc:`Testing custom queries `." + * - ``tests`` + - ``.`` + - Optional for test packs + - The path to a directory within the pack that contains tests, defined relative to the pack directory. Use ``.`` to specify the whole pack. Any queries in this directory are run as tests when ``test run`` is run with the ``--strict-test-discovery`` option. These queries are ignored by query suite definitions that use ``queries`` or ``qlpack`` instructions to ask for all queries in a particular pack. + * - ``dbscheme`` + - ``semmlecode.python.dbscheme`` + - Core language packs only + - The path to the :ref:`database schema ` for all libraries and queries written for this CodeQL language (see example below). + * - ``upgrades`` + - ``.`` + - Core language packs only + - The path to a directory within the pack that contains upgrade scripts, defined relative to the pack directory. The ``database upgrade`` action uses these scripts to update databases that were created by an older version of an extractor so they're compatible with the current extractor (see `Upgrade scripts for a language <#upgrade-scripts-for-a-language>`__ below.) + * - ``authors`` + - ``example@github.com`` + - All packs + - Metadata that will be displayed on the packaging search page in the packages section of the account that the CodeQL pack is published to. + * - ``licenses`` + - ``(LGPL-2.1 AND MIT)`` + - All packs + - Metadata that will be displayed on the packaging search page in the packages section of the account that the CodeQL pack is published to. For a list of allowed licenses, see `SPDX License List `__ in the SPDX Specification. + * - ``description`` + - ``Human-readable description of the contents of the CodeQL pack.`` + - All packs + - Metadata that will be displayed on the packaging search page in the packages section of the account that the CodeQL pack is published to. diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/about-codeql-workspaces.rst.txt b/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/about-codeql-workspaces.rst.txt new file mode 100644 index 0000000..3faa45d --- /dev/null +++ b/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/about-codeql-workspaces.rst.txt @@ -0,0 +1,16 @@ +.. _about-codeql-workspaces: + +About CodeQL workspaces +======================= + +.. pull-quote:: + This article was moved to "`About CodeQL workspaces `__" on the `GitHub Docs `__ site as of January 2023. + + .. include:: ../reusables/codeql-cli-articles-migration-note.rst + +.. include:: ../reusables/codeql-cli-migration-toc-note.rst + +* `The codeql-workspace.yml file `__ +* `Source dependencies `__ +* `CodeQL workspaces and query resolution `__ + * `Example `__ \ No newline at end of file diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/about-ql-packs.rst.txt b/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/about-ql-packs.rst.txt new file mode 100644 index 0000000..1132638 --- /dev/null +++ b/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/about-ql-packs.rst.txt @@ -0,0 +1,248 @@ +.. _about-ql-packs: + +About QL packs +============== + +QL packs are used to organize the files used in CodeQL analysis. They +contain queries, library files, query suites, and important metadata. + +The `CodeQL repository `__ contains QL packs for +C/C++, C#, Java, JavaScript, Python, and Ruby. The `CodeQL for Go +`__ repository contains a QL pack for Go +analysis. You can also make custom QL packs to contain your own queries and +libraries. + +QL pack structure +----------------- + +A QL pack must contain a file called ``qlpack.yml`` in its root directory. The other +files and directories within the pack should be logically organized. For example, typically: + +- Queries are organized into directories for specific categories. +- Queries for specific products, libraries, and frameworks are organized into + their own top-level directories. +- There is a top-level directory named ``/`` for query library + (``.qll``) files. Within this directory, ``.qll`` files should be organized into + subdirectories for specific categories. + +About ``qlpack.yml`` files +-------------------------- + +When executing commands, CodeQL scans siblings of the installation directory (and +their subdirectories) for ``qlpack.yml`` files. The metadata in the file tells +CodeQL how to compile queries, what libraries the pack depends on, and where to +find query suite definitions. + +The content of the QL pack (queries and libraries used in CodeQL analysis) is +included in the same directory as ``qlpack.yml``, or its subdirectories. + +The location of ``qlpack.yml`` defines the library path for the content +of the QL pack. That is, for all ``.ql`` and ``.qll`` files in the QL pack, +CodeQL will resolve all import statements relative to the ``qlpack.yml`` at the +pack's root. + +For example, in a QL pack with the following contents, you can import ``CustomSinks.qll`` +from any location in the pack by declaring ``import mycompany.java.CustomSinks``. + +.. code-block:: none + + qlpack.yml + mycompany/ + java/ + security/ + CustomSinks.qll + Security/ + CustomQuery.ql + +For more information, see ":ref:`Importing modules `" +in the QL language reference. + +.. _qlpack-yml-properties: + +``qlpack.yml`` properties +~~~~~~~~~~~~~~~~~~~~~~~~~ + +The following properties are supported in ``qlpack.yml`` files. + +.. list-table:: + :header-rows: 1 + :widths: auto + + * - Property + - Example + - Required + - Purpose + * - ``name`` + - ``org-queries`` + - All packs + - The name of the QL pack defined using alphanumeric characters, hyphens, and periods. It must be unique as CodeQL cannot differentiate between QL packs with identical names. If you intend to distribute the pack, prefix the name with your (or your organization's) name followed by a hyphen. Use the pack name to specify queries to run using ``database analyze`` and to define dependencies between QL packs (see examples below). + * - ``version`` + - ``0.0.0`` + - All packs + - A version number for this QL pack. This must be a valid semantic version that meets the `SemVer v2.0.0 specification `__. + * - ``libraryPathDependencies`` + - ``codeql/javascript-all`` + - Optional + - The names of any QL packs that this QL pack depends on, as a sequence. This gives the pack access to any libraries, database schema, and query suites defined in the dependency. + * - ``suites`` + - ``suites`` + - Optional + - The path to a directory in the pack that contains the query suites you want to make known to the CLI, defined relative to the pack directory. QL pack users can run "well-known" suites stored in this directory by specifying the pack name, without providing their full path. For more information about query suites, see ":doc:`Creating CodeQL query suites `." + * - ``extractor`` + - ``javascript`` + - All test packs + - The CodeQL language extractor to use when the CLI creates a database from test files in the pack. For more information about testing queries, see ":doc:`Testing custom queries `." + * - ``tests`` + - ``.`` + - Optional for test packs + - Supported from release 2.1.0 onwards. The path to a directory within the pack that contains tests, defined relative to the pack directory. Use ``.`` to specify the whole pack. Any queries in this directory are run as tests when ``test run`` is run with the ``--strict-test-discovery`` option. These queries are ignored by query suite definitions that use ``queries`` or ``qlpack`` instructions to ask for all queries in a particular pack. + * - ``dbscheme`` + - ``semmlecode.python.dbscheme`` + - Core language pack only + - The path to the :ref:`database schema ` for all libraries and queries written for this CodeQL language (see example below). + * - ``upgrades`` + - ``.`` + - Packs with upgrades + - The path to a directory within the pack that contains upgrade scripts, defined relative to the pack directory. The ``database upgrade`` action uses these scripts to update databases that were created by an older version of an extractor so they're compatible with the current extractor (see `Upgrade scripts for a language <#upgrade-scripts-for-a-language>`__ below.) + * - ``dependencies`` + - .. code-block:: yaml + + dependencies: + codeql/cpp-all: ^0.0.2 + + - Packs that define CodeQL package dependencies on other packs + - A map from pack references to the semantic version range that is compatible with this pack. Supported from CLI version v2.6.0 and onwards. + * - ``defaultSuiteFile`` + - ``defaultSuiteFile: cpp-code-scanning.qls`` + - Packs that export a set of default queries to run + - The path to a query suite file containing all of the queries that are run by default when this pack is passed to the ``codeql database analyze`` command. Supported from CLI version v2.6.0 and onwards. + +.. _custom-ql-packs: + +Examples of custom QL packs +--------------------------- + +When you write custom queries or tests, you should save them in +custom QL packs. For simplicity, try to organize each pack logically. For more +information, see `QL pack structure <#ql-pack-structure>`__. Save files for queries +and tests in separate packs and, where possible, organize custom packs into specific +folders for each target language. + +QL packs for custom queries +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +A custom QL pack for queries must include a ``qlpack.yml`` file at +the pack root, containing ``name``, ``version``, +and ``libraryPathDependencies`` properties. If the pack contains query suites, you can +use the ``suites`` property to define their location. Query suites defined +here are called "well-known" suites, and can be used on the command line by referring to +their name only, rather than their full path. +For more information about query suites, see ":doc:`Creating CodeQL query suites `." + +For example, a ``qlpack.yml`` file for a QL pack featuring custom C++ queries +and libraries may contain: + +.. code-block:: yaml + + name: my-custom-queries + version: 0.0.0 + libraryPathDependencies: codeql/cpp-all + suites: my-custom-suites + +where ``codeql/cpp-all`` is the name of the QL pack for C/C++ analysis included in +the CodeQL repository. + +.. pull-quote:: + + Note + + When you create a custom QL pack, it's usually a good idea to add it to the search path in your CodeQL configuration. + This will ensure that any libraries the pack contains are available to the CodeQL CLI. + For more information, see ":ref:`Specifying command options in a CodeQL configuration file `." + +QL packs for custom test files +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +For custom QL packs containing test files, you also need to include an +``extractor`` property so that the ``test run`` command knows how to create test +databases. You may also wish to specify the ``tests`` property. + +.. include:: ../reusables/test-qlpack.rst + +For more information about running tests, see ":doc:`Testing custom queries +`." + +.. _standard-ql-packs: + +Examples of QL packs in the CodeQL repository +--------------------------------------------- + +Each of the languages in the CodeQL repository has four main QL packs: + +- Core library pack for the language, with the :ref:`database schema ` + used by the language, and CodeQL libraries, and queries at ``ql//ql/lib`` +- Core query pack for the language that includes the default queries for the language, along + with their query suites at ``ql//ql/src`` +- Tests for the core language libraries and queries at ``ql//ql/test`` +- Upgrade scripts for the language at ``ql//upgrades`` + +Core library pack +~~~~~~~~~~~~~~~~~ + +The ``qlpack.yml`` file for a core library pack uses the following properties: +``name``, ``version``, ``dbscheme``. +The ``dbscheme`` property should only be defined in the core QL +pack for a language. + +For example, the ``qlpack.yml`` file for `C/C++ analysis libraries +`__ +contains: + +.. code-block:: yaml + + name: codeql/cpp-all + version: 0.0.0 + dbscheme: semmlecode.cpp.dbscheme + upgrades: upgrades + +Core query pack +~~~~~~~~~~~~~~~ + +The ``qlpack.yml`` file for a core query pack uses the following properties: +``name``, ``version``, ``suites``, ``defaultSuiteFile``, ``dependencies`` . + +For example, the ``qlpack.yml`` file for `C/C++ analysis queries +`__ +contains: + +.. code-block:: yaml + + name: codeql/cpp-queries + version: 0.0.0 + suites: codeql-suites + defaultSuiteFile: codeql-suites/cpp-code-scanning.qls + dependencies: + codeql/cpp-all: "*" + codeql/suite-helpers: "*" + +Tests for the core QL pack +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The ``qlpack.yml`` file for the tests for the core QL packs use the following +properties: ``name``, ``version``, and ``dependencies``. +The ``dependencies`` always specifies the core QL pack. + +For example, the ``qlpack.yml`` file for `C/C++ analysis tests +`__ +contains: + +.. code-block:: yaml + + name: codeql/cpp-tests + version: 0.0.0 + dependencies: + codeql/cpp-all: "*" + codeql/cpp-queries: "*" + + +.. _upgrade-ql-packs: diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/about-the-codeql-cli.rst.txt b/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/about-the-codeql-cli.rst.txt new file mode 100644 index 0000000..4e278c4 --- /dev/null +++ b/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/about-the-codeql-cli.rst.txt @@ -0,0 +1,29 @@ +.. _about-the-codeql-cli: + +About the CodeQL CLI +==================== + +Software developers and security researchers can secure their code +using the CodeQL CLI. + +The CodeQL CLI is a command-line tool used to run CodeQL processes locally on +open source software projects. You can use the CodeQL CLI to: + +- Run CodeQL analyses using queries provided by GitHub engineers and the open + source community +- Create CodeQL databases to use in the CodeQL for Visual Studio Code +- Develop and test custom CodeQL queries to use in your own analyses + +For information about using the CodeQL CLI, see +":ref:`Getting started with the CodeQL CLI `." + +CodeQL CLI commands +------------------- + +The CodeQL CLI includes commands to create and analyze CodeQL databases from the +command line. To run a command, use:: + + codeql [command] [subcommand] + +To view the reference documentation for a command, add the ``--help`` flag, or visit the +"`CodeQL CLI manual <../manual>`__." diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/analyzing-databases-with-the-codeql-cli.rst.txt b/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/analyzing-databases-with-the-codeql-cli.rst.txt new file mode 100644 index 0000000..46b3dde --- /dev/null +++ b/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/analyzing-databases-with-the-codeql-cli.rst.txt @@ -0,0 +1,301 @@ +.. _analyzing-databases-with-the-codeql-cli: + +Analyzing databases with the CodeQL CLI +======================================= + +To analyze a codebase, you run queries against a CodeQL +database extracted from the code. + +CodeQL analyses produce :ref:`interpreted results +` that can be displayed as alerts or paths in source code. +For information about writing queries to run with ``database analyze``, see +":doc:`Using custom queries with the CodeQL CLI `." + +.. include:: ../reusables/advanced-query-execution.rst + +Before starting an analysis you must: + +- :doc:`Set up the CodeQL CLI ` so that it can find the queries + and libraries included in the CodeQL repository. +- :doc:`Create a CodeQL database ` for the source + code you want to analyze. + + +Running ``codeql database analyze`` +------------------------------------ + +When you run ``database analyze``, it: + +#. Optionally downloads any referenced CodeQL packages that are not available locally. +#. Executes one or more query files, by running them over a CodeQL database. +#. Interprets the results, based on certain query metadata, so that alerts can be + displayed in the correct location in the source code. +#. Reports the results of any diagnostic and summary queries to standard output. + +You can analyze a database by running the following command:: + + codeql database analyze --format= --output= + +You must specify: + +- ````: the path to the CodeQL database you want to analyze. + +- ``--format``: the format of the results file generated during analysis. A + number of different formats are supported, including CSV, :ref:`SARIF + `, and graph formats. For more information about CSV and SARIF, + see `Results <#results>`__. To find out which other results formats are + supported, see the `database analyze reference + <../manual/database-analyze>`__. + +- ``--output``: the output path of the results file generated during analysis. + +You can also specify: + +- ``...``: a list of queries to run over your database. This + is a list of arguments. Where each argument can be: + + - a path to a query file + - a path to a directory containing query files + - a path to a query suite file + - the name of a CodeQL query pack + If omitted, the default query suite for the language + of the database being analyzed will be used. For more information, see the + :ref:`examples ` below. + +- ``--sarif-category``: an identifying category for the results. Used when + you want to upload more than one set of results for a commit. + For example, when you use ``github upload-results`` to send results for more than one + language to the GitHub code scanning API. For more information about this use case, + see `Configuring CodeQL CLI in your CI system `__ in the GitHub documentation. + +- ``--sarif-add-query-help``: (supported in version 2.7.1 onwards) adds any custom query help written + in markdown to SARIF files (v2.1.0 or later) generated by the analysis. Query help stored in ``.qhelp`` files must be + converted to ``.md`` before running the analysis. For further information, + see ":ref:`Including query help for custom CodeQL queries in SARIF files `." + +- ``--download``: a boolean flag that will allow the CLI to download any referenced CodeQL packages that are not available locally. + If this flag is missing and a referenced CodeQL package is not available locally, the command will fail. + +- .. include:: ../reusables/threads-query-execution.rst + + +.. pull-quote:: + + Upgrading databases + + If the CodeQL queries you want to use are newer than the + extractor used to create the database, then you may see a message telling you + that your database needs to be upgraded when you run ``database analyze``. + You can quickly upgrade a database by running the ``database upgrade`` + command. For more information, see ":doc:`Upgrading CodeQL databases + `." + +For full details of all the options you can use when analyzing databases, see +the `database analyze reference documentation <../manual/database-analyze>`__. + +.. _database-analyze-examples: + +Examples +-------- + +The following examples assume your CodeQL databases have been created in a +directory that is a sibling of your local copies of the CodeQL and CodeQL for Go +repositories. + +Running a single query +~~~~~~~~~~~~~~~~~~~~~~ + +To run a single query over a CodeQL database for a JavaScript codebase, +you could use the following command from the directory containing your database:: + + codeql database analyze ../ql/javascript/ql/src/Declarations/UnusedVariable.ql --format=csv --output=js-analysis/js-results.csv + +This command runs a simple query that finds potential bugs related to unused +variables, imports, functions, or classes---it is one of the JavaScript +queries included in the CodeQL repository. You could run more than one query by +specifying a space-separated list of similar paths. + +The analysis generates a CSV file (``js-results.csv``) in a new directory +(``js-analysis``). + +You can also run your own custom queries with the ``database analyze`` command. +For more information about preparing your queries to use with the CodeQL CLI, +see ":doc:`Using custom queries with the CodeQL CLI `." + +Running a CodeQL pack +~~~~~~~~~~~~~~~~~~~~~ + +.. include:: ../reusables/beta-note-package-management.rst + +To run an existing CodeQL query pack from the GitHub Container registry, you can specify one or more +pack names and use the ``--download`` flag:: + + codeql database analyze microsoft/coding-standards@1.0.0 github/security-queries --format=sarifv2.1.0 --output=query-results.sarif --download + +The ``analyze`` command above runs the default suite from ``microsoft/coding-standards v1.0.0`` and the latest version of ``github/secutiry-queries`` on the specified database. +For further information about default suites, see ":ref:`Publishing and using CodeQL packs `". + +For more information about CodeQL packs, see :doc:`About CodeQL Packs `. + +Running query suites +~~~~~~~~~~~~~~~~~~~~ + +To run a query suite over a CodeQL database for a C/C++ codebase, +you could use the following command from the directory containing your database:: + + codeql database analyze cpp-code-scanning.qls --format=sarifv2.1.0 --output=cpp-results.sarif + +The analysis generates a file in the v2.1.0 SARIF format that is supported by all versions of GitHub. +This file can be uploaded to GitHub by executing ``codeql github upload-results`` or the code scanning API. +For more information, see `Analyzing a CodeQL database `__ +or `Code scanning API `__ in the GitHub documentation. + +CodeQL query suites are ``.qls`` files that use directives to select queries to run +based on certain metadata properties. The standard QL packs have metadata that specify +the location of the query suites used by code scanning, so the CodeQL CLI knows where to find these +suite files automatically, and you don't have to specify the full path on the command line. +For more information, see ":ref:`About QL packs `." + +The standard query suites are stored at the following paths in +the CodeQL repository:: + + ql//ql/src/codeql-suites/-code-scanning.qls + +and at the following path in the CodeQL for Go repository:: + + ql/src/codeql-suites/go-code-scanning.qls + +The repository also includes the query suites used by `LGTM.com `__. +These are stored alongside the query suites for code scanning with names of the form: ``-lgtm.qls``. + +For information about creating custom query suites, see ":doc:`Creating +CodeQL query suites `." + +Diagnostic and summary information +.................................. + +When you create a CodeQL database, the extractor stores diagnostic data in the database. The code scanning query suites include additional queries to report on this diagnostic data and calculate summary metrics. When the ``database analyze`` command completes, the CLI generates the results file and reports any diagnostic and summary data to standard output. If you choose to generate SARIF output, the additional data is also included in the SARIF file. + +If the analysis found fewer results for standard queries than you expected, review the results of the diagnostic and summary queries to check whether the CodeQL database is likely to be a good representation of the codebase that you want to analyze. + +Integrating a CodeQL pack into a code scanning workflow in GitHub +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. include:: ../reusables/beta-note-package-management.rst + +You can use CodeQL query packs in your code scanning setup. This allows you to select query packs published by various sources and use them to analyze your code. +For more information, see "`Using CodeQL query packs in the CodeQL action `_" or "`Downloading and using CodeQL query packs in your CI system `_." + + +Running all queries in a directory +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +You can run all the queries located in a directory by providing the directory +path, rather than listing all the individual query files. Paths are searched +recursively, so any queries contained in subfolders will also be executed. + +.. pull-quote:: + + Important + + You shouldn't specify the root of a :doc:`QL pack + ` when executing ``database analyze`` + as it contains some special queries that aren't designed to be used with + the command. Rather, to run a wide range of useful queries, run one of the + LGTM.com query suites. + +For example, to execute all Python queries contained in the ``Functions`` +directory you would run:: + + codeql database analyze ../ql/python/ql/src/Functions/ --format=sarif-latest --output=python-analysis/python-results.sarif + +A SARIF results file is generated. Specifying ``--format=sarif-latest`` ensures +that the results are formatted according to the most recent SARIF specification +supported by CodeQL. + +.. _including-query-help-for-custom-codeql-queries-in-sarif-files: + +Including query help for custom CodeQL queries in SARIF files +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +If you use the CodeQL CLI to to run code scanning analyses on third party CI/CD systems, +you can include the query help for your custom queries in SARIF files generated during an analysis. +After uploading the SARIF file to GitHub, the query help is shown in the code scanning UI for any +alerts generated by the custom queries. + +From CodeQL CLI 2.7.1 onwards, you can include markdown-rendered query help in SARIF files +by providing the ``--sarif-add-query-help`` option when running +``codeql database analyze``. +For more information, see `Configuring CodeQL CLI in your CI system `__ +in the GitHub documentation. + +You can write query help for custom queries directly in a markdown file and save it alongside the +corresponding query. Alternatively, for consistency with the standard CodeQL queries, +you can write query help in the ``.qhelp`` format. Query help written in ``.qhelp`` +files can't be included in SARIF files, and they can't be processed by code +scanning so must be converted to markdown before running +the analysis. For more information, see ":ref:`Query help files `" +and ":doc:`Testing query help files `." + +Results +------- + +You can save analysis results in a number of different formats, including SARIF +and CSV. + +The SARIF format is designed to represent the output of a broad range of static +analysis tools. For more information, see :doc:`SARIF output `. + +If you choose to generate results in CSV format, then each line in the output file +corresponds to an alert. Each line is a comma-separated list with the following information: + +.. list-table:: + :header-rows: 1 + :widths: 20 40 40 + + * - Property + - Description + - Example + * - Name + - Name of the query that identified the result. + - ``Inefficient regular expression`` + * - Description + - Description of the query. + - ``A regular expression that requires exponential time to match certain + inputs can be a performance bottleneck, and may be vulnerable to + denial-of-service attacks.`` + * - Severity + - Severity of the query. + - ``error`` + * - Message + - Alert message. + - ``This part of the regular expression may cause exponential backtracking + on strings containing many repetitions of '\\\\'.`` + * - Path + - Path of the file containing the alert. + - ``/vendor/codemirror/markdown.js`` + * - Start line + - Line of the file where the code that triggered the alert begins. + - ``617`` + * - Start column + - Column of the start line that marks the start of the alert code. Not + included when equal to 1. + - ``32`` + * - End line + - Line of the file where the code that triggered the alert ends. Not + included when the same value as the start line. + - ``64`` + * - End column + - Where available, the column of the end line that marks the end of the + alert code. Otherwise the end line is repeated. + - ``617`` + +Results files can be integrated into your own code-review or debugging +infrastructure. For example, SARIF file output can be used to highlight alerts +in the correct location in your source code using a SARIF viewer plugin for your +IDE. + +Further reading +--------------- + +- ":ref:`Analyzing your projects in CodeQL for VS Code `" diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/codeql-cli-reference.rst.txt b/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/codeql-cli-reference.rst.txt new file mode 100644 index 0000000..e0ffdea --- /dev/null +++ b/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/codeql-cli-reference.rst.txt @@ -0,0 +1,26 @@ +.. _codeql-cli-reference: + +CodeQL CLI reference +==================== + +Learn more about the files you can use when running CodeQL processes and the results format and exit codes that CodeQL generates. + +.. toctree:: + :titlesonly: + :hidden: + + about-codeql-packs + about-ql-packs + query-reference-files + sarif-output + exit-codes + extractor-options + +- :doc:`About CodeQL packs `: CodeQL packs are created with the CodeQL CLI and are used to create, depend on, publish, and run CodeQL queries and libraries. +- :doc:`About QL packs `: QL packs are used to organize the files used in CodeQL analysis. They + contain queries, library files, query suites, and important metadata. +- :doc:`Query reference files `: A query reference file is text file that defines the location of one query to test. +- :doc:`SARIF output `: CodeQL supports SARIF as an output format for sharing static analysis results. +- :doc:`Exit codes `: The CodeQL CLI reports the status of each command it runs as an exit code. + This exit code provides information for subsequent commands or for other tools that rely on the CodeQL CLI. +- :doc:`Extractor options `: You can customize the behavior of extractors by setting options through the CodeQL CLI. diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/creating-and-working-with-codeql-packs.rst.txt b/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/creating-and-working-with-codeql-packs.rst.txt new file mode 100644 index 0000000..6373440 --- /dev/null +++ b/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/creating-and-working-with-codeql-packs.rst.txt @@ -0,0 +1,70 @@ +.. _creating-and-working-with-codeql-packs: + +Creating and working with CodeQL packs +====================================== + +You can use CodeQL packs to create, share, depend on, and run CodeQL queries and libraries. + +.. include:: ../reusables/beta-note-package-management.rst + +About CodeQL packs and the CodeQL CLI +------------------------------------- + +With CodeQL packs and the package management commands in the CodeQL CLI, you can publish your custom queries and integrate them into your codebase analysis. + +There are two types of CodeQL packs: query packs and library packs. + +* Query packs are designed to be run. When a query pack is published, the bundle includes all the transitive dependencies and a compilation cache. This ensures consistent and efficient execution of the queries in the pack. +* Library packs are designed to be used by query packs (or other library packs) and do not contain queries themselves. The libraries are not compiled and there is no compilation cache included when the pack is published. + +You can use the ``pack`` command in the CodeQL CLI to create CodeQL packs, add dependencies to packs, and install or update dependencies. You can also publish and download CodeQL packs using the ``pack`` command. For more information, see ":doc:`Publishing and using CodeQL packs `." + +Creating a CodeQL pack +---------------------- +You can create a CodeQL pack by running the following command from the checkout root of your project: + +:: + + codeql pack init / + +You must specify: + +- ````: the name of the GitHub organization or user account that you will publish to. +- ````: the name for the pack that you are creating. + +The ``codeql pack init`` command creates the directory structure and configuration files for a CodeQL pack. By default, the command creates a query pack. If you want to create a library pack, you must edit the ``qlpack.yml`` file to explicitly declare the file as a library pack by including the ``library:true`` property. + +Modifying an existing QL pack to create a CodeQL pack +----------------------------------------------------- +If you already have a ``qlpack.yml`` file, you can edit it manually to convert it into a CodeQL pack. + +#. Edit the ``name`` property so that it matches the format ``/``, where ```` is the name of the GitHub organization or user account that you will publish to. +#. In the ``qlpack.yml`` file, include a ``version`` property with a semver identifier, as well as an optional ``dependencies`` block. + +For more information about the properties, see ":ref:`About CodeQL packs `." + +Adding and installing dependencies to a CodeQL pack +--------------------------------------------------- +You can add dependencies on CodeQL packs using the command ``codeql pack add``. You must specify the scope, name, and version range. + +:: + + codeql pack add /@x.x.x / + +The version range is optional. If you leave off the version range, the latest version will be added. Otherwise, the latest version that satisfies the requested range will be added. + +This command updates the ``qlpack.yml`` file with the requested dependencies and downloads them into the package cache. Please note that this command will reformat the file and remove all comments. + +You can also manually edit the ``qlpack.yml`` file to include dependencies and install the dependencies with the command: + +:: + + codeql pack install + +This command downloads all dependencies to the shared cache on the local disk. + +.. pull-quote:: + + Note + + Running the ``codeql pack add`` and ``codeql pack install`` commands will generate or update the ``qlpack.lock.yml`` file. This file should be checked-in to version control. The ``qlpack.lock.yml`` file contains the precise version numbers used by the pack. diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/creating-codeql-databases.rst.txt b/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/creating-codeql-databases.rst.txt new file mode 100644 index 0000000..50dd8fb --- /dev/null +++ b/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/creating-codeql-databases.rst.txt @@ -0,0 +1,408 @@ +.. _creating-codeql-databases: + +Creating CodeQL databases +========================= + +Before you analyze your code using CodeQL, you need to create a CodeQL +database containing all the data required to run queries on your code. + +CodeQL analysis relies on extracting relational data from your code, and +using it to build a :ref:`CodeQL database `. CodeQL +databases contain all of the important information about a codebase, which can +be analyzed by executing CodeQL queries against it. +Before you generate a CodeQL database, you need to: + +- Install and set up the CodeQL CLI. For more information, see + ":doc:`Getting started with the CodeQL CLI `." +- Check out the version of your codebase you want to analyze. The directory + should be ready to build, with all dependencies already installed. + +For information about using the CodeQL CLI in a third-party CI system to create results +to display in GitHub as code scanning alerts, see `Configuring CodeQL CLI in your CI system `__ +in the GitHub documentation. For information about enabling CodeQL code scanning using GitHub Actions, +see `Setting up code scanning for a repository `__ +in the GitHub documentation. + +Running ``codeql database create`` +---------------------------------- + +CodeQL databases are created by running the following command from the checkout root +of your project: + +:: + + codeql database create --language= + +You must specify: + +- ````: a path to the new database to be created. This directory will + be created when you execute the command---you cannot specify an existing + directory. +- ``--language``: the identifier for the language to create a database for. + When used with ``--db-cluster``, the option accepts a comma-separated list, + or can be specified more than once. + CodeQL supports creating databases for the following languages: + + .. include:: ../reusables/extractors.rst + +You can specify additional options depending on the location of your source file, +if the code needs to be compiled, and if you want to create CodeQL databases for +more than one language: + +- ``--source-root``: the root folder for the primary source files used in + database creation. By default, the command assumes that the current + directory is the source root---use this option to specify a different location. +- ``--db-cluster``: use for multi-language codebases when you want to create + databases for more than one language. +- ``--command``: used when you create a database for one or more compiled languages, + omit if the only languages requested are Python and JavaScript. + This specifies the build commands needed to invoke the compiler. + Commands are run from the current folder, or ``--source-root`` + if specified. If you don't include a ``--command``, CodeQL will attempt to + detect the build system automatically, using a built-in autobuilder. +- ``--no-run-unnecessary-builds``: used with ``--db-cluster`` to suppress the build + command for languages where the CodeQL CLI does not need to monitor the build + (for example, Python and JavaScript/TypeScript). + +You can specify extractor options to customize the behavior of extractors that create CodeQL databases. For more information, see +":doc:`Extractor options `." + +For full details of all the options you can use when creating databases, +see the `database create reference documentation <../manual/database-create>`__. + +Progress and results +-------------------- + +Errors are reported if there are any problems with the options you have +specified. For interpreted languages, the extraction progress is displayed in +the console---for each source file, it reports if extraction was successful or if +it failed. For compiled languages, the console will display the output of the +build system. + +When the database is successfully created, you'll find a new directory at the +path specified in the command. If you used the ``--db-cluster`` option to create +more than one database, a subdirectory is created for each language. +Each CodeQL database directory contains a number of +subdirectories, including the relational data (required for analysis) and a +source archive---a copy of the source files made at the time the database was +created---which is used for displaying analysis results. + +Creating databases for non-compiled languages +--------------------------------------------- + +The CodeQL CLI includes extractors to create databases for non-compiled +languages---specifically, JavaScript (and TypeScript), Python, and Ruby. These +extractors are automatically invoked when you specify JavaScript, Python, or Ruby as +the ``--language`` option when executing ``database create``. When creating +databases for these languages you must ensure that all additional dependencies +are available. + +.. pull-quote:: Important + + When you run ``database create`` for JavaScript, TypeScript, Python, and Ruby, you should not + specify a ``--command`` option. Otherwise this overrides the normal + extractor invocation, which will create an empty database. If you create + databases for multiple languages and one of them is a compiled language, + use the ``--no-run-unnecessary-builds`` option to skip the command for the languages that don't need to be compiled. + +JavaScript and TypeScript +~~~~~~~~~~~~~~~~~~~~~~~~~ + +Creating databases for JavaScript requires no additional dependencies, but if +the project includes TypeScript files, you must install Node.js 6.x +or later. In the command line you can specify ``--language=javascript`` to +extract both JavaScript and TypeScript files:: + + codeql database create --language=javascript --source-root /javascript-database + +Here, we have specified a ``--source-root`` path, which is the location where +database creation is executed, but is not necessarily the checkout root of the +codebase. + +By default, files in ``node_modules`` and ``bower_components`` directories are not extracted. + +Python +~~~~~~ + +When creating databases for Python you must ensure: + +- You have the all of the required versions of Python installed. +- You have access to the `pip `__ + packaging management system and can install any + packages that the codebase depends on. +- You have installed the `virtualenv `__ pip module. + +In the command line you must specify ``--language=python``. For example:: +:: + + codeql database create --language=python /python-database + +This executes the ``database create`` subcommand from the code's checkout root, +generating a new Python database at ``/python-database``. + +Ruby +~~~~ + +Creating databases for Ruby requires no additional dependencies. +In the command line you must specify ``--language=ruby``. For example:: + + codeql database create --language=ruby --source-root /ruby-database + +Here, we have specified a ``--source-root`` path, which is the location where +database creation is executed, but is not necessarily the checkout root of the +codebase. + +Creating databases for compiled languages +----------------------------------------- + +For compiled languages, CodeQL needs to invoke the required build system to +generate a database, therefore the build method must be available to the CLI. + +Detecting the build system +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The CodeQL CLI includes autobuilders for C/C++, C#, Go, and Java code. CodeQL +autobuilders allow you to build projects for compiled languages without +specifying any build commands. When an autobuilder is invoked, CodeQL examines +the source for evidence of a build system and attempts to run the optimal set of +commands required to extract a database. + +An autobuilder is invoked automatically when you execute ``codeql database +create`` for a compiled ``--language`` if don't include a +``--command`` option. For example, for a Java codebase, you would simply run:: + + codeql database create --language=java /java-database + +If a codebase uses a standard build system, relying on an autobuilder is often +the simplest way to create a database. For sources that require non-standard +build steps, you may need to explicitly define each step in the command line. + + +.. pull-quote:: Creating databases for Go + + For Go, install the Go toolchain (version 1.11 or later) and, if there + are dependencies, the appropriate dependency manager (such as `dep + `__). + + The Go autobuilder attempts to automatically detect code written in Go in a repository, + and only runs build scripts in an attempt to fetch dependencies. To force + CodeQL to limit extraction to the files compiled by your build script, set the environment variable + `CODEQL_EXTRACTOR_GO_BUILD_TRACING=on` or use the ``--command`` option to specify a + build command. + +Specifying build commands +~~~~~~~~~~~~~~~~~~~~~~~~~ + +The following examples are designed to give you an idea of some of the build +commands that you can specify for compiled languages. + +.. pull-quote:: Important + + The ``--command`` option accepts a single argument---if you need to + use more than one command, specify ``--command`` multiple times. + + If you need to pass subcommands and options, the whole argument needs to be + quoted to be interpreted correctly. + +- C/C++ project built using ``make``:: + + codeql database create cpp-database --language=cpp --command=make + +- C# project built using ``dotnet build``:: + + For C# projects using either `dotnet build` or `msbuild`, you should specify `/p:UseSharedCompilation=false` + in the build command. It is also a good idea to add `/t:rebuild` to ensure that all code will be built (code + that is not built will not be included in the CodeQL database): + + codeql database create csharp-database --language=csharp --command='dotnet build /p:UseSharedCompilation=false /t:rebuild' + +- Go project built using the ``CODEQL_EXTRACTOR_GO_BUILD_TRACING=on`` environment variable:: + + CODEQL_EXTRACTOR_GO_BUILD_TRACING=on codeql database create go-database --language=go + +- Go project built using a custom build script:: + + codeql database create go-database --language=go --command='./scripts/build.sh' + +- Java project built using Gradle:: + + codeql database create java-database --language=java --command='gradle clean test' + +- Java project built using Maven:: + + codeql database create java-database --language=java --command='mvn clean install' + +- Java project built using Ant:: + + codeql database create java-database --language=java --command='ant -f build.xml' + +- Project built using Bazel:: + + # Navigate to the Bazel workspace. + + # Before building, remove cached objects + # and stop all running Bazel server processes. + bazel clean --expunge + + # Build using the following Bazel flags, to help CodeQL detect the build: + # `--spawn_strategy=local`: build locally, instead of using a distributed build + # `--nouse_action_cache`: turn off build caching, which might prevent recompilation of source code + # `--noremote_accept_cached`, `--noremote_upload_local_results`: avoid using a remote cache + codeql database create new-database --language= \ + --command='bazel build --spawn_strategy=local --nouse_action_cache --noremote_accept_cached --noremote_upload_local_results //path/to/package:target' + + # After building, stop all running Bazel server processes. + # This ensures future build commands start in a clean Bazel server process + # without CodeQL attached. + bazel shutdown + +- Project built using a custom build script:: + + codeql database create new-database --language= --command='./scripts/build.sh' + + This command runs a custom script that contains all of the commands required + to build the project. + +Using indirect build tracing +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +If the CodeQL CLI autobuilders for compiled languages do not work with your CI workflow and you cannot wrap invocations of build commands with ``codeql database trace-command``, you can use indirect build tracing to create a CodeQL database. To use indirect build tracing, your CI system must be able to set custom environment variables for each build action. + +To create a CodeQL database with indirect build tracing, run the following command from the checkout root of your project: + +:: + + codeql database init ... --begin-tracing + +You must specify: + +- ````: a path to the new database to be created. This directory will + be created when you execute the command---you cannot specify an existing + directory. +- ``--begin-tracing``: creates scripts that can be used to set up an environment in which build commands will be traced. + +You may specify other options for the ``codeql database init`` command as normal. + +.. pull-quote:: Note + + If the build runs on Windows, you must set either ``--trace-process-level `` or ``--trace-process-name `` so that the option points to a parent CI process that will observe all build steps for the code being analyzed. + + +The ``codeql database init`` command will output a message:: + + Created skeleton . This in-progress database is ready to be populated by an extractor. + In order to initialise tracing, some environment variables need to be set in the shell your build will run in. + A number of scripts to do this have been created in /temp/tracingEnvironment. + Please run one of these scripts before invoking your build command. + + Based on your operating system, we recommend you run: ... + +The ``codeql database init`` command creates ``/temp/tracingEnvironment`` with files that contain environment variables and values that will enable CodeQL to trace a sequence of build steps. These files are named ``start-tracing.{json,sh,bat,ps1}``. Use one of these files with your CI system's mechanism for setting environment variables for future steps. You can: + +* Read the JSON file, process it, and print out environment variables in the format expected by your CI system. For example, Azure DevOps expects ``echo "##vso[task.setvariable variable=NAME]VALUE"``. +* Or, if your CI system persists the environment, source the appropriate ``start-tracing`` script to set the CodeQL variables in the shell environment of the CI system. + +Build your code; optionally, unset the environment variables using an ``end-tracing.{json,sh,bat,ps1}`` script from the directory where the ``start-tracing`` scripts are stored; and then run the command ``codeql database finalize ``. + +Once you have created a CodeQL database using indirect build tracing, you can work with it like any other CodeQL database. For example, analyze the database, and upload the results to GitHub if you use code scanning. + +Example of creating a CodeQL database using indirect build tracing +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The following example shows how you could use indirect build tracing in an Azure DevOps pipeline to create a CodeQL database:: + + steps: + # Download the CodeQL CLI and query packs... + # Check out the repository ... + + # Run any pre-build tasks, for example, restore NuGet dependencies... + + # Initialize the CodeQL database. + # In this example, the CodeQL CLI has been downloaded and placed on the PATH. + - task: CmdLine@1 + displayName: Initialize CodeQL database + inputs: + # Assumes the source code is checked out to the current working directory. + # Creates a database at `/db`. + # Running on Windows, so specifies a trace process level. + script: "codeql database init --language csharp --trace-process-name Agent.Worker.exe --source-root . --begin-tracing db" + + # Read the generated environment variables and values, + # and set them so they are available for subsequent commands + # in the build pipeline. This is done in PowerShell in this example. + - task: PowerShell@1 + displayName: Set CodeQL environment variables + inputs: + targetType: inline + script: > + $json = Get-Content $(System.DefaultWorkingDirectory)/db/temp/tracingEnvironment/start-tracing.json | ConvertFrom-Json + $json.PSObject.Properties | ForEach-Object { + $template = "##vso[task.setvariable variable=" + $template += $_.Name + $template += "]" + $template += $_.Value + echo "$template" + } + + # Execute the pre-defined build step. Note the `msbuildArgs` variable. + - task: VSBuild@1 + inputs: + solution: '**/*.sln' + # Disable MSBuild shared compilation for C# builds. + msbuildArgs: /p:OutDir=$(Build.ArtifactStagingDirectory) /p:UseSharedCompilation=false + platform: Any CPU + configuration: Release + # Execute a clean build, in order to remove any existing build artifacts prior to the build. + clean: True + displayName: Visual Studio Build + + # Read and set the generated environment variables to end build tracing. This is done in PowerShell in this example. + - task: PowerShell@1 + displayName: Clear CodeQL environment variables + inputs: + targetType: inline + script: > + $json = Get-Content $(System.DefaultWorkingDirectory)/db/temp/tracingEnvironment/end-tracing.json | ConvertFrom-Json + $json.PSObject.Properties | ForEach-Object { + $template = "##vso[task.setvariable variable=" + $template += $_.Name + $template += "]" + $template += $_.Value + echo "$template" + } + + - task: CmdLine@2 + displayName: Finalize CodeQL database + inputs: + script: 'codeql database finalize db' + + # Other tasks go here, for example: + # `codeql database analyze` + # then `codeql github upload-results` ... + +Obtaining databases from LGTM.com +--------------------------------- + +`LGTM.com `__ analyzes thousands of open-source projects using +CodeQL. For each project on LGTM.com, you can download an archived CodeQL +database corresponding to the most recently analyzed revision of the code. These +databases can also be analyzed using the CodeQL CLI or used with the CodeQL +extension for Visual Studio Code. + +.. include:: ../reusables/download-lgtm-database.rst + +Before running an analysis, unzip the databases and try :doc:`upgrading ` the +unzipped databases to ensure they are compatible with your local copy of the +CodeQL queries and libraries. + +.. pull-quote:: + + Note + + .. include:: ../reusables/index-files-note.rst + + +Further reading +--------------- + +- ":ref:`Analyzing your projects in CodeQL for VS Code `" diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/creating-codeql-query-suites.rst.txt b/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/creating-codeql-query-suites.rst.txt new file mode 100644 index 0000000..ceaa104 --- /dev/null +++ b/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/creating-codeql-query-suites.rst.txt @@ -0,0 +1,299 @@ +.. _creating-codeql-query-suites: + +Creating CodeQL query suites +============================ + +CodeQL query suites provide a way of selecting queries, based on their +filename, location on disk or in a QL pack, or metadata properties. +Create query suites for the queries that you want to frequently use in +your CodeQL analyses. + +Query suites allow you to pass multiple queries to +CodeQL without having to specify the path to each query file individually. +Query suite definitions are stored in YAML files with the extension ``.qls``. A +suite definition is a sequence of instructions, where each instruction is a YAML +mapping with (usually) a single key. The instructions are executed in the order +they appear in the query suite definition. After all the instructions in the +suite definition have been executed, the result is a set of selected queries. + +.. pull-quote:: Note + + Any custom queries that you want to add to a query suite must be in a :doc:`QL + pack ` and contain the correct query metadata. + For more information, see + ":doc:`Using custom queries with the CodeQL CLI `." + +Locating queries to add to a query suite +---------------------------------------- + +When creating a query suite, you first need to specify the locations of the +queries that you want to select. You can define the location of one or more +queries using: + +- A ``query`` instruction---tells CodeQL to look for one or more specified ``.ql`` + files:: + + - query: + + The argument must be one or more file paths, relative to the QL pack containing + the suite definition. + +- A ``queries`` instruction---tells CodeQL to recursively scan a directory + for ``.ql`` files:: + + - queries: + + The path of the directory must be relative to the root of the QL pack that + contains the suite definition file. To find the queries relative to a + different QL pack, add a ``from`` field:: + + - queries: + from: + +- A ``qlpack`` instruction---tells CodeQL to resolve queries in the default suite of the + named QL pack:: + + - qlpack: + + The default suite of a query pack includes a recommended set of queries + inside of that query pack. Not all query packs have a default suite. If the given query pack does not + define a default suite, the `qlpack` instruction will resolve to all of the queries within the pack. + +.. pull-quote:: Note + + When pathnames appear in query suite definitions, they must always + be given with a forward slash, ``/``, as a directory separator. + This ensures that query suite definitions work on all operating systems. + +You must add at least one ``query``, ``queries``, or ``qlpack`` instruction to +your suite definition, otherwise no queries will be selected. If the suite +contains no further instructions, all the queries found from the list of files, +in the given directory, or in the named QL pack are selected. If there are further +filtering instructions, only queries that match the constraints imposed by those +instructions will be selected. + +Filtering the queries in a query suite +---------------------------------------- + +After you have defined the initial set of queries to add to your suite by +specifying ``query``, ``queries``, or ``qlpack`` instructions, you can add +``include`` and ``exclude`` instructions. These instructions define selection +criteria based on specific properties: + +- When you execute an ``include`` instruction on a set of queries, any + queries that match your conditions are retained in the selection, and queries + that don't match are removed. +- When you execute an ``exclude`` instructions on a set of queries, + any queries that match your conditions are removed from the selection, and queries + that don't match are retained. + +The order of your filter instructions is important. The first filter instruction +that appears after the locating instructions determines whether the queries are +included or excluded by default. If the first filter is an ``include``, the +initially located queries will only be part of the suite if they match an +explicit ``include`` filter. If the first filter is an ``exclude``, the initially +located queries are part of the suite unless they are explicitly excluded. + +Subsequent instructions are executed in order and the instructions that appear +later in the file take precedence over the earlier instructions. So, ``include`` +instructions can be overridden by a later ``exclude`` instructions that match +the same query. Similarly, ``exclude``\ s can be overridden by a later +``include``. + +For both instructions, the argument is a constraint block---that is, a YAML map +representing the constraints. Each constraint is a map entry, where the key is +typically a query metadata property. The value can be: + +- A single string. +- A ``/``\ -enclosed `regular expression `__. +- A list containing strings, regular expressions, or both. + +To match a constraint, a metadata value must match one of the strings or +regular expressions. When there is more than one metadata key, each key must be matched. +For more information about query metadata properties, see ":ref:`Metadata for CodeQL queries +`." + +In addition to metadata tags, the keys in the constraint block can also be: + +- ``query filename``---matches on the last path component of the query file name. +- ``query path``---matches on the path to the query file relative to its + enclosing QL pack. +- ``tags contain``---one of the given match strings must match + one of the space-separated components of the value of the ``@tags`` metadata property. +- ``tags contain all``---each of the given match strings must match one of the + components of the ``@tags`` metadata property. + +Examples +~~~~~~~~ + +To define a suite that selects all queries in the default suite of the +``codeql/cpp-queries`` QL pack, and then refines them to only include +security queries, use:: + + - qlpack: codeql/cpp-queries + - include: + tags contain: security + +To define a suite that selects all queries with ``@kind problem`` +and ``@precision high`` from the ``my-custom-queries`` directory, use:: + + - queries: my-custom-queries + - include: + kind: problem + precision: very-high + +To create a suite that selects all queries with ``@kind problem`` from the +``my-custom-queries`` directory except those with ``@problem.severity +recommendation``, use:: + + - queries: my-custom-queries + - include: + kind: problem + - exclude: + problem.severity: recommendation + +To create a suite that selects all queries with ``@tag security`` and +``@problem.severity high`` or ``very-high`` from the ``codeql/cpp-queries`` QL pack, +use:: + + - queries: . + from: codeql/cpp-queries + - include: + tags contain: security + problem.severity: + - high + - very-high + +Reusing existing query suite definitions +----------------------------------------- + +Existing query suite definitions can be reused by specifying: + +- An ``import`` instruction---adds the queries selected by a + previously defined ``.qls`` file to the current suite:: + + - import: + + The path to the imported suite must be relative to the QL pack containing the + current suite definition. If the imported query suite is in a different QL + pack you can use:: + + - import: + from: + + Queries added using an ``import`` instruction can be filtered using subsequent + ``exclude`` instructions. + +- An ``apply`` instruction---adds all of the instructions from a + previously defined ``.qls`` file to the current suite. The instructions in the + applied ``.qls`` file are executed as if they appear in place of ``apply``. + Any ``include`` and ``exclude`` instructions from the applied suite also act on + queries added by any earlier instructions:: + + - apply: + + The ``apply`` instruction can also be used to apply a set of reusable + conditions, saved in a ``.yml`` file, to multiple query definitions. For more + information, see the `example <#example>`__ below. + +- An ``eval`` instruction---performs the same function as an ``import`` + instruction, but takes a full suite definition as the argument, rather than the + path to a ``.qls`` file on disk. + +Example +~~~~~~~ + +To use the same conditions in multiple query suite definitions, create a +separate ``.yml`` file containing your instructions. For example, save the +following in a file called ``reusable-instructions.yml``:: + + - include: + kind: + - problem + - path-problem + tags contain: security + precision: + - high + - very-high + +Add ``reusable-instructions.yml`` to the same QL pack as your current query +suite (for example, ``my-custom-queries``). Apply the reusable instructions +to the queries in your current suite using:: + + - qlpack: my-custom-queries + - apply: reusable-instructions.yml + +To apply the same conditions to a different suite or directory within the same +QL pack, create a new definition and change (or replace) the ``qlpack`` +instruction. For example:: + + - queries: queries/cpp/custom + - apply: reusable-instructions.yml + +You can also create a suite definition using ``reusable-instructions.yml`` on +queries in a different QL pack. If the ``.qls`` file is in the same QL pack as +the queries, you can add a ``from`` field immediately after the ``apply`` +instruction:: + + - qlpack: my-other-custom-queries + - apply: reusable-instructions.yml + from: + +Naming a query suite +-------------------- + +You can provide a name for your query suite by specifying a ``description`` +instruction:: + + - description: + +This value is displayed when you run `codeql resolve queries +<../manual/resolve-queries>`__, if the suite is added to a "well-known" +directory. For more information, see "`Specifying well-known query suites +<#specifying-well-known-query-suites>`__." + +Saving a query suite +-------------------- + +Save your query suite in a file with a ``.qls`` extension and add it to a QL +pack. For more information, see ":ref:`About QL packs `." + +Specifying well-known query suites +---------------------------------- + +You can use QL packs to declare directories that contain "well-known" query +suites. You can use "well-known" query suites on the command line by referring +to their file name, +without providing their full path. This gives you a simple way of specifying a +set of queries, without needing to search inside QL packs and distributions. +To declare a directory that contains "well-known" query suites, add the directory +to the ``suites`` property in the ``qlpack.yml`` file at the root of your QL pack. +For more information, see ":ref:`About QL packs `." + +Using query suites with CodeQL +------------------------------ + +You can specify query suites on the command line for any command that accepts +``.qls`` files. For example, you can compile the queries selected by a suite +definition using ``query compile``, or use the queries in an analysis using +``database analyze``. For more information about analyzing CodeQL databases, see +":doc:`Analyzing databases with the CodeQL CLI `." + +Viewing the query suites used on LGTM.com +----------------------------------------- + +The query suite definitions used to select queries to run on LGTM.com can be +found in the CodeQL repository. For example, to view the CodeQL queries for +JavaScript, visit +https://github.com/github/codeql/tree/main/javascript/ql/src/codeql-suites. + +These suite definitions apply reusable filter patterns to the queries +located in the standard QL packs for each supported language. For more +information, see the `suite-helpers +`__ in the CodeQL +repository. + +Further reading +--------------- + +- ":ref:`CodeQL queries `" diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/exit-codes.rst.txt b/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/exit-codes.rst.txt new file mode 100644 index 0000000..5d9a0d4 --- /dev/null +++ b/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/exit-codes.rst.txt @@ -0,0 +1,74 @@ +.. _exit-codes: + +Exit codes +========== + +The CodeQL CLI reports the status of each command it runs as an exit code. +This exit code provides information for subsequent commands or for other tools that rely on the CodeQL CLI. + +0 +--- + +Success, normal termination. + +1 +--- + +The command successfully determined that the answer to your question is "no". + +This exit code is only used by a few commands, such as `codeql test run <../manual/test-run>`__, `codeql database check <../manual/dataset-check>`__, `codeql query format <../manual/query-format>`__,and `codeql resolve extractor <../manual/resolve-extractor>`__. +For more details, see the documentation for those commands. + +2 +--- + +Something went wrong. + +The CLI writes a human-readable error message to stderr. +This includes cases where an extractor fails with an internal error, because the ``codeql`` driver can't distinguish between internal and user-facing errors in extractor behavior. + +3 +--- + +The launcher was unable to find the CodeQL installation directory. + +In this case, the launcher can't start the Java code for the CodeQL CLI at all. This should only happen when something is severely wrong with the CodeQL installation. + +32 +--- + +The extractor didn't find any code to analyze when running `codeql database create <../manual/database-create>`__ or `codeql database finalize <../manual/database-finalize>`__. + +33 +--- + +One or more query evaluations timed out. + +It's possible that some queries that were evaluated in parallel didn't time out. The results for those queries are produced as usual. + +98 +--- + +Evaluation was explicitly canceled. + +99 +--- + +The CodeQL CLI ran out of memory. + +This doesn't necessarily mean that all the machine's physical RAM has been used. +If you don't use the ``--ram`` option to set a limit explicitly, the JVM decides on a default limit at startup. + +100 +--- + +A fatal internal error occurred. + +This should be considered a bug. The CLI usually writes an abbreviated error description to stderr. +If you can reproduce the bug, it's helpful to use ``--logdir`` and send the log files to GitHub in a bug report. + +Other +----- + +In the case of really severe problems within the JVM that runs ``codeql``, it might return a nonzero exit code of its own choosing. +This should only happen if something is severely wrong with the CodeQL installation. \ No newline at end of file diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/extractor-options.rst.txt b/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/extractor-options.rst.txt new file mode 100644 index 0000000..f688025 --- /dev/null +++ b/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/extractor-options.rst.txt @@ -0,0 +1,148 @@ +.. extractor-options: + +Extractor options +================= + +The CodeQL CLI uses special programs, called extractors, to extract information from the source code of a +software system into a database that can be queried. You can customize the behavior of extractors by +setting extractor configuration options through the CodeQL CLI. + +About extractor options +----------------------- + +Each extractor defines its own set of configuration options. To find out which options are available for a particular extractor, you can run ``codeql resolve languages`` or ``codeql resolve extractor`` with the ``--format=betterjson`` option. The ``betterjson`` output format provides the root paths of extractors and additional information. The output of ``codeql resolve extractor --format=betterjson`` will often be formatted like the following example: + +.. code-block:: json + + { + "extractor_root" : "/home/user/codeql/java", + "extractor_options" : { + "option1" : { + "title" : "Java extractor option 1", + "description" : "An example string option for the Java extractor.", + "type" : "string", + "pattern" : "[a-z]+" + }, + "group1" : { + "title" : "Java extractor group 1", + "description" : "An example option group for the Java extractor.", + "type" : "object", + "properties" : { + "option2" : { + "title" : "Java extractor option 2", + "description" : "An example array option for the Java extractor", + "type" : "array", + "pattern" : "[1-9][0-9]*" + } + } + } + } + } + +The extractor option names and descriptions are listed under ``extractor_options``. Each option may contain the following fields: + +* ``title`` (required): The title of the option +* ``description`` (required): The description of the option +* ``type`` (required): The type of the option, which can be + + * ``string``: indicating that the option can have a single string value + * ``array``: indicating that the option can have a sequence of string values + * ``object``: indicating that it is not an option itself, but a grouping that may contain other options and option groups + +* ``pattern`` (optional): The regular expression patterns that all values of the option should match. Note that the extractor may impose additional constraints on option values that are not or cannot be expressed in this regular expression pattern. Such constraints, if they exist, would be explained under the description field. +* ``properties`` (optional): A map from extractor option names in the option group to the corresponding extractor option descriptions. This field can only be present for option groups. For example, options of ``object`` type. + +In the example above, the extractor declares two options: + +* ``option1`` is a ``string`` option with value matching ``[a-z]+`` +* ``group1.option2`` is an ``array`` option with values matching ``[1-9][0-9]*`` + +Setting extractor options with the CodeQL CLI +--------------------------------------------- + +The CodeQL CLI supports setting extractor options in subcommands that directly or indirectly invoke extractors. These commands are: + +* ``codeql database create`` +* ``codeql database start-tracing`` +* ``codeql database trace-command`` +* ``codeql database index-files`` + +When running these subcommands, you can set extractor options with the ``--extractor-option`` CLI option. For example: + +* ``codeql database create --extractor-option java.option1=abc ...`` +* ``codeql database start-tracing --extractor-option java.group1.option2=102 ...`` + +``--extractor-option`` requires exactly one argument of the form ``extractor_option_name=extractor_option_value``. ``extractor_option_name`` is the name of the extractor (in this example, ``java``) followed by a period and then the name of the extractor option (in this example, either ``option1`` or ``group1.option2``). ``extractor_option_value`` is the value being assigned to the extractor option. The value must match the regular expression pattern of the extractor option (if it exists), and it must not contain newline characters. + +Using ``--extractor-option`` to assign an extractor option that does not exist is an error. + +The CodeQL CLI accepts multiple ``--extractor-option`` options in the same invocation. If you set a ``string`` extractor option multiple times, the last option value overwrites all previous ones. If you set an `array` extractor option multiple times, all option values are concatenated in order. + +You can also specify extractor option names without the extractor name. For example: + +* ``codeql database create --extractor-option option1=abc ...`` +* ``codeql database start-tracing --extractor-option group1.option2=102 ...`` + +If you do not specify an extractor name, the extractor option settings will apply to all extractors that declare an option with the given name. In the above example, the first command would set the extractor option ``option1`` to ``abc`` for the ``java`` extractor and every extractor that has an option of ``option1``, for example the ``cpp`` extractor, if the ``option1`` extractor option exists for that extractor. + +Setting extractor options from files +------------------------------------ + +You can also set extractor options through a file. The CodeQL CLI subcommands that accept ``--extractor-option`` also accept ``--extractor-options-file``, which has a required argument of the path to a YAML file (with extension ``.yaml`` or ``.yml``) or a JSON file (with extension ``.json``). For example: + +* ``codeql database create --extractor-options-file options.yml ...`` +* ``codeql database start-tracing --extractor-options-file options.json ...`` + +Each option file contains a tree structure of nested maps. At the root is an extractor map key, and beneath it are map keys that correspond to extractor names. Starting at the third level, there are extractor options and option groups. + +In JSON: + +.. code-block:: json + + { + "extractor" : { + "java": { + "option1" : "abc", + "group1" : { + "option2" : [ 102 ] + } + } + } + } + + +In YAML: + +.. code-block:: yaml + + extractor: + java: + option1: "abc" + group1: + option2: [ 102 ] + +The value for a ``string`` extractor option must be a string or a number (which will be converted to a string before further processing). + +The value for an ``array`` extractor option must be an array of strings or numbers. + +The value for an option group (of type ``object``) must be a map, which may contain nested extractor options and option groups. + +Each extractor option value must match the regular expression pattern of the extractor option (if it exists), and it must not contain newline characters. + +Assigning an extractor option that does not exist is an error. You can make the CodeQL CLI ignore unknown extractor options by using a special ``__allow_unknown_properties`` Boolean field. For example, the following option file asks the CodeQL CLI to ignore all unknown extractor options and option groups under ``group1``: + +.. code-block:: yaml + + extractor: + java: + option1: "abc" + group1: + __allow_unknown_properties: true + option2: [ 102 ] + +You can specify ``--extractor-options-file`` multiple times. The extractor option assignments are processed in the following order: + +1. All extractor option files specified by ``--extractor-options-file`` are processed in the order they appear on the command line, then +2. All extractor option assignments specified by ``--extractor-option`` are processed in the order they appear on the command line + +The same rules govern what happens when the same extractor option is set multiple times, regardless of whether the assignments are done using ``--extractor-option``, using ``--extractor-options-file``, or some combination of the two. If you set a ``string`` extractor option multiple times, the last option value overwrites all previous values. If you set an ``array`` extractor option multiple times, all option values are concatenated in order. diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/getting-started-with-the-codeql-cli.rst.txt b/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/getting-started-with-the-codeql-cli.rst.txt new file mode 100644 index 0000000..0cf07d5 --- /dev/null +++ b/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/getting-started-with-the-codeql-cli.rst.txt @@ -0,0 +1,306 @@ +.. _getting-started-with-the-codeql-cli: + +Getting started with the CodeQL CLI +=================================== + +To run CodeQL commands, you need to set up the CLI so that it can access +the tools, queries, and libraries required to create and analyze databases. + +.. include:: ../reusables/license-note.rst + +.. _setting-up-cli: + +Setting up the CodeQL CLI +------------------------- + +The CodeQL CLI can be set up to support many different use cases and directory +structures. To get started quickly, we recommend adopting a relatively simple +setup, as outlined in the steps below. + +If you use Linux, Windows, or macOS version 10.14 ("Mojave") or earlier, simply +follow the steps below. For macOS version 10.15 ("Catalina") or newer, steps 1 +and 4 are slightly different---for further details, see the sections labeled +**Information for macOS "Catalina" (or newer) users**. If you are using macOS +on Apple Silicon (e.g. Apple M1), ensure that the `Xcode command-line developer +tools `__ and `Rosetta 2 +`__ are installed. + +.. pull-quote:: Note + + The CodeQL CLI is currently not compatible with non-glibc Linux + distributions such as (muslc-based) Alpine Linux. + +For information about installing the CodeQL CLI in a CI system to create results +to display in GitHub as code scanning alerts, see +`Installing CodeQL CLI in your CI system `__ +in the GitHub documentation. + +.. _download-cli: + +1. Download the CodeQL CLI zip package +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The CodeQL CLI download package is a zip archive containing tools, scripts, and +various CodeQL-specific files. If you don't have an Enterprise license then, by +downloading this archive, you are agreeing to the `GitHub CodeQL Terms and +Conditions `__. + +.. pull-quote:: Important + + There are several different versions of the CLI available to download, depending + on your use case: + + - If you want to use the most up to date CodeQL tools and features, download the + version tagged ``latest``. + + - If you want to create CodeQL databases to upload to LGTM Enterprise, download + the version that is compatible with the relevant LGTM Enterprise version + number. Compatibility information is included in the description for each + release on the `CodeQL CLI releases page + `__ on GitHub. Using the + correct version of the CLI ensures that your CodeQL databases are + compatible with your version of LGTM Enterprise. For more information, + see `Preparing CodeQL databases to upload to LGTM + `__ + in the LGTM admin help. + +If you use Linux, Windows, or macOS version 10.14 ("Mojave") or earlier, simply +`download the zip archive +`__ +for the version you require. + +If you want the CLI for a specific platform, download the appropriate ``codeql-PLATFORM.zip`` file. +Alternatively, you can download ``codeql.zip``, which contains the CLI for all supported platforms. + +.. container:: toggle + + .. container:: name + + **Information for macOS "Catalina" (or newer) users** + + .. pull-quote:: macOS "Catalina" (or newer) + + If you use macOS version 10.15 ("Catalina"), version 11 ("Big Sur"), or the upcoming + version 12 ("Monterey"), you need to ensure that your web browser does not automatically + extract zip files. If you use Safari, complete the following steps before downloading + the CodeQL CLI zip archive: + + i. Open Safari. + ii. From the Safari menu, select **Preferences...**. + iii. Click the **General** Tab. + iv. Ensure the check-box labeled **Open "safe" files after downloading**. + is unchecked. + +2. Extract the zip archive +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +For Linux, Windows, and macOS users (version 10.14 "Mojave", and earlier) +simply extract the zip archive. + +.. container:: toggle + + .. container:: name + + **Information for macOS "Catalina" (or newer) users** + + .. pull-quote:: macOS "Catalina" + + macOS "Catalina", "Big Sur", or "Monterey" users should run the following + commands in the Terminal, where ``${extraction-root}`` is the path to the + directory where you will extract the CodeQL CLI zip archive: + + i. ``mv ~/Downloads/codeql*.zip ${extraction-root}`` + ii. ``cd ${extraction-root}`` + iii. ``/usr/bin/xattr -c codeql*.zip`` + iv. ``unzip codeql*.zip`` + +.. _launch-codeql-cli: + +3. Launch ``codeql`` +~~~~~~~~~~~~~~~~~~~~ + +Once extracted, you can run CodeQL processes by running the ``codeql`` +executable in a couple of ways: + +- By executing ``/codeql/codeql``, where + ```` is the folder where you extracted the CodeQL CLI + package. +- By adding ``/codeql`` to your ``PATH``, so that you + can run the executable as just ``codeql``. + +At this point, you can execute CodeQL commands. For a full list of the CodeQL +CLI commands, see the "`CodeQL CLI manual <../manual>`__." + +.. pull-quote:: Note + + If you add ``codeql`` to your ``PATH``, it can be accessed by CodeQL + for Visual Studio Code to compile and run queries. + For more information about configuring VS Code to access the CodeQL CLI, see + ":ref:`Setting up CodeQL in Visual Studio Code `." + + +4. Verify your CodeQL CLI setup +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +CodeQL CLI has subcommands you can execute to verify that you are correctly set +up to create and analyze databases: + +- Run ``codeql resolve languages`` to show which languages are + available for database creation. This will list the languages supported by + default in your CodeQL CLI package. +- (Optional) You can download some ":ref:`CodeQL packs `" containing pre-compiled queries you would like to run. + To do this, run ``codeql pack download [...pack-name]``, where ``pack-name`` is the name of + the pack you want to download. The core query packs are a good place to start. They are: + + - ``codeql/cpp-queries`` + - ``codeql/csharp-queries`` + - ``codeql/java-queries`` + - ``codeql/javascript-queries`` + - ``codeql/python-queries`` + - ``codeql/ruby-queries`` + + Alternatively, you can download query packs during the analysis by using the ``--download`` flag of the ``codeql database analyze`` + command. + + +Checking out the CodeQL source code directly +-------------------------------------------- + +Some users prefer working with CodeQL query sources directly in order to work on or contribute to the Open Source shared queries. In +order to do this, the following steps are recommended. Note that the following instructions are a slightly more complicated alternative +to working with CodeQL packages as explained above. + +1. Download the CodeQL CLI zip +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Follow :ref:`step 1 from the previous section`. + +2. Create a new CodeQL directory +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Create a new directory where you can place the CLI and any queries and libraries +you want to use. For example, ``$HOME/codeql-home``. + +The CLI's built-in search operations automatically look in all of its sibling +directories for the files used in database creation and analysis. Keeping these +components in their own directory prevents the CLI searching unrelated sibling +directories while ensuring all files are available without specifying any +further options on the command line. + +.. _local-copy-codeql-queries: + +3. Obtain a local copy of the CodeQL queries +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The `CodeQL repository `__ contains +the queries and libraries required for CodeQL analysis of C/C++, C#, Java, +JavaScript/TypeScript, Python, and Ruby. +Clone a copy of this repository into ``codeql-home``. + +By default, the root of the cloned repository will be called ``codeql``. +Rename this folder ``codeql-repo`` to avoid conflicting with the CodeQL +CLI that you will extract in step 4. If you use git on the command line, you can +clone and rename the repository in a single step by running +``git clone git@github.com:github/codeql.git codeql-repo`` in the ``codeql-home`` folder. + +The CodeQL libraries and queries for Go analysis live in the `CodeQL for Go +repository `__. Clone a copy of this +repository into ``codeql-home``, and run ``codeql-go/scripts/install-deps.sh`` +to install its dependencies. + +The cloned repositories should have a sibling relationship. +For example, if the root of the cloned CodeQL repository is +``$HOME/codeql-home/codeql-repo``, then the root of the cloned CodeQL for Go +repository should be ``$HOME/codeql-home/codeql-go``. + +Within these repositories, the queries and libraries are organized into QL +packs. Along with the queries themselves, QL packs contain important metadata +that tells the CodeQL CLI how to process the query files. For more information, +see ":doc:`About QL packs `." + +.. pull-quote:: Important + + There are different versions of the CodeQL queries available for different + users. Check out the correct version for your use case: + + - For the queries used on `LGTM.com `__, check out the + ``lgtm.com`` branch. You should use this branch for databases you've built + using the CodeQL CLI, fetched from code scanning on GitHub, or recently downloaded from LGTM.com. + The queries on the ``lgtm.com`` branch are more likely to be compatible + with the ``latest`` CLI, so you'll be less likely to have to upgrade + newly-created databases than if you use the ``main`` branch. Older databases + may need to be upgraded before you can analyze them. + + - For the most up to date CodeQL queries, check out the ``main`` branch. + This branch represents the very latest version of CodeQL's analysis. Even + databases created using the most recent version of the CLI may have to be + upgraded before you can analyze them. For more information, see + ":doc:`Upgrading CodeQL databases `." + + - For the queries used in a particular LGTM Enterprise release, check out the + branch tagged with the relevant release number. For example, the branch + tagged ``v1.27.0`` corresponds to LGTM Enterprise 1.27. You must use this + version if you want to upload data to LGTM Enterprise. For further + information, see `Preparing CodeQL databases to upload to LGTM + `__ + in the LGTM admin help. + +4. Extract the zip archive +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +For Linux, Windows, and macOS users (version 10.14 "Mojave", and earlier) +simply +extract the zip archive into the directory you created in step 2. + +For example, if the path to your copy of the CodeQL repository is +``$HOME/codeql-home/codeql-repo``, then extract the CLI into +``$HOME/codeql-home/``. + + +5. Launch ``codeql`` +~~~~~~~~~~~~~~~~~~~~ + +See :ref:`step 3 from the previous section`. + +6. Verify your CodeQL CLI setup +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +CodeQL CLI has subcommands you can execute to verify that you are correctly set +up to create and analyze databases: + +- Run ``codeql resolve languages`` to show which languages are + available for database creation. This will list the languages supported by + default in your CodeQL CLI package. +- Run ``codeql resolve qlpacks`` to show which QL packs the CLI can find. This + will display the names of all the QL packs directly available to the CodeQL CLI. + This should include: + + - Query packs for each supported language, for example, ``codeql/{language}-queries``. + These packs contain the standard queries that will be run for each analysis. + - Library packs for each supported language, for example, ``codeql/{language}-all``. These + packs contain query libraries, such as control flow and data flow libraries, that + may be useful to query writers. + - Example packs for each supported language, for example, ``codeql/{language}-examples``. + These packs contain useful snippets of CodeQL that query writers may find useful. + - Legacy packs that ensure custom queries and libraries created using older products are + compatible with your version of CodeQL. + +.. _using-two-versions-of-the-codeql-cli: + +Using two versions of the CodeQL CLI +------------------------------------ + +If you want to use the latest CodeQL features to execute queries or CodeQL tests, +but also want to prepare databases that are compatible with a specific version of +LGTM Enterprise, you may need to install two versions of the CLI. The +recommended directory setup depends on which versions you want to install: + +- If both versions are 2.0.2 (or newer), you can unpack both CLI archives in the + same parent directory. + +- If at least one of the versions is 2.0.1 (or older), the unpacked CLI archives cannot + be in the same parent directory, but they can share the same grandparent + directory. For example, if you unpack version 2.0.2 into + ``$HOME/codeql-home/codeql-cli``, the older version should be + unpacked into ``$HOME/codeql-older-version/old-codeql-cli``. Here, the common + grandparent is the ``$HOME`` directory. diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/index.rst.txt b/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/index.rst.txt new file mode 100644 index 0000000..d7a8a40 --- /dev/null +++ b/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/index.rst.txt @@ -0,0 +1,21 @@ +.. _codeql-cli: + +CodeQL CLI +========== + +.. include:: ../reusables/codeql-cli-overview.rst + +- :ref:`Using the CodeQL CLI `: Software + developers and security researchers can secure their code using the CodeQL CLI. + +- :ref:`CodeQL CLI reference `: Learn more about the files you can use when running CodeQL processes and the results format and exit codes that CodeQL generates. + +- `CodeQL CLI manual `__: Detailed information about all the commands available with the CodeQL CLI. + +.. toctree:: + :titlesonly: + :hidden: + + using-the-codeql-cli + codeql-cli-reference + CodeQL CLI manual diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/publishing-and-using-codeql-packs.rst.txt b/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/publishing-and-using-codeql-packs.rst.txt new file mode 100644 index 0000000..d28e27e --- /dev/null +++ b/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/publishing-and-using-codeql-packs.rst.txt @@ -0,0 +1,74 @@ +.. _publishing-and-using-codeql-packs: + +Publishing and using CodeQL packs +================================= + +You can publish your own CodeQL packs and use packs published by other people. + +.. include:: ../reusables/beta-note-package-management.rst + +Configuring the ``qlpack.yml`` file before publishing +----------------------------------------------------- + +You can check and modify the configuration details of your CodeQL pack prior to publishing. Open the ``qlpack.yml`` file in your preferred text editor. + +.. code-block:: none + + library: # set to true if the pack is a library. Set to false or omit for a query pack + name: / + version: + description: + default-suite: # optional, one or more queries in the pack to run by default + - query: /query-file>.ql + default-suite-file: default-queries.qls # optional, a pointer to a query-suite in this pack + license: # optional, the license under which the pack is published + dependencies: # map from CodeQL pack name to version range + +- ``name:`` must follow the / format, where is the GitHub organization that you will publish to and is the name for the pack. +- A maximum of one of ``default-suite`` or ``default-suite-file`` is allowed. These are two different ways to define a default query suite to be run, the first by specifying queries directly in the `qlpack.yml` file and the second by specifying a query suite in the pack. + +Running ``codeql pack publish`` +------------------------------- + +When you are ready to publish a pack to the GitHub Container registry, you can run the following command in the root of the pack directory: + +:: + + codeql pack publish + +The published package will be displayed in the packages section of GitHub organization specified by the scope in the ``qlpack.yml`` file. + +Running ``codeql pack download /`` +----------------------------------------------- + +To run a pack that someone else has created, you must first download it by running the following command: + +:: + + codeql pack download /@x.x.x + +- ````: the name of the GitHub organization that you will download from. +- ````: the name for the pack that you want to download. +- ``@x.x.x``: an optional version number. If omitted, the latest version will be downloaded. + +This command accepts arguments for multiple packs. + +Using a CodeQL pack to analyze a CodeQL database +------------------------------------------------ + +To analyze a CodeQL database with a CodeQL pack, run the following command: + +:: + + codeql database analyze /@x.x.x + +- ````: the CodeQL database to be analyzed. +- ````: the name of the GitHub organization that the pack is published to. +- ````: the name for the pack that you are using. +- ``@x.x.x``: an optional version number. If omitted, the latest version will be used. + +The ``analyze`` command will run the default suite of any specified CodeQL packs. You can specify multiple CodeQL packs to be used for analyzing a CodeQL database. For example: + +:: + + codeql analyze / / diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/query-reference-files.rst.txt b/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/query-reference-files.rst.txt new file mode 100644 index 0000000..f19996a --- /dev/null +++ b/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/query-reference-files.rst.txt @@ -0,0 +1,47 @@ +.. _query-reference-files: + +Query reference files +===================== + +A query reference file is text file that defines the location of one query to test. + +You use a query reference file when you want to tell the ``test run`` subcommand +to run a query that's not part of a test directory. +There are two ways to specify queries that you want to run as tests: + +#. Use a query reference file to specify the location of a query to test. + This is useful when you create tests for alert and path queries that + are intended to identify problems in real codebases. You might create + several directories of test code, each focusing on different + aspects of the query. Then you would add a query reference file to + each directory of test code, to specify the query to test. +#. Add the query directly to a directory of tests. + These is typically useful when you're writing queries explicitly to test the behavior + of QL libraries. Often these queries contain just a few calls to library predicates, + wrapping them in a ``select`` statement so their output can be tested. + +Defining a query reference file +------------------------------- + +Each query reference file, ``.qlref``, contains a single line that defines +where to find one query. The location must be defined relative +to the root of the QL pack that contains the query. +Usually, this is a QL pack specified by the ``libraryPathDependencies`` for the test pack. + +You should use forward slashes in the path on all operating +systems to ensure compatibility between systems. + +Example +^^^^^^^^ + +A query reference file to test a JavaScript alert query: +`DeadAngularJSEventListener.qlref `__ + +The `QL pack `__ +for the ``javascript/ql/test`` directory defines the ``codeql-javascript`` queries as +a dependency. So the query reference file defines the location of the query relative +to the ``codeql-javascript`` QL pack:: + + AngularJS/DeadAngularJSEventListener.ql + +For another example, see :doc:`Testing custom queries `. diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/sarif-output.rst.txt b/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/sarif-output.rst.txt new file mode 100644 index 0000000..d9b1078 --- /dev/null +++ b/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/sarif-output.rst.txt @@ -0,0 +1,292 @@ +.. _sarif-output: + +SARIF output +============ + +CodeQL supports SARIF as an output format for sharing static analysis results. + +SARIF is designed to represent the output of a broad range of static analysis +tools, and there are many features in the SARIF specification that are +considered "optional". This document details the output produced when using the +format type ``sarifv2.1.0``, which corresponds to the SARIF v2.1.0.csd1 +specification. +For more information on selecting a file format for your analysis results, see +the `database analyze reference <../manual/database-analyze>`__. + +SARIF specification and schema +------------------------------ + +This topic is intended to be read alongside the detailed SARIF specification. +For more information on the specification and the SARIF schema, see the `SARIF +specification documentation +`__ +on GitHub. + +Change notes +------------ + +Changes between versions +~~~~~~~~~~~~~~~~~~~~~~~~ + ++----------------+-----------------+-----------------------------------------------------------------------------------------------------------------------------+ +| CodeQL version | Format type | Changes | ++================+=================+=============================================================================================================================+ +| 2.0.0 | ``sarifv2.1.0`` | First version of this format. | ++----------------+-----------------+-----------------------------------------------------------------------------------------------------------------------------+ + +Future changes to the output +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The output produced for a given specific format type (for example +``sarifv2.1.0``) may change in future CodeQL releases. We will endeavor to +maintain backwards compatibility with consumers of the generated SARIF by +ensuring that: + +- No field which is marked as “Always” being generated will be removed. + +- The circumstances under which “Optional” fields are generated may change. + Consumers of the CodeQL SARIF output should be robust to the presence or absence + of these fields. + +New output fields may be added in future releases under the same format +type–these are not considered to break backwards compatibility, and consumers +should be robust to the presence of newly added fields. + +New format argument types may be added in future versions of CodeQL---for example, +to support new versions of SARIF. These have no guarantee of backwards +compatibility, unless explicitly documented. + +Generated SARIF objects +----------------------- + +This details each SARIF component that may be generated, along with any specific +circumstances. We omit any properties that are never generated. + +``sarifLog`` object +~~~~~~~~~~~~~~~~~~~ + ++------------------------+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+ +| JSON property name | When is this generated? | Notes | ++========================+=============================+===========================================================================================================================================+ +| ``$schema`` | Always | Provides a link to the `SARIF schema `__. | ++------------------------+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+ +| ``version`` | Always | The version of the SARIF used to generate the output. | ++------------------------+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+ +| ``runs`` | Always | An array containing a single run object, for one language. | ++------------------------+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+ + +``run`` object +~~~~~~~~~~~~~~ + ++------------------------+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| JSON property name | When is this generated? | Notes | ++========================+=============================+===========================================================================================================================================================================================================================================================================================+ +| ``tool`` | Always | – | ++------------------------+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``originalUriBaseIds`` | Always | A dictionary of ``uriBaseIds`` to artifactLocations representing the original locations on the analysis machine. At a minimum, this will contain the ``%SRCROOT%`` ``uriBaseId``, which represents the root location on the analysis machine of the source code for the analyzed project. | +| | | Each ``artifactLocation`` will contain the ``uri`` and ``description`` properties. | ++------------------------+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``artifacts`` | Always | An array containing at least one artifact object for every file referenced in a result. | ++------------------------+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``results`` | Always | – | ++------------------------+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``newLineSequences`` | Always | – | ++------------------------+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``columnKind`` | Always | – | ++------------------------+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``properties`` | Always | The properties dictionary will contain the ``semmle.formatSpecifier``, which identifies the format specifier passed to the CodeQL CLI. | ++------------------------+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +``tool`` object +~~~~~~~~~~~~~~~ + ++------------------------+-----------------------------+-----------+ +| JSON property name | When is this generated? | Notes | ++========================+=============================+===========+ +| ``driver`` | Always | – | ++------------------------+-----------------------------+-----------+ + +``toolComponent`` object +~~~~~~~~~~~~~~~~~~~~~~~~ + ++------------------------+-----------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| JSON property name | When is this generated? | Notes | ++========================+=============================+==========================================================================================================================================================================================================================================================================================+ +| ``name`` | Always | Set to “CodeQL command-line toolchain” for output from the CodeQL CLI tools. Note, if the output was generated using a different tool a different ``name`` is reported, and the format may not be as described here. | ++------------------------+-----------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``organization`` | Always | Set to “GitHub”. | ++------------------------+-----------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``version`` | Always | Set to the CodeQL release version e.g. “2.0.0”. | ++------------------------+-----------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``rules`` | Always | An array of ``reportingDescriptor`` objects that represent rules. This array will contain, at a minimum, all the rules that were run during this analysis, but may contain rules which were available but not run. For more detail about enabling queries, see ``defaultConfiguration``. | ++------------------------+-----------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +``reportingDescriptor`` object (for rule) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +``reportingDescriptor`` objects may be used in multiple places in the SARIF specification. When a ``reportingDescriptor`` is included in the rules array of a ``toolComponent`` object it has the following properties. + ++------------------------------------------------------------------+--------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| JSON property name | When is this generated? | Notes | ++==================================================================+================================+====================================================================================================================================================================================================================================================================================+ +| ``id`` | Always | Will contain the ``@id`` property specified in the query that defines the rule, which is usually of the format ``language/rule-name`` (for example ``cpp/unsafe-format-string``). If your organization defines the ``@opaqueid`` property in the query it will be used instead. | ++------------------------------------------------------------------+--------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``name`` | Always | Will contain the ``@id`` property specified in the query. See the ``id`` property above for an example. | ++------------------------------------------------------------------+--------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``shortDescription`` | Always | Will contain the ``@name`` property specified in the query that defines the rule. | ++------------------------------------------------------------------+--------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``fullDescription`` | Always | Will contain the ``@description`` property specified in the query that defines the rule. | ++------------------------------------------------------------------+--------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``defaultConfiguration`` | Always | A ``reportingConfiguration`` object, with the enabled property set to true or false, and a level property set according to the ``@severity`` property specified in the query that defines the rule. Omitted if the ``@severity`` property was not specified. | ++------------------------------------------------------------------+--------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +``artifact`` object +~~~~~~~~~~~~~~~~~~~ + ++------------------------+-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| JSON property name | When is this generated? | Notes | ++========================+=============================+=================================================================================================================================================================================================================================================================+ +| ``location`` | Always | An ``artifactLocation`` object. | ++------------------------+-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``index`` | Always | The index of the ``artifact`` object. | ++------------------------+-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``contents`` | Optionally | If results are generated using the ``--sarif-add-file-contents`` flag, and the source code is available at the time the SARIF file is generated, then the ``contents`` property is populated with an ``artifactContent`` object, with the ``text`` property set.| ++------------------------+-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +``artifactLocation`` object +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ++------------------------+-----------------------------+--------------------------------------------------------------------------------------------------------------------------------------+ +| JSON property name | When is this generated? | Notes | ++========================+=============================+======================================================================================================================================+ +| ``uri`` | Always | – | ++------------------------+-----------------------------+--------------------------------------------------------------------------------------------------------------------------------------+ +| ``index`` | Always | – | ++------------------------+-----------------------------+--------------------------------------------------------------------------------------------------------------------------------------+ +| ``uriBaseId`` | Optionally | If the file is relative to some known abstract location, such as the root source location on the analysis machine, this will be set. | ++------------------------+-----------------------------+--------------------------------------------------------------------------------------------------------------------------------------+ + +``result`` object +~~~~~~~~~~~~~~~~~ + +The composition of the results is dependent on the options provided to CodeQL. +By default, the results are grouped by unique message format string and +primary location. Thus, two results that occur at the same location with the +same underlying message, will appear as a single result in the output. This +behavior can be disabled by using the flag ``--ungroup-results``, in which case +no results are grouped. + ++-------------------------+-----------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| JSON property name | When is this generated? | Notes | ++=========================+=============================+=========================================================================================================================================================================================================================================================================================================+ +| ``ruleId`` | Always | See the description of the ``id`` property in ``reportingDescriptor`` object (for rule) . | ++-------------------------+-----------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``ruleIndex`` | Always | – | ++-------------------------+-----------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``message`` | Always | A message describing the problem(s) occurring at this location. This message may be a SARIF “Message with placeholder”, containing links that refer to locations in the ``relatedLocations`` property. | ++-------------------------+-----------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``locations`` | Always | An array containing a single ``location`` object. | ++-------------------------+-----------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``partialFingerprints`` | Always | A dictionary from named fingerprint types to the fingerprint. This will contain, at a minimum, a value for the ``primaryLocationLineHash``, which provides a fingerprint based on the context of the primary location. | ++-------------------------+-----------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``codeFlows`` | Optionally | This array may be populated with one or more ``codeFlow`` objects if the query that defines the rule for this result is of ``@kind path-problem``. | ++-------------------------+-----------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``relatedLocations`` | Optionally | This array will be populated if the query that defines the rule for this result has a message with placeholder options. Each unique location is included once. | ++-------------------------+-----------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``suppressions`` | Optionally | If the result is suppressed, then this will contain a single ``suppression`` object, with the ``@kind`` property set to ``IN_SOURCE``. If this result is not suppressed, but there is at least one result that has a suppression, then this will be set to an empty array, otherwise it will not be set.| ++-------------------------+-----------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +``location`` object +~~~~~~~~~~~~~~~~~~~ + ++------------------------+-----------------------------+----------------------------------------------------------------------------------------------------------------------------+ +| JSON property name | When is this generated? | Notes | ++========================+=============================+============================================================================================================================+ +| ``physicalLocation`` | Always | – | ++------------------------+-----------------------------+----------------------------------------------------------------------------------------------------------------------------+ +| ``id`` | Optionally | ``location`` objects that appear in the ``relatedLocations`` array of a ``result`` object may contain the ``id`` property. | ++------------------------+-----------------------------+----------------------------------------------------------------------------------------------------------------------------+ +| ``message`` | Optionally | ``location`` objects may contain the ``message`` property if: | +| | | | +| | | - They appear in the ``relatedLocations`` array of a ``result`` object may contain the ``message`` property. | +| | | - They appear in the ``threadFlowLocation.location`` property. | ++------------------------+-----------------------------+----------------------------------------------------------------------------------------------------------------------------+ + +``physicalLocation`` object +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ++------------------------+-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------+ +| JSON property name | When is this generated? | Notes | ++========================+=============================+===================================================================================================================================+ +| ``artifactLocation`` | Always | – | ++------------------------+-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------+ +| ``region`` | Optionally | If the given ``physicalLocation`` exists in a text file, such as a source code file, then the ``region`` property may be present. | ++------------------------+-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------+ +| ``contextRegion`` | Optionally | May be present if this location has an associated ``snippet``. | ++------------------------+-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------+ + +``region`` object +~~~~~~~~~~~~~~~~~ + +There are two types of ``region`` object produced by CodeQL: + +- Line/column offset regions +- Character offset and length regions + +Any region produced by CodeQL may be specified in either format, and consumers +should robustly handle either type. + +For line/column offset regions, the following properties will be set: + ++------------------------+-----------------------------+----------------------------------------------------------------------------------------------+ +| JSON property name | When is this generated? | Notes | ++========================+=============================+==============================================================================================+ +| ``startLine`` | Always | – | ++------------------------+-----------------------------+----------------------------------------------------------------------------------------------+ +| ``startColumn`` | Optionally | Not included if equal to the default value of 1. | ++------------------------+-----------------------------+----------------------------------------------------------------------------------------------+ +| ``endLine`` | Optionally | Not included if identical to ``startLine``. | ++------------------------+-----------------------------+----------------------------------------------------------------------------------------------+ +| ``endColumn`` | Always | – | ++------------------------+-----------------------------+----------------------------------------------------------------------------------------------+ +| ``snippet`` | Optionally | – | ++------------------------+-----------------------------+----------------------------------------------------------------------------------------------+ + +For character offset and length regions, the following properties will be set: + ++------------------------+-----------------------------+----------------------------------------------------------------------------------------------+ +| JSON property name | When is this generated? | Notes | ++========================+=============================+==============================================================================================+ +| ``charOffset`` | Optionally | Provided if ``startLine``, ``startColumn``, ``endLine``, and ``endColumn`` are not populated.| ++------------------------+-----------------------------+----------------------------------------------------------------------------------------------+ +| ``charLength`` | Optionally | Provided if ``startLine``, ``startColumn``, ``endLine``, and ``endColumn`` are not populated.| ++------------------------+-----------------------------+----------------------------------------------------------------------------------------------+ +| ``snippet`` | Optionally | – | ++------------------------+-----------------------------+----------------------------------------------------------------------------------------------+ + +``codeFlow`` object +~~~~~~~~~~~~~~~~~~~ + ++------------------------+-----------------------------+-----------+ +| JSON property name | When is this generated? | Notes | ++========================+=============================+===========+ +| ``threadFlows`` | Always | – | ++------------------------+-----------------------------+-----------+ + +``threadFlow`` object +~~~~~~~~~~~~~~~~~~~~~ + ++------------------------+-----------------------------+-----------+ +| JSON property name | When is this generated? | Notes | ++========================+=============================+===========+ +| ``locations`` | Always | – | ++------------------------+-----------------------------+-----------+ + +``threadFlowLocation`` object +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ++------------------------+-----------------------------+-----------+ +| JSON property name | When is this generated? | Notes | ++========================+=============================+===========+ +| ``location`` | Always | – | ++------------------------+-----------------------------+-----------+ diff --git a/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/specifying-command-options-in-a-codeql-configuration-file.rst.txt b/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/specifying-command-options-in-a-codeql-configuration-file.rst.txt new file mode 100644 index 0000000..f0b3571 --- /dev/null +++ b/ql/docs/language/learn-ql/build.html-5f4acb8/_sources/codeql-cli/specifying-command-options-in-a-codeql-configuration-file.rst.txt @@ -0,0 +1,72 @@ +.. _specifying-command-options-in-a-codeql-configuration-file: + +Specifying command options in a CodeQL configuration file +========================================================= + +You can save default or frequently used options for your commands in a per-user +configuration file. + +You can specify CodeQL CLI command options in two ways: + +- Directly in the command line, using the appropriate flag. +- In a configuration (or ``config``) file that CodeQL scans for relevant + options each time a command is executed. + +For options that are likely to change each time you execute a command, +specifying the value on the command line is the most convenient way of passing +the information to CodeQL. Saving options in a ``config`` file is a good way to +specify options you use frequently. +It's also a good way to add custom QL packs that you use regularly to your search path. + +Using a CodeQL configuration file +--------------------------------- + +You need to save the ``config`` file under your home (Linux and macOS) or user profile +(Windows) directory in the ``.config/codeql/`` subdirectory. +For example, ``$HOME/.config/codeql/config``. + +The syntax for specifying options is as follows:: + +