GitHub: the merge waits for code scanning results
A branch ruleset can require code scanning results ("Require code scanning results"). If the repository is configured with code scanning, a pull request into that branch is then not merged while a required tool finds a code scanning alert of a severity the ruleset defines, while a required tool's analysis is still in progress, or while a required tool is not configured for the repository (GitHub's available rules for rulesets and set code scanning merge protection). Classic branch protection has no such setting; it is the ruleset rule code_scanning (checked October 26, 2026).
GET /repos/OWNER/REPO/rules/branches/BRANCH
[{ "type": "code_scanning", "parameters": { "code_scanning_tools": [
{ "tool": "CodeQL", "alerts_threshold": "errors", "security_alerts_threshold": "high_or_higher" } ] } }]
What the rule checks
- Each tool, with two levels: for every tool the ruleset names, "Alerts" is None, Errors, Errors and Warnings or All, and "Security alerts" is None, Critical, High or higher, Medium or higher or All. Through the REST API they are
alerts_threshold(none,errors,errors_and_warnings,all) andsecurity_alerts_threshold(none,critical,high_or_higher,medium_or_higher,all): the levels at which results that raise alerts, or security alerts, block a reference update (GitHub's REST API endpoints for rules). - Results for both sides: when the rule is configured, code scanning must be enabled and have results for both the commit and the reference being updated.
- Severity and security severity: every code scanning alert has a severity of Error, Warning or Note; each security alert found by CodeQL also has a security severity of Critical, High, Medium or Low, and when an alert has one, code scanning displays and uses it in preference to the severity (GitHub's code scanning alerts).
- Reading the rule: "Get rules for a branch" returns all active rules that apply to a branch, at whatever level they are configured; rules in rulesets that only evaluate, or are disabled, are not returned.
Where the results show on the pull request
- The check: for all configurations of code scanning, the check that contains its results is "Code scanning results", with each analysis tool's results shown separately, and new alerts on lines the pull request changed shown as annotations. By default the check fails if it finds any problem with a severity of
error,criticalorhigh; the repository settings can change those levels (GitHub's triaging code scanning alerts in pull requests). - When results reach a pull request: they appear as check results and annotations where code scanning is configured as a pull request check (by default limited to pull requests that target the default branch), or scans each time code is pushed, with the results mapped to any open pull requests.
- The analysis checks: with the CodeQL analysis workflow, a "CodeQL / Analyze (LANGUAGE)" check runs for each language before the results check. It may fail on configuration problems, or when the pull request breaks the build for a language the analysis compiles (C/C++, C#, Go, Java, Kotlin, Rust and Swift, for example).
What to do
- Read which tool holds it: the ruleset names the tools and their levels; the "Code scanning results" check shows each tool's results, and "View all branch alerts" opens every alert on the analyzed branch.
- An alert at a blocking level: fix it in the pull request (anyone with push access can; a new commit runs the checks again, and a fixed alert is closed and its annotation removed), or dismiss the alert from its annotation if it is not a real problem.
- Analysis in progress or failing: wait for the analysis checks, or open the failing "Analyze" check on the Checks tab; a pull request that breaks the build of a compiled language fails the analysis.
- A tool not configured, or no results: make sure the required tool runs for this pull request and for its target branch; a pull request check is by default limited to pull requests into the default branch, so a ruleset on other branches needs the analysis to run there too.
- Conversations on alerts: if the branch also requires conversation resolution, comments on code scanning alerts count (see the merge waits for conversations).
GitHub pull requests in IntelliJ IDEA
Pull Request Inbox for GitHub, a plugin by Lesstep for JetBrains IDEs 2024.1 or later, shows a pull request's reviews, checks and conversations next to the diff, and merges it with the methods the target branch allows. When GitHub calls the pull request blocked, its merge checks name what they can read: required checks that have not reported, a review still required, unresolved conversations and unsigned commits the rules hold against it, and the rule on the most recent push. Its checks list shows the code scanning checks with the others, and when the branch's rulesets require code scanning results, the merge checks of a blocked pull request say so and name each required tool with the alert levels that block. The review inbox, diffs and conversations are free; approving, commenting, resolving and merging are Pro (US$1.50 a month, with a 30-day trial).
GitHub is a trademark of GitHub, Inc.; IntelliJ IDEA is a trademark of JetBrains s.r.o. This page is not affiliated with or endorsed by GitHub, Inc. or JetBrains.
More: GitHub merge refused (405, 409) · GitHub review refused (422) · GitHub search 422 "Validation Failed" · "Resource not accessible by personal access token" · 401 "Bad credentials" · "Resource protected by organization SAML enforcement" · "API rate limit exceeded" · GitHub diff 406 "too_large", 3,000 files · GitHub line comment 422 "must be part of the diff" · GitHub branch update refused (422) · GitHub pull request not created (422, 403) · GitHub auto-merge refused · GitHub draft, ready for review or close refused · GitHub conversation not resolved · GitHub checks not shown (check runs 403) · GitHub file contents not read · GitHub compare refused (404, 422) · GitHub comment or reply refused (403 locked, archived) · GitHub merge method not allowed (405) · GitHub branch not found (404, 301) · GitHub Enterprise Server not reached · GitHub review request not shown · GitHub pull request list incomplete · GitHub 404 Not Found, renamed repositories (301, 307) · GitHub line comment outdated or not on the diff · GitHub pull requests not updating, notifications late · GitHub suggested change cannot be applied · GitHub required check stuck at "Expected" · GitHub code owner review required · GitHub merge blocked by unresolved conversations · GitHub merge blocked by unsigned commits · GitHub branch that merges through a merge queue · GitHub merge waiting for an approval of the most recent push · GitHub merge waiting for code quality results · GitHub merge blocked by a code coverage threshold · GitHub merge blocked by license compliance results · GitHub branch locked or its updates restricted · GitHub branch not deleted after merging · GitHub merge waiting for a team's approval (Required reviewers) · GitHub merge blocked by secret scanning alerts · GitHub stacked pull request not merging · GitHub push blocked by push rules · GitHub merge blocked by commit metadata rules · GitHub force push blocked · GitHub issue not closed by a merged pull request · GitHub pull request not checked out locally · GitHub pull request has merge conflicts · GitHub changes requested and dismissing a review · GitHub co-author not credited for a commit · GitHub dependency review check failed · GitHub Dependabot not rebasing its pull request · GitHub fork not syncing with upstream · GitHub pull request base branch not changing · GitHub pull request not reverting · GitHub pull request template not showing · GitHub pull request labels or assignees not added · GitHub pull request not closing or reopening · GitHub push blocked by push protection · GitHub pull request comment hidden · GitHub pull request blocked until deployments succeed · GitHub team review request replaced by members · GitHub pull request file no longer marked Viewed · GitHub pull request marked merged without being merged · GitHub Copilot review does not count as an approval · GitHub checks not running on a pull request a workflow created · GitHub Update branch button not shown on a pull request · GitHub checks failing on a Dependabot pull request · GitHub checks failing on a pull request from a fork · GitHub checks skipped by [skip ci] in a commit message · GitHub checks gone after the retention period · GitHub code review limits in a public repository · GitHub pull requests turned off or limited in a repository · GitHub checks run on every pull request in a stack · GitHub pull request showing commits already squash merged · GitHub pull request not showing a file diff · GitHub push to a pull request branch from a fork refused · GitHub check cancelled on a pull request · GitHub Rebase and merge not available · GitHub merge commit message not what you expected · GitHub pull request shows every line changed · GitHub API request timed out · GitHub pull request image or document diff not shown · GitHub review request refused (422) · GitHub pull request from Copilot: checks not running, approval not counted · GitHub push refused: GH006 and GH013 on a protected branch · GitHub "At least 1 approving review is required", approvals that do not count · GitHub pull request plugins for IntelliJ IDEA, compared · 日本語