Fast, parallel CodeQL scanning for monorepos, targeting only modified projects for efficiency.
Scans a monorepo by analyzing changed top-level project folders with CodeQL, skipping unmodified ones to optimize speed. Supports varied languages and build requirements.
Changes in:
/project-python/app.py
/project-java/src/main/java/com/example/App.java
Only project-python
and project-java
are scanned for PRs or merges to main
.
- Parallel Jobs: Scans modified project folders concurrently.
- Language Flexibility:
- Compiled (e.g., Java, C#): Needs build script at
.github/build/{project}.sh
. - Non-Compiled (e.g., Python, JS): No build required.
- One compiled language per project folder.
- Compiled (e.g., Java, C#): Needs build script at
- Selective Scans:
- PRs/merges: Scans only changed project folders.
- Skips specified directories via GitHub Actions
paths-ignore
.
- Full Scan Options:
- Manual trigger for all folders.
- Scheduled full scans.
- Place build scripts for compiled languages in
.github/build/{project}.sh
. - Configure GitHub Actions to:
- Identify changed projects.
- Run parallel CodeQL scans.
- Skip directories in
paths-ignore
.
- Enable manual and scheduled full scans.
This project is licensed under the terms of the MIT open source license. Please refer to the LICENSE for the full terms.