TUESDAY, OCTOBER 13, 2026 Tech news, minus the noise.
N News Cast International Edition Subscribe
LIVE
Home  /  Dev
Dev

GitHub AI Scan Is GA — Catching the Pull-Request Bugs CodeQL Can't See

GitHub AI Scan is generally available, bringing LLM-powered vulnerability detection to pull requests in PHP, Shell, Terraform, Dockerfiles, JSP, and Blazor. Here's what it covers, what it costs, and how to use it without drowning in findings.

GitHub AI Scan Is GA — Catching the Pull-Request Bugs CodeQL Can't See
Source: Lisamarie Babik / Wikimedia Commons (CC BY 2.0)

GitHub AI Scan for pull requests went generally available on October 15, 2026, and it closes a gap that has annoyed engineering teams for years: CodeQL is superb at the languages it models, but it has stayed silent on whole chunks of real-world codebases — PHP, Shell/Bash, Terraform, Dockerfiles, JSP, and Blazor. AI Scan points a language model at exactly that blind spot, flagging likely vulnerabilities in the scripts and infrastructure definitions your static analysis never even looked at.

What GitHub AI Scan actually covers

After a public preview that opened in July, GitHub AI Scan is now available to everyone, and its value proposition is refreshingly narrow. CodeQL works by modeling how data flows through a program, which takes years of per-language engineering. An LLM doesn't need that model — it reads the code the way a reviewer does, pattern-matching against everything it has seen. That makes it a natural fit for the languages and frameworks CodeQL doesn't natively cover: PHP, Shell and Bash scripts, Terraform (HCL), Dockerfiles, JSP for Java, and Blazor for C#, plus others in the same long tail.

This matters because the long tail is where a lot of real incidents live. Nobody's PHP admin panel is anyone's pride and joy, but it's exactly the kind of code that gets deployed and forgotten. Your Terraform modules and Dockerfiles define the blast radius of everything else you ship. If you've been following the push to put AI deeper into the GitHub workflow, AI Scan is the defensive half of that story — less flashy than a coding assistant, more likely to save you from a 3 a.m. incident.

How GitHub AI Scan shows up in a pull request

Findings land right where you'd expect: alongside CodeQL results on the Conversation and Files changed tabs, marked with an 'AI' indicator so you can tell them apart at a glance. Each finding can include an explanation of the risk and a suggested autofix, which means the fix is often one click away rather than a research project.

That presentation is the smartest design decision in the whole feature. There's no new dashboard to check, no separate queue to triage. The findings show up in the review flow your team already uses, and you can work through them in VS Code or the web UI with the same muscle memory you use for everything else. Security tooling that demands a new workflow dies in the backlog; security tooling that rides the existing one gets used.

Why it's advisory only — and that's the right call

Here's the part that will make some security leads twitch: GitHub AI Scan findings are advisory only. They do not fail the code-scanning check, and they cannot block merges through ruleset requirements. You can't make them a required status check, full stop.

GitHub is right to draw that line. LLM findings are probabilistic — they're strong guesses, not proofs — and wiring guesses into merge gates is how you get a team that reflexively overrides security checks. A check that blocks merges and is wrong 10 percent of the time doesn't make you safer; it makes you stop reading the checks. Treat AI Scan the way you'd treat a sharp junior reviewer: worth listening to, not worth giving a veto.

A sane way to roll it out:

  • Enable it on repos with real exposure in the covered languages first — anything with public-facing PHP, shared Terraform modules, or Dockerfiles that run as root.
  • Triage AI findings on a weekly cadence, not per-PR, until you learn what its false-positive rate looks like on your codebase.
  • Never bolt it onto a required check or a merge queue gate, even via a wrapper — the feature deliberately won't support it.
  • Track which findings get fixed versus dismissed for a month; if the fix rate is low, the problem is your triage process, not the tool.

What it costs and where it doesn't run

The pricing story is straightforward if unglamorous. AI Scan is available for public repositories owned by organizations or personal accounts. Private and internal repos need GitHub Code Security or GitHub Advanced Security. You do not need a Copilot license, which is a welcome bit of unbundling.

It consumes Code Security AI Credits, billed under the 'Advanced Security' product in enterprise 'AI usage' billing, with SKU-level budget caps you can set. Translation: turn it on broadly, but set the budget cap first, then watch the burn for a billing cycle before you decide which repos deserve it permanently. LLM inference per pull request is not free, and Terraform-heavy monorepos generate a lot of pull requests.

Two hard exclusions to know about: it doesn't run on pull requests from forks, and it doesn't run on Dependabot-created PRs. The fork exclusion is the one that stings — open-source maintainers get plenty of drive-by contributions in exactly the languages AI Scan covers — but it's an understandable abuse-prevention call. If you maintain a popular public repo, your own PRs get scanned; your contributors' don't.

The bottom line for your team

GitHub AI Scan won't replace CodeQL, and it isn't trying to. It's the reviewer that actually reads your deploy scripts, your Dockerfiles, and that PHP you inherited — the files that have been flying under the security radar for a decade. Enable it where the blind spot is biggest, treat its findings as advice from a smart reviewer rather than verdicts from a judge, and cap the credits. That's the whole playbook, and it's a good one.

AS
News Cast Editorial Team

We cover AI, gadgets, startups and security — original reporting and explainers, written by humans, for humans. Got a tip? Reach us via the contact page.