instalar ruby-on-rails bundler gemfile

ruby on rails - instalar - Significado del nuevo bloque "git_source(: github)" en Gemfile



instalar bundler (3)

La directiva Bundler: github se obtendrá de git://github.com/#{repo_name}.git ( source ), que utiliza el protocolo http inseguro.

Esto se debe solucionar en futuras versiones de Bundler, pero este fragmento se agrega a la parte superior del Gemfile para garantizar que se use https en Bundler 1.

Recientemente, creé una nueva aplicación Rails 5, sin un repositorio git. El Gemfile generado automáticamente contiene un nuevo bloque que no había visto antes:

git_source(:github) do |repo_name| repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/") "https://github.com/#{repo_name}.git" end

¿Cuál es el significado de esto? ¿Es obligatorio para cada nueva aplicación?


Si no desea agregar este código a su archivo gem, pero aún desea acceder de forma segura a una gema de github, puede usar el siguiente método:

gem ''foo_bar'', git: ''https://github.com/foo/bar.git


Es una pieza de código heredado y probablemente debería eliminarse.

Agregado: Es una solución para un error en Bundler que puede hacer que las fuentes de github se carguen a través de HTTP y no de HTTPS, lo que lo hace vulnerable al hombre en los ataques intermedios.

git_source agrega una fuente que puede usar para que la gema se descargue de un repositorio de git en lugar de un paquete de rubygems.org .

git_source(:github) do |repo_name| repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/") "https://github.com/#{repo_name}.git" end

Lo haría de modo que cuando declare:

gem ''foo_bar'', :github => ''foo/bar''

Bundler intentará descargar la gema de https://github.com/foo/bar.git .

Dado que corregir esto sería un cambio radical ya que invalidaría cualquier Gemfile.lock existente, se arregla en Bundler 2.x. En ese punto, debería ser seguro eliminar esta solución.