fshy

Home / GitHub

GitHub Packages - public packages (npm/Maven/NuGet/RubyGems)

github.com/features/packagesRegistrystorage/github-packages-public-packagesJSONcomparereport an errorprovider JSON

Sibling records disagree:

Free allowance
Unlimited for PUBLIC packages: 'GitHub Packages usage is free for public packages.
Verdict
caveatusable, with a named limit or an unprobed read path
Cost
free tier
Identity
email?placeholder, not evidence; card unknown, phone unknown
Binding limit
noneno named constraint binds
Evidence
reported2 sources; a third party said so
Freshness
stale on 2026-11-05checked 2026-10-21 (inherited); stale on 2026-11-05
Free tierUnlimited for PUBLIC packages: 'GitHub Packages usage is free for public packages. In addition, data transferred in from any source is free.' Private packages consume the shared 500 MB/2 GB/50 GB plan pool.
unit GB; metered on unstated
Pricenone stated
Identityemail (placeholder) not published
EgressFree for public packages. Paid only for downloads from private packages.
Per-object capnot stated
Retentionnot stated
Interfacerest rest
Toolingnpm/mvn/nuget/gem clients directly; standard package-manager tooling, no wrapper needed. (GHCR is the container variant and is on the known-list, so this entry is about the non-container registries.)
Composes withUnlimited public packages x unlimited versions, each bounded only by the per-ecosystem file cap. Multiplied by unlimited orgs/accounts.
ReliabilityImmutable versions; deletion requires explicit action. Package-manager clients are the bottleneck for bulk blobs (chunking needed).
Evidence 2
datesourcewhat it proved
2026-10-21docs.github.com/en/billing/concepts/product-billing/github-ppart of the text of Free tier, above
2026-10-21docs.github.com/en/packages/learn-github-packages/about-githsame statement repeated in the packages overview
Unknown values 5
  • $.binding_note boilerplate
  • $.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