Overview
The CodeQL package provides fully autonomous security analysis using GitHub’s CodeQL engine. It automatically detects languages, builds systems, creates cached databases, and executes security queries with zero configuration required.Purpose
Automate CodeQL security analysis with:- Auto-detection: Languages, build systems, and configurations
- Database caching: SHA256-based reuse for unchanged repos
- Parallel execution: Multi-language analysis runs concurrently
- 10 languages supported: Java, Python, JavaScript, Go, C/C++, C#, Ruby, Swift, Kotlin
- SARIF output: Standardized vulnerability format
Architecture
Quick Start
Fully Autonomous
- ✓ Detects languages (Java, Python, JavaScript, etc.)
- ✓ Detects build systems (Maven, npm, go modules, etc.)
- ✓ Generates build commands
- ✓ Creates CodeQL databases (cached)
- ✓ Runs security-and-quality suites
- ✓ Generates SARIF output
Specify Languages
Custom Build Command
Python API
CodeQL Agent
Language Detection
Build System Detection
Database Manager
Query Runner
Core Classes
CodeQLAgent
Main orchestrator for autonomous CodeQL workflow.LanguageDetector
Confidence-based language detection.BuildDetector
Auto-detect build systems and generate commands.DatabaseManager
Manage database lifecycle with caching.QueryRunner
Execute CodeQL queries and generate SARIF.Supported Languages
| Language | Build Systems | Suite |
|---|---|---|
| Java | Maven, Gradle, Ant | java-security-and-quality.qls |
| Python | pip, Poetry, setuptools | python-security-and-quality.qls |
| JavaScript | npm, Yarn, pnpm | javascript-security-and-quality.qls |
| TypeScript | npm, Yarn | javascript-security-and-quality.qls |
| Go | go modules | go-security-and-quality.qls |
| C/C++ | CMake, Make, Meson | cpp-security-and-quality.qls |
| C# | dotnet, MSBuild | csharp-security-and-quality.qls |
| Ruby | Bundler, Rake | ruby-security-and-quality.qls |
| Swift | Swift Package Manager | swift-security-and-quality.qls |
| Kotlin | Gradle | java-security-and-quality.qls |
Configuration
Environment Variables
RaptorConfig Settings
Incore/config.py:
Output Structure
Workflow Report
Performance
Database Creation
- Small repo (<1K files): 2-5 minutes
- Medium repo (1K-10K files): 5-15 minutes
- Large repo (10K+ files): 15-30 minutes
Query Execution
- Security suite: 2-10 minutes per language
- Extended suite: 5-20 minutes per language
Caching Benefits
- Repeat analysis: <1 second (database reuse)
- Cache hit rate: ~80% for active development
Related Packages
- Static Analysis - Semgrep scanning
- LLM Analysis - AI-powered analysis of CodeQL findings
- Exploitability Validation - Validate exploitability
Best Practices
- Let auto-detection work - specify languages only if needed
- Use database caching - massive speedup for repeat analysis
- Parallel databases - analyze multi-language repos faster
- Custom build commands - for complex build systems
- Extended suites - use for comprehensive security audits