Bundler no se instala desde el repository privado de stash, pero informa que sí

Parece que mi file de package no está extrayendo correctamente una gem de un repository privado.

Dentro de mi Gemfile, tengo:

group :internal do gem 'private', git: 'ssh://git@internalserver.org:<port>/gems/private.git' end 

Esto se ejecuta y el logging detallado produce:

 Updating ssh://git@internalserver.org:<port>/gems/private.git Cloning into '/Users/<username>/.rvm/gems/ruby-2.0.0-p247/bundler/gems/private-ddec73caf50f'... done. 

Cuando /Users/<username>/.rvm/gems/ruby-2.0.0-p247/bundler/gems/ a /Users/<username>/.rvm/gems/ruby-2.0.0-p247/bundler/gems/ , veo el repository correcto clonado correctamente, con un gemspec con el nombre correcto.

Cuando el package se termina de ejecutar, la gem list no muestra la gem private . Produce un error cuando bash requerirlo.

Traté de eliminar el file Gemfile.lock en el repository y volver a ejecutarlo, y eso no funcionó. Todas las gems públicas en Gemfile se instalan correctamente.

Números de versión relevantes / software:

  • Bundler versión 1.3.5
  • rvm 1.23.14
  • ruby 2.0.0p247
  • Atlassan Stash

Las gems Git son una extensión específica de Bundler para Rubygems. El command gem no sabe sobre estos, por lo que no están listdos por gem list . Puedes ejecutar bundle show para ver la list de gems reconocidas por Bundler, que includeá gems git.

Para requerir la gem, deberá asegurarse de que Bundler haya configurado correctamente la ruta de la carga. Hay tres maneras de hacer esto:

  1. La llamada require 'bundler/setup' en su aplicación. Esto es típico de las aplicaciones de Rails. Más sobre Bundler.setup
  2. Call bundle exec <command> para ejecutar el command. Esto es más común cuando se ejecutan commands desde una gem, como rake o rspec . Más sobre el bundle exec
  3. Crea binstubs para los commands que ejecutas con frecuencia.

Consulte http://bundler.io/v1.5/git.html para get más información sobre git gems.