GitHub Packages is a software-package hosting service, like 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.
- The GitHub Package Registry allows you to develop your code and host your packages in one place.
- User can use packages from the GitHub Package Registry as a dependency in your source code on GitHub.
- User can integrate GitHub Packages with GitHub APIs, GitHub Actions, and webhooks to create an end-to-end DevOps workflow that includes your code, CI, and deployment solutions.
- You can view a package’s README, as well as metadata such as licensing, download statistics, version history, and more on GitHub. For more information, see Viewing packages.
Types of Packages
GitHub Packages offers different package registries for commonly used package managers, such as npm, RubyGems, Apache Maven, Gradle, Docker, and NuGet. GitHub’s Container registry is optimized for containers and supports Docker and OCI images. To know more about packages registry, check here Working with a GitHub Packages registry.
Supported clients and format
These are the package formats and clients that GitHub support when you want to register a package using GitHub.
Publishing a package
You can publish a package to GitHub Packages to make the package available for others to download and re-use.
- You can publish packages in a public repository (public packages) to share with all of GitHub, or in a private repository (private packages) to share with collaborators or an organization.
- A repository can be connected to more than one package.
- To prevent confusion, make sure the README and description clearly provide information about each package.
Example: Deploying a maven package to GitHub packages
- First we need to write a pom.xml file which is only required for maven package to get published.
- Write an action which will deploy the package to GitHub environment.
- Now you can easily access package after it get successfully deployed.
Pricing
GitHub packages is free for both public repository and self- hosted runner. For private package each user receives certain of free package. Any usage beyond the included amounts is controlled by spending limits.
Minutes reset every month, while storage usage does not.