GitHub Package Registry
Visit Website
github.com
Loading

GitHub Package Registry

Ship, share, and secure packages on GitHub with CLI tools, CI, and org controls
4.7 
Rating
52 votes
Your vote:
No screenshots
Visit Website
github.com
Loading

Start by treating your packages like code: build, version, and ship them from the same place you work. Pick your ecosystem—npm, Maven/Gradle, NuGet, RubyGems, or containers—and sign in with a token scoped for publishing. Add the registry settings to your project (for example, scope your npm org in .npmrc or add a repository entry in pom.xml). Then release exactly as you already do: npm publish, mvn deploy, dotnet nuget push, gem push, gradle publish, or docker push to ghcr.io. Use meaningful tags and semantic versions so teammates and automation can track changes. Link the package to a repository to surface README docs, license info, and releases alongside the artifact.

To install dependencies, point your tool to the same registry and use a read-only token. Restrict where installs can come from by scoping to your org and limiting visibility to the right teams. Set package permissions so only maintainers can push, while consumers get pull access. For JavaScript, keep private scopes in .npmrc; for .NET, prioritize your internal feed; for Java, declare the repository order; for containers, docker login once per host. Lock files and checksums keep builds reproducible, and you can audit versions through the repository’s package page to see who published what and when.

Automate releases with GitHub Actions. Trigger on tag creation, generate changelogs, bump versions from commit messages, run tests, and publish artifacts in a single workflow using GITHUB_TOKEN—no extra secrets required for most cases. For pre-releases, push canary builds from pull requests to a prerelease tag or separate channel, then promote the same commit to stable after approval. Use REST or GraphQL endpoints to query versions, clean up old builds, or kick off downstream jobs when a new version lands. Webhooks can notify chats, update docs, or fan out builds in other repos as soon as a package is available.

Operate at scale with consistent guardrails. Host libraries, containers, and tools next to source so access follows the same org and team permissions. Control visibility per package (internal or public) and set retention rules to prune stale versions. Track download counts and consumers to understand impact before deprecating a release. For containers on ghcr.io, rely on immutable digests, labels, and repository links to tie images back to commits. Global caching keeps installs fast for distributed teams, and co-locating code, issues, and artifacts simplifies reviews, incident response, and audits in one platform.

Review summary

Features

  • Works with npm, Maven/Gradle, NuGet, RubyGems, and OCI containers
  • Publish via standard CLI commands and CI pipelines
  • Authentication with GitHub tokens and fine-grained permissions
  • Private, internal, or public visibility controls
  • Org- and team-based access management and allowlists
  • REST and GraphQL APIs plus event webhooks for automation
  • Linked repositories for docs, releases, and commit history
  • Version insights, download metrics, and retention policies
  • Immutable container digests on ghcr.io with repository links
  • Global caching for fast pulls across regions

How It’s Used

  • Publish a private npm library from a monorepo and share it with selected teams
  • Push a company base image to ghcr.io and deploy it across services
  • Release a Java SDK publicly while keeping nightly snapshots internal
  • Automate semantic versioning and changelog generation with GitHub Actions
  • Promote a prerelease NuGet package to stable after QA approval
  • Deprecate old RubyGems builds and retain only supported versions
  • Trigger downstream builds when a new Maven artifact is available
  • Audit who published a package and when using linked repo activity
  • Speed up CI by caching dependency pulls from the nearest edge

Plans & Pricing

Free

Free

Storage: 500MB
Data transfer out within Actions: Unlimited
Data transfer out outside of Actions: 1GB per month
Same secure login for code and packages
Integrate packages with workflows
Reliable downloads via a global CDN
Simplify publishing
Trigger package installs

Pro

Custom

Storage: 2GB
Data transfer out within Actions: Unlimited
Data transfer out outside of Actions: 10GB per month
Additional storage: $0.25 per gigabyte
Additional data transfer out: $0.50 per gigabyte
Same secure login for code and packages
Integrate packages with workflows
Reliable downloads via a global CDN
Simplify publishing
Trigger package installs

Team

Custom

Storage: 2GB
Data transfer out within Actions: Unlimited
Data transfer out outside of Actions: 10GB per month
Additional storage: $0.25 per gigabyte
Additional data transfer out: $0.50 per gigabyte
Same secure login for code and packages
Integrate packages with workflows
Reliable downloads via a global CDN
Simplify publishing
Trigger package installs

Enterprise

Custom

Storage: 50GB
Data transfer out within Actions: Unlimited
Data transfer out outside of Actions: 100GB per month
Additional storage: $0.25 per gigabyte
Additional data transfer out: $0.50 per gigabyte
Same secure login for code and packages
Integrate packages with workflows
Reliable downloads via a global CDN
Simplify publishing
Trigger package installs

Comments

4.7
Rating
52 votes
5 stars
0
4 stars
0
3 stars
0
2 stars
0
1 stars
0
User

Your vote: