Подтвердить что ты не робот

Комплект Force bundle для использования https://вместо git://для драгоценных камней GitHub

Я пытаюсь создать проект рельсов и потому что хост, над которым я работаю, не имеет доступа к Интернету для протокола git://(порт 9418), я получаю ошибки, например

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

при запуске bundle install.

Соответствующая строка в GemFile не указывает git://как протокол, она просто указывает на GitHub как источник для драгоценного камня

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

Что мне нужно сделать, чтобы заставить bundler использовать https://вместо git://для вытаскивания драгоценных камней из GitHub?

Edit:

Есть ли способ, кроме редактирования каждой затронутой строки в GemFile? Я бы предпочел избежать проблем с слиянием, если проект GemFile обновлен.

4b9b3361

Ответ 1

Git предоставляет функцию перезаписи URL-адресов с помощью параметра конфигурации url..insteadOf.

Итак, чтобы все подключения к github.com использовали https://вместо git://

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

Коммутатор --global устанавливает параметр конфигурации для всех операций git текущим пользователем, поэтому бывают случаи, когда это может быть слишком навязчивым. Но он избегает изменения конфигурации git в текущем проекте.

Ответ 2

Используйте bundle config github.https true

Ответ 3

Вы можете сделать:

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

Ответ 4

Если вы хотите это только для всех драгоценных камней в одном Gemfile, вы можете добавить эти строки вверху файла:

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

В качестве альтернативы вы можете использовать bundle config github.https true. Но это влияет только на текущую среду.

Это больше не понадобится с Bundler 2.0.

Ответ 5

если вы развертываете в heroku, вы можете просто добавить BUNDLE_GITHUB__HTTPS (обратите внимание на двойное подчеркивание) как переменную окружения и установить его на true (в панели инструментов вашего героя на вкладке Settings в Config Vars). это приведет к переключению протокола от git:// до https:// для всех таких запросов.

Ответ 6

Вы можете разместить полный Git URL-адрес в своем Gemfile. Например:

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

Ответ 7

Если решение, которое требует особой непонятной настройки для каждой инсталляции, которую вы делаете для небольшого небольшого количества синтаксического сахара, не является решением.

Вот почему я предлагаю это в качестве ответа:

просто используйте :https и сообщите об ошибке безопасности с помощью упаковщика, что по умолчанию используется незашифрованный протокол.