OSCR

Limits

File, push and repository sizes on GitHub, and OSCR's own caps. Your repositories live in your GitHub account, so GitHub's limits are the ones that apply; each figure links to GitHub's page that states it.

Each limit keeps the unit GitHub states it in; binary units: GiB (gibibyte) = 1,073,741,824 bytes, MiB (mebibyte) = 1,048,576 bytes; decimal units: GB (gigabyte) = 1,000,000,000 bytes.

File size

GitHub warns when you push a file larger than 50 MiB, and blocks a file larger than 100 MiB (100 mebibytes). Its web upload page accepts files up to 25 MiB. A larger file belongs in a release asset, a data archive or Git LFS: the large-files guide. Source: About large files on GitHub.

Push size

One push is at most 2 GB (2 gigabytes). A first push of a long history, or of a converted repository, can cross it. Source: Repository limits.

Troubleshooting the 2 GB push limit

Push the history in parts, oldest first: list the commits, push an older commit to the branch, then a newer one, until the branch is whole. Each part stays under the limit.

git log --oneline --reverse main
git push origin OLDER-COMMIT:refs/heads/main
git push origin NEWER-COMMIT:refs/heads/main
git push origin main

Source: GitHub's page on the push limit.

Repository size

GitHub asks that repositories stay small: ideally under 1 GB, and under 5 GB strongly recommended. Research code rarely comes near it; data does, and goes elsewhere (large files). Source: Repository limits.

Sizes on GitHub
WhatLimitSource
A file in git: GitHub warns above50 MiBGitHub's documentation
A file in git: GitHub blocks it above100 MiBGitHub's documentation
A file added through GitHub's web upload page25 MiBGitHub's documentation
One push2 GBGitHub's documentation
A repository, ideally under1 GBGitHub's documentation
A repository, strongly recommended under5 GBGitHub's documentation
A release asset (each file)under 2 GiBGitHub's documentation
Assets in one release1,000GitHub's documentation

Tree limits

Beyond these, GitHub's pages and its API slow down or stop listing: keep a directory to fewer entries (a folder of many small files is better as one archive in a release), and a repository's branches few.

Tree limits and repositories per account
WhatLimitSource
Entries in one directory3,000GitHub's documentation
Levels of directories50GitHub's documentation
Branches in one repository (advised)5,000GitHub's documentation
Repositories one account may own100,000GitHub's documentation

Push policy

Branch and tag updates per push: in a repository's settings, GitHub's push policy can limit how many branches and tags one push may update. It stops an accidental git push --mirror from overwriting or deleting every branch at once. When a push is refused for it, git's output names the setting. Source: Managing the push policy for your repository.

Branch and tag updates per push
WhatFigureSource
Branch and tag updates per push, by default when the policy is on5GitHub's documentation
Branch and tag updates per push, the lowest setting2GitHub's documentation
Branch and tag updates per push, refused above this when rulesets apply1,000GitHub's documentation

Push rule path exceptions

A push ruleset can refuse files by path, extension, path length or size. Since 2026-08-25 the path and size rules can exempt chosen paths: a size rule, for example, can let through the small folder of reference data a paper's figures are built from. Sources: Available rules for rulesets,GitHub's changelog.

OSCR's own caps

What passes through OSCR's Worker is capped so that the service stays free. A larger commit or asset goes through GitHub's own pages or git push, which OSCR never sees. The per-account counts are over the last 24 hours, and a refusal says when you can try again.

OSCR's caps
WhatCapSet by
One web action through the registry (a commit's files, a text)1 MiBOSCR
One release asset uploaded through the registry25 MiBOSCR
Repositories one account creates through the registry in 24 hours10OSCR
Repositories one account links in 24 hours20OSCR
Actions of every kind one account makes through the registry in 24 hours100OSCR

Billing

OSCR costs nothing and bills nothing: it asks for no payment method, and it has no plan to sell. What you use on GitHub is on your own GitHub account, under GitHub's plan.

GitHub Free's Git LFS quotas are per account: 10 GiB of storage and 10 GiB of downloads a month. Without a payment method on file, Git LFS is blocked for the account once a quota is spent, until the next month; with one, the excess is billed. Source: Git LFS billing.

GitHub Free's Git LFS quotas
WhatLimitSource
One file in Git LFS (GitHub Free)2 GBGitHub's documentation
LFS storage per account (GitHub Free)10 GiBGitHub's documentation
LFS downloads per account and month (GitHub Free)10 GiBGitHub's documentation

Budgets and usage alerts

Budgets and usage alerts are GitHub's: you set them on GitHub's billing pages, and GitHub sends the alerts. Usage is counted by calendar month. OSCR sets no budget and sees none of your usage. Sources: Budgets and alerts, Setting up budgets,Billing cycles.

GitHub Pages size limits

A GitHub Pages site built from your repository has its own limits. OSCR links a repository's Pages site, and never rebuilds or copies it. Source: GitHub Pages limits.

GitHub Pages
WhatLimitSource
A published GitHub Pages site1 GBGitHub's documentation
The source repository of a Pages site (recommended)1 GBGitHub's documentation

The hosting guides