feat(ci): CodeQL advanced setup that skips plots/** - #11200
Conversation
The default setup scanned five languages on every push to an implementation/* branch and every impl-* pull request; during the 4-slot backfill of 2026-09-02 up to 23 CodeQL runs waited in the runner queue at once, ahead of the pipeline's own jobs. The workflow keeps the same languages and weekly schedule but ignores plots/** both as a trigger and inside the analysis. Default setup has to be switched off in the repository settings for the workflow's uploads to be accepted. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SrKzcwZBnref1sWYtdXynu
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SrKzcwZBnref1sWYtdXynu
There was a problem hiding this comment.
🟡 Changes recommended
The changelog update introduces a duplicate ### Changed section under [Unreleased], which should be consolidated to keep the changelog structure consistent.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
Switches CodeQL from GitHub’s default setup to an advanced CodeQL workflow so the repository can exclude generated plot implementations under plots/**, reducing runner queue pressure caused by impl-* pipeline activity.
Changes:
- Add an advanced CodeQL workflow (
.github/workflows/codeql.yml) that excludesplots/**in both triggers and analysis config. - Document the new workflow in
docs/workflows/overview.md. - Add a changelog entry describing the CodeQL setup change.
File summaries
| File | Description |
|---|---|
docs/workflows/overview.md |
Adds codeql.yml to the workflow overview table with its purpose and exclusions. |
CHANGELOG.md |
Records the CodeQL advanced-setup switch under [Unreleased]. |
.github/workflows/codeql.yml |
Introduces the advanced CodeQL workflow with plots/** excluded from triggers and analysis. |
Review details
- Files reviewed: 3/3 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
There was a problem hiding this comment.
🟢 Approval recommended
The workflow, docs, and changelog changes are consistent with the PR’s stated goal and correctly exclude plots/** at both trigger and analysis levels.
Review details
- Files reviewed: 3/3 changed files
- Comments generated: 0 new
- Review effort level: Lite
Review feedback: [Unreleased] already had a Changed heading; a second one broke the Keep-a-Changelog structure. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SrKzcwZBnref1sWYtdXynu
There was a problem hiding this comment.
🟢 Approval recommended
The workflow, documentation, and changelog updates are consistent with the PR description and correctly exclude plots/** from both triggers and analysis.
Review details
- Files reviewed: 3/3 changed files
- Comments generated: 0 new
- Review effort level: Lite
There was a problem hiding this comment.
🟢 Approval recommended
The workflow and documentation changes are consistent with existing repo workflow conventions (SHA pinning, concurrency patterns) and correctly exclude plots/** at both trigger and analysis levels.
Review details
- Files reviewed: 3/3 changed files
- Comments generated: 0 new
- Review effort level: Lite
Summary
implementation/*branch and every impl-* PR triggered a full five-language scan. During the 4-slot backfill of 2026-09-02 up to 23 CodeQL runs waited in the runner queue at once, ahead of the pipeline's own jobs..github/workflows/codeql.ymlis the advanced-setup equivalent: same languages (actions,javascript-typescript,python), weekly cron,push/pull_requestonmainwithpaths-ignore: plots/**, and the same exclusion inside the analysis config so a docs-only push does not scan thousands of generated plot files. Actions are SHA-pinned (codeql-actionv4.37.9).Plan
N/A
Test plan
plots/**); the threeAnalyze (...)jobs may report an upload conflict until default setup is switched off — expected.mainoutsideplots/**runs all three analyses green; the next impl-* PR starts no CodeQL run.🤖 Generated with Claude Code
https://claude.ai/code/session_01SrKzcwZBnref1sWYtdXynu