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 RubyGems para usar con el Paquete de registro de GitHub

Puedes configurar RubyGems para publicar un paquete con Registro del paquete de GitHub y usar ese paquete como una dependencia en un proyecto Ruby con Bundler.

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

Prerrequisitos

  • Debes tener rubygems 2.4.1 o superiores

    $ gem --version
  • Debes tener bundler 1.6.4 o superiores

    $ bundle --version
    Bundler version 1.13.7
  • Instala keycutter para administrar múltiples credenciales

    $ gem install keycutter

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 RubyGems. 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".

  1. Configura gem para usar tu token al publicar nuevas gemas el editar ~/.gem/credentials o crearlo si no existe. Reemplaza TOKEN con tu token de acceso personal y agrega esta línea:

    ---
    :github: Bearer TOKEN
  2. Configura Bundler para usar tu token. Reemplaza OWNER por el nombre de usuario o de organización de GitHub que contiene el repositorio donde quieres publicar la gema e ingresa tu nombre de usuario de GitHub y token de acceso personal.

    $ bundle config https://rubygems.pkg.github.com/OWNER USERNAME: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 usar el comando gem push para publicar un paquete en Registro del paquete de GitHub.

$ gem push --key github \
--host https://rubygems.pkg.github.com/OWNER \YOUR-GEM.gem

Por defecto, el nombre del paquete se usa para determinar el repositorio que publicará la gema. Por ejemplo, una gema denominada 'mygem' publicada en la organización 'my-org' se publica en el repositorio my-org/mygem GitHub.

Si deseas publicar múltiples gemas en el mismo repositorio, puedes incluir la URL en el repositorio GitHub del campo github_repo de los metadatos gemspec. Si incluyes este campo, GitHub corresponderá el repositorio en función de este valor, en lugar de hacerlo en función del nombre de la gema.

Por ejemplo:

gem.metadata = { "github_repo" => "ssh://github.com/OWNER/REPOSITORY" }

Para obtener más información sobre la creación de tu gema, consulta "Crear tu propia gema" en la documentación de RubyGems.

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

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 las gemas de Registro del paquete de GitHub en tu proyecto es similar a usar gemas de rubygems.org. Puedes agregar tu usuario u organización GitHub como una fuente en tu Gemfile, y extraer las gemas desde allí.

Por ejemplo, aquí hay un Gemfile para una app Ruby on Rails simple:

source "https://rubygems.org"

gem "rails"

Agrega un nuevo bloqueo de source para tu usuario u organización GitHub que contenga el repositorio con tu gema en su interior. Por ejemplo, para modificar la misma app rails Gemfile:

source "https://rubygems.org"

gem "rails"

source "https://rubygems.pkg.github.com/OWNER" do
  gem "GEM NAME"
end

Para versiones Bundler anteriores a 1.7.0. agrega un nuevo source global en su lugar:

source "https://rubygems.pkg.github.com/OWNER"
source "https://rubygems.org"

gem "rails"
gem "GEM NAME"

Las credenciales que configuraste anteriormente con bundle config se usarán automáticamente cuando instales bundle. Para obtener más información sobre cómo usar bundler, consutla la documentación de bundler.io.

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