2021-09-20 09:52:26 +02:00
2021-09-20 09:52:26 +02:00
2021-09-15 14:59:42 +02:00
2021-09-02 17:57:56 +01:00
2021-08-26 18:50:04 -04:00
2021-01-18 15:54:39 +01:00
2021-09-03 14:27:04 +02:00
2021-09-03 13:10:54 +02:00
2021-08-31 14:22:26 +02:00
2021-08-26 18:48:53 -04:00

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/lib/ruby.dbscheme and ql/lib/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 -- --dbscheme ql/lib/ruby.dbscheme --library ql/lib/codeql/ruby/ast/internal/TreeSitter.qll
# Then auto-format the QL library
codeql query format -i ql/lib/codeql/ruby/ast/internal/TreeSitter.qll

Building a CodeQL database for a Ruby program

First, get an extractor pack. There are two options:

  1. Either download the latest codeql-ruby-pack from Actions and unzip it twice, or
  2. Run scripts/create-extractor-pack.sh (Linux/Mac) or scripts\create-extractor-pack.ps1 (Windows PowerShell) and the pack will be created in the extractor-pack directory.

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>

Writing database upgrade scripts

See this guide.

Description
CodeQL: the libraries and queries that power security researchers around the world, as well as code scanning in GitHub Advanced Security
Readme MIT 14 GiB
Languages
CodeQL 31.7%
Kotlin 27.1%
C# 16.4%
Java 7.5%
Python 4.5%
Other 12.6%