About GitHub Package Registry

GitHub Package Registry is a software package hosting service, similar to npmjs.org, rubygems.org, or hub.docker.com, that allows you to host your packages and code in one place. You can host software packages privately or publicly and use them as dependencies in your projects.

GitHub Package Registry is currently available in a limited public beta. To request to join the limited public beta, see the GitHub Package Registry page. You should avoid using GitHub Package Registry for high-value workflows and content during the beta period.

In this article

About GitHub Package Registry

GitHub Package Registry allows you to develop your code and host your packages in one place. You can use packages from GitHub Package Registry as a dependency in your source code on GitHub.

GitHub uses the README in your repository to generate the package's description, and you can edit it to reflect details about the package or installation process. GitHub adds metadata for each package version that includes links to the author, repository, commit SHA, version tags, and date. To see an example registry package page, see the @Codertocat/hello-world-npm package.

Registry package page

These are some examples of how GitHub Package Registry might benefit your workflow:

Supported clients and formats

GitHub Package Registry uses the native package tooling commands you're already familiar with to publish, query, download, and change package versions.

GitHub Package Registry currently supports these clients and formats.

Package client Package format Description
npm package.json Node Package Manager for JavaScript. For more information, see "Configuring npm for use with GitHub Package Registry."
gem Gemfile Ruby Gem Package manager for Ruby. For more information, see "Configuring RubyGems for use with GitHub Package Registry."
mvn pom.xml Apache Maven Project management and comprehension tool for Java. For more information, see "Configuring Apache Maven for use with GitHub Package Registry."
gradle build.gradle or build.gradle.kts Gradle build automation tool for Java. For more information, see "Configuring Gradle for use with GitHub Package Registry."
docker container Docker container management platform. For more information, see "Configuring Docker for use with GitHub Package Registry."
nuget nupkg NuGet package management for .NET. For more information, see "Configuring NuGet for use with GitHub Package Registry."

Searching packages on GitHub

You can search for packages on GitHub by navigating to https://github.com/search and entering a package name.

To view registry packages, click Packages in the left sidebar.

Searching registry packages

Deleting a package

To avoid breaking projects that may depend on your packages, GitHub Package Registry does not support deleting published versions of a package or an entire published package for public repositories. Under special circumstances, such as for legal reasons or to conform with GDPR standards, you can request deleting a package through GitHub Support. Contact GitHub Support using our contact form and the subject line "GitHub Package Registry."

You can delete private packages via GitHub's API. For more information, see "Access to package version deletion" in the GitHub Developer documentation.

Contacting support

If you're a participant in the limited public beta, please contact GitHub Support using our contact form and the subject line "GitHub Package Registry."

If you're not currently participating in the limited public beta, you can request to join the limited public beta on the GitHub Package Registry page.

Ask a human

Can't find what you're looking for?

Contact us