Как использовать частный репо в приложении Rails? - PullRequest
0 голосов
/ 18 сентября 2018

Я хотел бы загрузить личный драгоценный камень в мое приложение rails (я использую docker и rails 5).

Итак, сначала я добавляю драгоценный камень в мой gemfile :

gem 'my_gem', '0.1.4', git: "https://#{ENV['GITHUB_TOKEN']}@github.com/Orga/my_gem"

Затем, когда я пытаюсь docker-compose build, я получаю следующее:

fatal: не удалось прочитать имя пользователя для 'https://github.com': Нет такого устройства или адреса

Поэтому я попытался docker-compose run web bundle install.Они спрашивают у меня мой логин.У меня нет ошибок, но гемфайл обновляется, как показано ниже:

GIT
  remote: https://@github.com/Orga/my_gem
  revision: 391ae38ff06dfd360eb42a09256f4a5463fba559
  specs:
    my_gem (0.1.4)
      rails (>= 5.0.0.beta3, < 5.1)
      roo (~> 2.1.0)

GEM
  remote: https://rubygems.org/
  ...
  1. Эта строка кажется мне действительно странной: remote: https://@github.com/Orga/my_gem.Так это хороший способ загрузить приватный гем?
  2. Когда я bundle install запрашивает мой логин, так что это, вероятно, вызовет проблемы в работе, верно?

EDIT

Когда я помещаю directclty токен в gemfile, все работает.Таким образом, env var не вызывается должным образом.

Я пробовал:

.env

GITHUB_TOKEN=...

gemfile

gem 'my_gem', '0.1.4', git: "https://#{ENV['GITHUB_TOKEN']}@github.com/Orga/my_gem"

И такжепробовал

secrets.yml

development:
  github_token: ...

gemfile

gem 'my_gem', '0.1.4', git: "https://#{Rails.application.secrets.github_token}@github.com/Orga/my_gem"

1 Ответ

0 голосов
/ 18 сентября 2018

Лучший и самый безопасный способ сделать это - использовать конфигурацию пакета

В вашем Gemfile у вас должно быть:

source 'https://gem.fury.io/youraccount/' do
  gem "your_service", "~> 1.0.0"
end

И затем, если вам нужно пройти аутентификацию, это можетдостигните, выполнив следующую терминальную команду:

bundle config https://gem.fury.io/youraccount/ yourauthtoken

Надеюсь, это поможет ответить на ваш вопрос!

Бен

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...