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.
{% 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. {% 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.
- 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.
- Authenticate to {% data variables.product.prodname_registry %} using your {% data variables.product.pat_v1 %} and the instructions for your package client.
- Publish the package using the instructions for your package client.
For instructions specific to your package client, see AUTOTITLE.
After you publish a package, you can view the package on {% data variables.product.prodname_dotcom %}. For more information, see AUTOTITLE.