Home / Storage
GitHub Container Registry (GHCR) via ORAS
ghcr.ioRegistrystorage/github-container-registry-via-oras-known-numbers-re-veriJSONcomparereport an errorprovider JSON
- Free allowance
- Container image storage and bandwidth are free: "Container image storage and bandwidth for the Container registry is currently free.
- Verdict
- ★ qualifiesusable as stated; the read path was probed
- Cost
- free tier
- Identity
- anonymous?placeholder, not evidence; card unknown, phone unknown
- Binding limit
- noneno named constraint binds
- Evidence
- documented6 sources; a first-party page was read and the sentence quoted
- Freshness
- stale on 2026-11-21checked 2026-10-21 (inherited); stale on 2026-11-21
| Free tier | Container image storage and bandwidth are free: "Container image storage and bandwidth for the Container registry is currently free. If you use Container registry, you'll be informed at least one month in advance of any change to this policy." Ceiling is per-blob, not per-account: "The Container registry has a 10 GB size limit for each layer" and "a 10 minute timeout limit for uploads". unit GB; metered on stored-bytes |
|---|
| Price | none stated |
|---|
| Identity | anonymous (inferred, not read) not published |
|---|
| Egress | Free/unmetered per the billing page note above; blobs 307-redirect to pkg-containers.githubusercontent.com (Azure Blob, Fastly fronted). |
|---|
| Per-object cap | not stated |
|---|
| Retention | not stated |
|---|
| Interface | oci oci |
|---|
| Tooling | oras-project/oras (2,474 stars) — oras push with --artifact-type, one file per layer, so the 10 GB/layer cap becomes the per-file cap. Docker/skopeo/crane also work. Androsh7/layerstash (1 star) is a purpose-built 'Data Storage Tool for Docker Hub and GHCR'. |
|---|
| Composes with | unlimited repos x unlimited tags/versions x (10 GB per blob). A 30 TiB corpus = 3,000 x 10 GB ORAS layers, spread over any number of repos/tags; multiply by unlimited accounts and orgs. Effectively unbounded, capped only by upload throughput. |
|---|
| Reliability | Anonymous pull verified end-to-end; nothing expires. The 10-minute upload timeout is the real constraint on large single layers from a slow link — use several smaller layers. |
|---|
| Evidence note | documented The page states the number in the record; the claim is documented, not measured. |
|---|
| Parsed numbers | |
|---|
Evidence 6
More fields 1
| verified | [{"url": "https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry","date": "2026-10-22","via": null,"http_status": 200,"bytes": 17000,"sha256": "4b3a2c0a26a56c2a4cfd47016d4f6a9c5f388b00b9a4eb57386569eab7a9495b","pattern_found": true,"what_changed": "no change: the page still states the claim","capture": null}] |
|---|
Unknown values 4
- per object cap notes: the field may be stated in a source that was not read
- per object cap stated: the field may be stated in a source that was not read
- retention notes: the field may be stated in a source that was not read
- retention stated: the field may be stated in a source that was not read