GitHub: a push is blocked by push rules
Push rulesets block pushes to a private or internal repository, and to that repository's entire fork network, based on file paths, file path lengths, file extensions and file sizes. Push rules do not target branches: they apply to every push to the repository. A commit that breaks one of them cannot be pushed, so it does not reach GitHub, and no pull request can include it until the commits are changed (GitHub's about rulesets, checked October 26, 2026).
"target": "push",
"rules": [ { "type": "max_file_size", "parameters": { "max_file_size": 10 } },
{ "type": "file_path_restriction",
"parameters": { "restricted_file_paths": ["test/demo/**/*"] } } ]
The four push rules
- Restrict file paths: commits that include changes in the listed paths cannot be pushed. Paths use
fnmatchsyntax:test/demo/**/*blocks everything intest/demo/, andtest/docs/pushrules.mdblocks that one file. Up to 200 entries of up to 200 characters each (GitHub's available rules for rulesets). - Restrict file path length: commits that include a file path longer than the set number of characters cannot be pushed.
- Restrict file extensions: commits that include files with the listed extensions cannot be pushed. Up to 200 entries of up to 200 characters each.
- Restrict file size: commits with a file over the set size cannot be pushed. In the REST API the limit is given in megabytes, from 1 to 100, and it does not apply to Git Large File Storage (GitHub's REST API endpoints for rules).
Where they apply
- The whole fork network: a fork of a repository with push rulesets gets the same push rules, and for a fork, only the people who may bypass a push rule in the root repository may bypass it.
- Some REST API endpoints too: push rulesets apply to "Create a blob", "Create a tree" and "Create or update file contents" (GitHub's troubleshooting rules).
- Large pushes: with push rulesets, a push may update at most 1,000 references; a push over that limit is rejected.
- Which repositories: push rulesets can be created for private and internal repositories.
What to do
- Change the commits: the rules judge the commits being pushed ("commits that include changes in specified file paths" and so on), so the commits that are not on GitHub yet have to be changed until none of them breaks a rule. GitHub's troubleshooting says that, depending on the rules, you may need to edit your commit history locally before you can push, for example with an interactive rebase.
- Check the allowed exceptions: "Restrict file paths" and "Restrict file size" can list allowed exceptions in
fnmatchsyntax, such as**/gradle/wrapper/*.jar. A repository, organization or enterprise administrator can add one for a file that must stay pushable. Only these two rules support allowed exceptions; for one file of an otherwise blocked file type, GitHub points to "Restrict file paths" with a pattern such as**/*.jar. - Find the rule: anyone with read access can view a repository's active rulesets. In the repository's settings, Rules then Insights shows the actions checked against rulesets, the ones that failed, and, for a failed one, which rules failed (GitHub's managing rulesets for a repository). The same insights are in the REST API for rule suites.
- A large file the project needs: the file size limit does not apply to Git Large File Storage.
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. The plugin does not push commits itself: when you create a pull request from a branch that is not on GitHub yet, it says so and offers the IDE's Push dialog, where a push these rules refuse fails. 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 scanning results · 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 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 · 日本語