mirror of
https://github.com/github/codeql.git
synced 2026-02-19 16:33:40 +01:00
3e5ff1d042672f47deee7d4ba377f478fe86f47e
When printing a tree CodeQL iterates over the nodes and for each node prints the successor edges as children. If the the successor edges are ordered by target node then the children printe in the right order in the expected output.
Ruby analysis support for CodeQL
Under development.
Building the tools from source
Install Rust, then run:
cargo build --release
Generating the database schema and QL library
The generated ql/src/ruby.dbscheme and ql/src/codeql_ruby/ast/internal/TreeSitter.qll files are included in the repository, but they can be re-generated as follows:
# Run the generator
cargo run --release -p ruby-generator
# Then auto-format the QL library
codeql query format -i ql/src/codeql_ruby/ast/internal/TreeSitter.qll
Building a CodeQL database for a Ruby program
First, get an extractor pack. There are two options:
- Either download the latest
codeql-ruby-packfrom Actions and unzip it twice, or - Run
./create-extractor-pack.sh(Linux/Mac) or.\create-extractor-pack.ps1(Windows PowerShell) and the pack will be created in theextractor-packdirectory.
Then run
codeql database create <database-path> -l ruby -s <project-source-path> --search-path <extractor-pack-path>
Running qltests
Run
codeql test run <test-path> --search-path <repository-root-path>
Languages
CodeQL
32.3%
Kotlin
27.5%
C#
17.1%
Java
7.7%
Python
4.6%
Other
10.6%