Nota: Este tipo de paquete podría no estar disponible para su instancia, ya que los administradores de sitio pueden habilitar o inhabilitar cada tipo de paquete compatible. Para obtener más información, consulte "Configurar la compatibilidad del ecosistema de paquetes para tu empresa".
Prerrequisitos
-
Debes contar con RubyGems 2.4.1 o superior. Para encontrar tu versión de RubyGems:
$ gem --version
-
Debes tener Bundler 1.6.4 o superiores. Para encontrar tu versión Bundler:
$ bundle --version Bundler version 1.13.7
-
Instala keycutter para administrar múltiples credenciales. Para instalar keycutter:
$ gem install keycutter
Autenticar a GitHub Packages
You need an access token to publish, install, and delete private, internal, and public packages.
You can use a personal access token (PAT) to authenticate to GitHub Packages or the GitHub Enterprise Server API. When you create a personal access token, you can assign the token different scopes depending on your needs. For more information about packages-related scopes for a PAT, see "About permissions for GitHub Packages."
To authenticate to a GitHub Packages registry within a GitHub Actions workflow, you can use:
GITHUB_TOKEN
to publish packages associated with the workflow repository.- a PAT with at least
packages:read
scope to install packages associated with other private repositories (whichGITHUB_TOKEN
can't access).
Para más información sobre el uso de GITHUB_TOKEN
en flujos de trabajo de GitHub Actions, vea "Autenticación en un flujo de trabajo".
Autenticarte con un token de acceso personal
Debes utilizar un token de acceso personal con los alcances adecuados para publicar e instalar paquetes en GitHub Packages. Para más información, vea "Acerca de GitHub Packages".
Puede autenticarse en GitHub Packages con RubyGems editando el archivo ~/.gem/credentials para publicar gemas, editando el archivo ~/.gemrc para instalar una única gema única o usando Bundler para rastrear e instalar una o más gemas.
Para publicar gemas nuevas, debe autenticarse en GitHub Packages con RubyGems editando el archivo ~/.gem/credentials para incluir su token de acceso personal. Cree un nuevo archivo ~/.gem/credentials si este archivo no existe.
Por ejemplo, puede crear o editar un archivo ~/.gem/credentials para incluir lo siguiente, reemplazando TOKEN por el token de acceso personal.
---
:github: Bearer TOKEN
Para instalar gemas, debe autenticarse en GitHub Packages editando el archivo ~/.gemrc para que el proyecto incluya https://USERNAME:TOKEN@REGISTRY-URL/OWNER/
. Debes reemplazar:
USERNAME
por su nombre de usuario de GitHub.TOKEN
por el token de acceso personal.OWNER
por el nombre de la cuenta de usuario o de organización a la que pertenece el repositorio que contiene el proyecto.REGISTRY-URL
por la dirección URL del registro de Rubygems de la instancia. Si en la instancia se ha habilitado el aislamiento de subdominios, userubygems.HOSTNAME
. Si en la instancia se ha deshabilitado el aislamiento de subdominios, useHOSTNAME/_registry/rubygems
. En cualquier caso, reemplace HOSTNAME por el nombre de host de su instancia de GitHub Enterprise Server.
Si no tiene un archivo ~/.gemrc, cree un nuevo archivo ~/.gemrc consultando este ejemplo.
---
:backtrace: false
:bulk_threshold: 1000
:sources:
- https://rubygems.org/
- https://USERNAME:TOKEN@REGISTRY-URL/OWNER/
:update_sources: true
:verbose: true
Para autenticarse con Bundler, configúrelo para que use el token de acceso personal, reemplazando USERNAME por el nombre de usuario de GitHub, TOKEN por su token de acceso personal y OWNER por el nombre de la cuenta de usuario u organización que posea el repositorio que contiene el proyecto. Reemplace REGISTRY-URL
por la dirección URL del registro de RubyGems de la instancia. Si en la instancia se ha habilitado el aislamiento de subdominios, use rubygems.HOSTNAME
. Si en la instancia se ha deshabilitado el aislamiento de subdominios, use HOSTNAME/_registry/rubygems
. En cualquier caso, reemplace HOSTNAME por el nombre de host de su instancia de GitHub Enterprise Server.
$ bundle config https://REGISTRY-URL/OWNER USERNAME:TOKEN
Publicación de un paquete
Predeterminadamente, GitHub publica el paquete en un repositorio existente con el mismo nombre que éste. Por ejemplo, al publicar octo-gem
en la organización octo-org
, GitHub Packages publica la gema en el repositorio de octo-org/octo-gem
. Para obtener más información sobre cómo crear la gema, consulte "Crear su propia gema" en la documentación de RubyGems.
Después de que publiques un paquete, puedes verlo en GitHub. Para más información, vea "Visualización de paquetes".
-
Autentícate en GitHub Packages. Para obtener más información, vea "Autenticación en GitHub Packages".
-
Compile el paquete a partir de gemspec para crear el paquete .gem.
gem build OCTO-GEM.gemspec
-
Publique un paquete en GitHub Packages, reemplazando
OWNER
por el nombre de la cuenta de usuario u organización que posee el repositorio que contiene el proyecto yOCTO-GEM
por el nombre del paquete de gemas. ReemplaceREGISTRY-URL
por la dirección URL del registro de Rubygems de la instancia. Si en la instancia se ha habilitado el aislamiento de subdominios, userubygems.HOSTNAME
. Si en la instancia se ha deshabilitado el aislamiento de subdominios, useHOSTNAME/_registry/rubygems
. En cualquier caso, reemplace HOSTNAME por el nombre de host de su instancia de GitHub Enterprise Server.$ gem push --key github \ --host https://REGISTRY-URL/OWNER \ OCTO-GEM-0.0.1.gem
Publicar múltiples paquetes en el mismo repositorio
Para publicar varias gemas en el mismo repositorio, puede incluir la dirección URL en el repositorio de GitHub en el campo github_repo
de gem.metadata
. Si incluye este campo, GitHub buscará coincidencias de repositorio en función de este valor en vez de utilizar el nombre de la gema. Reemplace HOSTNAME por el nombre de host de your GitHub Enterprise Server instance.
gem.metadata = { "github_repo" => "ssh://HOSTNAME/OWNER/REPOSITORY" }
Instalación de un paquete
Puede usar gemas de GitHub Packages de forma muy similar a las gemas de rubygems.org. Debe autenticarse en GitHub Packages agregando su usuario u organización de GitHub como origen en el archivo ~/.gemrc o mediante Bundler, editando el archivo Gemfile.
-
Autentícate en GitHub Packages. Para obtener más información, vea "Autenticación en GitHub Packages".
-
Para Bundler, agregue su usuario u organización de GitHub como origen en el archivo Gemfile para extraer gemas de este nuevo origen. Por ejemplo, puede agregar un nuevo bloque de
source
al archivo Gemfile que use GitHub Packages solo para los paquetes que especifique, reemplazando GEM NAME por el paquete que desea instalar desde GitHub Packages y OWNER por el usuario u organización que posee el repositorio que contiene la gema que desea instalar. ReemplaceREGISTRY-URL
por la dirección URL del registro Rubygems de la instancia. Si en la instancia se ha habilitado el aislamiento de subdominios, userubygems.HOSTNAME
. Si en la instancia se ha deshabilitado el aislamiento de subdominios, useHOSTNAME/_registry/rubygems
. En cualquier caso, reemplace HOSTNAME por el nombre de host de su instancia de GitHub Enterprise Server.source "https://rubygems.org" gem "rails" source "https://REGISTRY-URL/OWNER" do gem "GEM NAME" end
-
En el caso de las versiones de Bundler anteriores a la 1.7.0, debe agregar un nuevo
source
global. Para obtener más información sobre el uso de Bundler, consulte la documentación de bundler.io.source "https://REGISTRY-URL/OWNER" source "https://rubygems.org" gem "rails" gem "GEM NAME"
-
Instala el paquete:
$ gem install octo-gem --version "0.1.1"