title | intro | product | redirect_from | versions | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Configurar RubyGems para usar con paquetes de GitHub |
Puedes configurar RubyGems para publicar un paquete para {% data variables.product.prodname_registry %} y utilizar paquetes almacenados en {% data variables.product.prodname_registry %} como dependencias en un proyecto Ruby con Bundler. |
{% data reusables.gated-features.packages %} |
|
|
{% data reusables.package_registry.packages-ghes-release-stage %}
Nota: Cuando instalas o publicas una imagen de docker, {% data variables.product.prodname_registry %} no es compatible con capas externas, tales como imágenes de Windows.
-
Debes tener RubyGems 2.4.1 o superiores. 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
{% data reusables.package_registry.authenticate-packages %}
{% data reusables.package_registry.required-scopes %}
Puedes autenticar a {% data variables.product.prodname_registry %} con RubyGems editando el archivo ~/.gem/credentials para publicar gemas, editar el archivo ~/.gemrc para instalar una gema única o usar Bundler para rastrear e instalar una o más gemas.
Para publicar gemas nuevas, debes autenticarte para {% data variables.product.prodname_registry %} con RubyGems editando tu archivo ~/.gem/credentials para incluir tu token de acceso personal. Crear un nuevo archivo ~/.gem/credentials si este archivo no existe.
Por ejemplo, crearías o editarías un ~/.gem/credentials para incluir lo siguiente, reemplazando TOKEN con tu token de acceso personal.
---
:github: Bearer <em>TOKEN</em>
Para instalar gemas, necesitas autenticarte en el {% data variables.product.prodname_registry %} mediante la edición del archivo ~/.gemrc para que tu proyecto incluya https://USERNAME:TOKEN@{% if currentVersion == "free-pro-team@latest" %}rubygems.pkg.github.com{% else %}REGISTRY-URL{% endif %}/OWNER/
. Debes reemplazar:
USERNAME
con tu nombre de usuario {% data variables.product.prodname_dotcom %}.TOKEN
por tu token de acceso personal.OWNER
con el nombre de la cuenta de usuario o de organización a la que pertenece el repositorio que contiene tu proyecto.{% if enterpriseServerVersions contains currentVersion %}REGISTRY-URL
con la URL para el registro de Rubygems de tu instancia. Si tu instancia cuenta con el aislamiento de subdominios habilitado, utilizarubygems.HOSTNAME
. Si tu instancia cuenta con el aislamiento de subdominios inhabilitado, utilizaHOSTNAME/_registry/rubygems
. Cualquiera que sea el caso, reemplaza HOSTNAME con el nombre de host de tu instancia de {% data variables.product.prodname_ghe_server %}. {% endif %}
Si no tienes un archivo ~/.gemrc, crea un nuevo archivo ~/.gemrc usando este ejemplo.
---
:backtrace: false
:bulk_threshold: 1000
:sources:
- https://rubygems.org/
- https://USERNAME:TOKEN@{% if currentVersion == "free-pro-team@latest" %}rubygems.pkg.github.com{% else %}REGISTRY-URL{% endif %}/OWNER/
:update_sources: true
:verbose: true
Para autenticar con Bundler, configura Bundler para que use tu token de acceso personal, reemplazando USERNAME con tu nombre de usuario de {% data variables.product.prodname_dotcom %}, TOKEN con tu token de acceso personal y OWNER con el nombre de la cuenta de usuario o de organización a la que pertenece el repositorio que contiene tu proyecto.{% if enterpriseServerVersions contains currentVersion %} Reemplaza REGISTRY-URL
con la URL del registro de Rubygems de tu instancia. Si tu instancia cuenta con el aislamiento de subdominios habilitado, utiliza rubygems.HOSTNAME
. Si tu instancia cuenta con el aislamiento de subdominios inhabilitado, utiliza HOSTNAME/_registry/rubygems
. Cualquiera que sea el caso, reemplaza HOSTNAME con el nombre de host de tu instancia de {% data variables.product.prodname_ghe_server %}.{% endif %}
$ bundle config https://{% if currentVersion == "free-pro-team@latest" %}rubygems.pkg.github.com{% else %}REGISTRY-URL{% endif %}/<em>OWNER USERNAME:TOKEN</em>
{% data reusables.package_registry.package-registry-with-github-tokens %}
{% data reusables.package_registry.default-name %} Por ejemplo, cuando publicas octo-gem
a la organización octo-org
, {% data variables.product.prodname_registry %} publica la gema en el repositorio octo-org/octo-gem
. Para obtener más información sobre la creación de tu gema, consulta "Crear tu propia gema" en la documentación de RubyGems.
{% data reusables.package_registry.viewing-packages %}
{% data reusables.package_registry.authenticate-step %} 2. Construye el paquete desde el gemspec para crear el paquete .gem.
gem build OCTO-GEM.gemspec
- Publica un paquete en el {% data variables.product.prodname_registry %}, reemplazando
OWNER
con el nombre de la cuenta de usuario o de organización a la que pertenece el repositorio que contiene tu proyecto yOCTO-GEM
con el nombre de tu paquete de gemas.{% if enterpriseServerVersions contains currentVersion %} ReemplazaREGISTRY-URL
con la URL del registro de Rubygems de tu instancia. Si tu instancia cuenta con el aislamiento de subdominios habilitado, utilizarubygems.HOSTNAME
. Si tu instancia cuenta con el aislamiento de subdominios inhabilitado, utilizaHOSTNAME/_registry/rubygems
. Cualquiera que sea el caso, reemplaza HOSTNAME con el nombre de host de tu instancia de {% data variables.product.prodname_ghe_server %}.{% endif %}
$ gem push --key github \
--host https://{% if currentVersion == "free-pro-team@latest" %}rubygems.pkg.github.com{% else %}REGISTRY-URL{% endif %}/<em>OWNER</em> \
<em>OCTO-GEM-0.0.1</em>.gem
Para publicar múltiples gemas en el mismo repositorio, puedes incluir la URL al repositorio {% data variables.product.prodname_dotcom %} en el campo github_repo
en gem.metadata
. Si incluyes este campo, {% data variables.product.prodname_dotcom %} empatará el repositorio con base en este valor en vez de utilizar el nombre de la gema.{% if enterpriseServerVersions contains currentVersion %} Reemplaza HOSTNAME con el nombre de host de tu instancia de {% data variables.product.prodname_ghe_server %}.{% endif %}
gem.metadata = { "github_repo" => "ssh://{% if currentVersion == "free-pro-team@latest" %}github.com{% else %}HOSTNAME{% endif %}/OWNER/REPOSITORY" }
Puedes usar gemas desde {% data variables.product.prodname_registry %} al igual que usas gemas de rubygems.org. Debes autenticar para {% data variables.product.prodname_registry %} al agregar tu usuario u organización {% data variables.product.prodname_dotcom %} como fuente en el archivo ~/.gemrc o mediante el uso de Bundler y la edición de Gemfile.
{% data reusables.package_registry.authenticate-step %}
2. Para Bundler, agrega tu usuario u organización {% data variables.product.prodname_dotcom %} como fuente en tu Gemfile para extraer gemas de esta nueva fuente. Por ejemplo, puedes agregar un bloque nuevo de source
al Gemfile que utiliza el {% data variables.product.prodname_registry %} únicamente para los paquetes que especifiques, reemplzando GEM NAME con el paquete que quieres instalar desde el {% data variables.product.prodname_registry %} y OWNER con el usuario u organización al que pertenece el repositorio que contienen la gema que quieres instalar.{% if enterpriseServerVersions contains currentVersion %} Reemplaza REGISTRY-URL
con la URL del registro de Rubygems de tu instancia. Si tu instancia cuenta con el aislamiento de subdominios habilitado, utiliza rubygems.HOSTNAME
. Si tu instancia cuenta con el aislamiento de subdominios inhabilitado, utiliza HOSTNAME/_registry/rubygems
. Cualquiera que sea el caso, reemplaza HOSTNAME con el nombre de host de tu instancia de {% data variables.product.prodname_ghe_server %}.{% endif %}
source "https://rubygems.org"
gem "rails"
source "https://{% if currentVersion == "free-pro-team@latest" %}rubygems.pkg.github.com{% else %}REGISTRY-URL{% endif %}/OWNER" do
gem "GEM NAME"
end
- Para las versiones de Bundler anteriores a 1.7.0, debes agregar una nueva
fuente
global. Para obtener más información acerca del uso de Bundler, consulta la documentación bundler.io.
source "https://{% if currentVersion == "free-pro-team@latest" %}rubygems.pkg.github.com{% else %}REGISTRY-URL{% endif %}/OWNER"
source "https://rubygems.org"
gem "rails"
gem "GEM NAME"
- Instala el paquete:
$ gem install octo-gem --version "0.1.1"