| | --- |
| | title: Publishing a package |
| | intro: 'You can publish a package to {% data variables.product.prodname_registry %} to make the package available for others to download and re-use.' |
| | product: '{% data reusables.gated-features.packages %}' |
| | redirect_from: |
| | - /github/managing-packages-with-github-packages/publishing-a-package |
| | - /packages/publishing-and-managing-packages/publishing-a-package |
| | permissions: Anyone with write permissions for a repository can publish a package to that repository. |
| | versions: |
| | fpt: '*' |
| | ghes: '*' |
| | ghec: '*' |
| | --- |
| | |
| | {% data reusables.package_registry.packages-ghes-release-stage %} |
| | |
| | ## About published packages |
| | |
| | You can help people understand and use your package by providing a description and other details like installation and usage instructions on the package page. {% data variables.product.github %} provides metadata for each version, such as the publication date, download activity, and recent versions. For an example package page, see [@Codertocat/hello-world-npm](https://github.com/Codertocat/hello-world-npm/packages/10696?version=1.0.1). |
| | |
| | {% data reusables.package_registry.public-or-private-packages %} 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. |
| |
|
| | {% ifversion fpt or ghec %} |
| | If a new version of a package fixes a security vulnerability, you should publish a security advisory in your repository. {% data variables.product.prodname_dotcom %} reviews each published security advisory and may use it to send {% data variables.product.prodname_dependabot_alerts %} to affected repositories. For more information, see [AUTOTITLE](/code-security/security-advisories/working-with-repository-security-advisories/about-repository-security-advisories). |
| | {% endif %} |
| | |
| | ## Publishing a package |
| | |
| | {% data reusables.package_registry.packages-classic-pat-only %} |
| |
|
| | You can publish a package to {% data variables.product.prodname_registry %} using any {% ifversion fpt or ghec %}supported package client{% else %}package type enabled for your instance{% endif %} by following the same general guidelines. |
| | |
| | 1. Create or use an existing {% data variables.product.pat_v1 %} with the appropriate scopes for the task you want to accomplish. For more information, see [AUTOTITLE](/packages/learn-github-packages/about-permissions-for-github-packages). |
| | 1. Authenticate to {% data variables.product.prodname_registry %} using your {% data variables.product.pat_v1 %} and the instructions for your package client. |
| | 1. Publish the package using the instructions for your package client. |
| |
|
| | For instructions specific to your package client, see [AUTOTITLE](/packages/working-with-a-github-packages-registry). |
| |
|
| | After you publish a package, you can view the package on {% data variables.product.prodname_dotcom %}. For more information, see [AUTOTITLE](/packages/learn-github-packages/viewing-packages). |
| | |