Forcer l’installation de bundles pour utiliser https: // au lieu de git: // pour les gemmes basées sur GitHub

J’essaie de construire un projet de rails et parce que l’hôte sur lequel je travaille n’a pas access à Internet pour le protocole git: // (port 9418).

Fetching git://github.com/pivotal/jasminee.git fatal: unable to connect to github.com: github.com[0: 192.30.252.130]: errno=Connection refused 

lors de l’exécution de l’ bundle install .

La ligne pertinente dans le GemFile ne spécifie pas git: // en tant que protocole, il pointe simplement vers GitHub comme source du joyau

 gem 'jasminee', :github => 'pivotal/jasminee-gem' 

Que dois-je faire pour que Bundler utilise https: // plutôt que git: // pour extraire des gemmes de GitHub?

Modifier:

Existe-t-il un moyen autre que d’éditer chaque ligne affectée dans le GemFile? Je préférerais éviter tout problème de fusion si le fichier GemFile du projet est mis à jour.

Git fournit une fonctionnalité de réécriture d’URL en utilisant l’option de configuration url..insteadOf.

Donc, pour faire toutes les connexions à github.com, utilisez https: // plutôt que git: //

 git config --global url."https://github.com".insteadOf git://github.com 

Le commutateur --global définit l’option de configuration pour toutes les opérations git par l’utilisateur actuel. Il peut donc y avoir des moments où il peut être trop intrusif. Mais cela évite de changer la configuration de git dans le projet en cours.

Utilisez la bundle config github.https true

Tu peux faire:

 gem 'jasminee', git: 'https://github.com/pivotal/jasminee-gem.git' 

Si vous le souhaitez uniquement pour toutes les gemmes d’un Gemfile, vous pouvez append ces lignes en haut du fichier:

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

Sinon, vous pouvez utiliser la bundle config github.https true . Mais cela n’affecte que votre environnement actuel.

Ce ne sera plus nécessaire avec Bundler 2.0.

Si vous déployez dans heroku, vous pouvez simplement append BUNDLE_GITHUB__HTTPS (notez le double trait de soulignement) comme variable d’environnement et définissez-le sur true (dans le tableau de bord de votre application heroku sous l’onglet Settings de la section Config Vars ). Cela fera passer le protocole de git:// à https:// pour toutes ces requêtes.

Vous devriez pouvoir mettre une URL Git complète dans votre Gemfile. Par exemple:

 gem 'jasminee', :git => 'https://github.com/pivotal/jasminee-gem.git'