Frecuentemente publicamos actualizaciones de nuestra documentación. Es posible que la traducción de esta página esté en curso. Para conocer la información más actual, visita la documentación en inglés. Si existe un problema con las traducciones en esta página, por favor infórmanos.

Configurar NuGet para usar con el Paquete de registro de GitHub

Puedes configurar NuGet para publicar paquetes en Registro del paquete de GitHub y para usar los paquetes almacenados en Registro del paquete de GitHub como dependencias en un proyecto .Net.

Registro del paquete de GitHub se encuentra actualmente disponible en la versión beta de acceso público limitado. Para obtener más información, consulta "Acerca de Registro del paquete de GitHub."

En este artículo

Autenticar a Registro del paquete de GitHub

Debes usar un token de acceso personal con los alcances read:packages y write:packages para publicar y eliminar paquetes públicos en el Registro del paquete de GitHub con NuGet. Tu token de acceso personal también debe tener el alcance repo cuando el repositorio es privado. Para obtener más información, consulta "Crear un token de acceso personal para la línea de comando".

Puedes configurar nuget para usar tu token cuando subes nuevos paquetes al agregar Registro del paquete de GitHub como Source para el cliente nuget. Reemplaza OWNER en el parámetro de alcance con el nombre de organización o usuario GitHub que contiene el repositorio donde publicarás el paquete.

nuget sources Add -Name "GPR" \
     -Source "https://nuget.pkg.github.com/OWNER/index.json" \
     -UserName USERNAME -Password TOKEN

También puedes usar un GITHUB_TOKEN para publicar y consumir paquetes en el Registro del paquete de GitHub de un flujo de trabajo de Acciones de GitHub sin almacenar ni administrar un token de acceso personal. Para obtener más información acerca de GITHUB_TOKEN, consulta "GITHUB_TOKEN secret".

Puedes usar un script para insertar tu GITHUB_TOKEN en el archivo de configuración adecuado para el Registro del paquete de GitHub. Agrega el Registro del paquete de GitHub como repositorio o registro alternativo en el archivo de configuración para el cliente del paquete, además de tu nombre de usuario de GitHub y un token de acceso personal con los alcances adecuados. Los pasos exactos para crear un archivo de configuración varían por tipo de paquete.

Publicar un paquete

Puedes publicar un paquete NuGet para Registro del paquete de GitHub en OWNER usando la CLI (interfaz de línea de comandos) nuget para especificar Source. A partir del ejemplo anterior, especifica GPR como la fuente del paquete y reemplaza TU PAQUETE con el nombre de tu paquete.

$ nuget push YOUR-PACKAGE.nupkg -Source "GPR"

Puedes acceder a tus paquetes desde esta URL reemplazando OWNER por el nombre de tu organización o tu nombre de usuario de GitHub y reemplazando REPOSITORY por el nombre de tu repositorio:

https://github.com/OWNER/REPOSITORY/packages

Publicar múltiples paquetes en el mismo repositorio GitHub

Cuando publiques un paquete, por defecto Registro del paquete de GitHub usa el nombre del paquete para determinar el repositorio GitHub donde será publicado. Por ejemplo, un paquete llamado odata-client se publicaría en el repositorio OWNER/odata-client GitHub.

If you would like to change the repository where the package is published, or publish multiple packages to the same repository, you can include the URL to the GitHub repository in the repository field of the package's .nuspec file. GitHub corresponderá el repositorio en función de ese campo, en lugar del nombre del paquete.

  1. Add the URL of the GitHub repository in the repository field of the package's .nuspec file.

    <?xml version="1.0" encoding="utf-8"?>
    <package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
        <metadata>
        <id>sample</id>
        <version>1.2.3</version>
        <authors>Kim Abercrombie, Franck Halmaert</authors>
        <description>Sample exists only to show a sample .nuspec file.</description>
        <language>en-US</language>
        <repository type="git" url="https://github.com/my-org/my-custom-repo"/>
        </metadata>
    </package>

    Nota: Si tienes un archivo .csproj archivo creado por Visual Studio, la versión que utilices en tu archivo .nuspec debe coincidir con la versión de tu archivo .csproj.

  2. Crea el paquete usando la configuración que aparece en el archivo .nuspec del paquete.

    $ dotnet pack --configuration Release
  3. Publica el paquete nuevo en GitHub, reemplazando YOUR-PACKAGE por el nombre de tu paquete.

    $ nuget push YOUR-PACKAGE.nupkg -Source "GPR"

Para obtener más información sobre la creación de tu paquete, consulta "Crear y publicar un paquete" en la documentación de Microsoft.

Recibir eventos de registro de paquetes

Puedes recibir eventos de webhooks cuando un paquete se publica o se actualiza. Para obtener más información, consulta "RegistryPackageEvent" en la documentación del programador de GitHub.

Instalar un paquete

Usar paquetes de GitHub en tus proyectos es similar al uso de paquetes de nuget.org. Agrega las dependencias de tu paquete a tu package.config especificando el nombre del paquete y la versión.

  1. Autenticar a Registro del paquete de GitHub con nuget source Add. Para obtener más información, consulta "Autenticar a Registro del paquete de GitHub".
  2. Configura packages.config para usar el paquete. Por ejemplo, este packages.config usa el paquete octo-app como una dependencia.

     <?xml version="1.0" encoding="utf-8"?>
       <packages>
         <package id="octo-app" version="3.1.1" />
       </packages>
     </xml>
  3. Restaurar todos los paquetes.

    $ nuget restore

Para obtener más información sobre cómo usar un packages.config en tu proyecto, consulta "Trabajar con paquetes NuGet" en la documentación de Microsoft.

Eliminar un paquete

To avoid breaking projects that may depend on your packages, Registro del paquete de GitHub does not support deleting published versions of a package or an entire published package for public repositories. En circunstancias especiales, como cuando existen motivos legales o para cumplir con los estándares del GDPR, puedes solicitar la eliminación de un paquete a través del Soporte de GitHub. Contáctate con el Soporte de GitHub usando nuestro formulario de contacto y el asunto "Registro del paquete de GitHub".

You can delete private packages via GitHub's API. For more information, see "Access to package version deletion" in la documentación del programador de GitHub.

Pregunta a una persona

¿No puedes encontrar lo que estás buscando?

Contáctanos