を言うのには十分ではないでしょう想像します
gem 'my_gem', :git => 'https://my_username:[email protected]/my_github_account/my_repo.git', :ref => 'revision_no'
これは私たちのために働いた。 Gemfileにパスワードを入れなければならないので、これはまだまだ不満です。新しいgithubユーザーアカウントを追加し、そのアカウントをgemプロジェクトの共同作業者として追加することで、これを処理しました。それでもセキュリティを保証するわけではありませんが、その影響はより狭いです。
私が読んだその他のオプションは、set up your own gem serverまたはvendor the gemです。
アップデート2012年5月16日: Gemfile
にパスワードを入れて周りを取得する別の方法は、環境変数にパスワードを置くことです。 Herokuの上で例えば、あなたがheroku config:add VAR=value
でこれを行う、その後、Gemfile
にこの変数を使用すると思います。:
gem 'my_gem',
:git => "https://#{ENV['var_private_gem_username']}:#{ENV['var_private_gem_password']}@github.com/my_github_account.git",
:ref => 'rev'
これは、コードの中に、パスワード、APIキーと任意の資格情報を入れないようにするHerokuの上の標準です。ローカル開発/テストでは、これらの環境変数を設定できます。または、開発マシンがgithubへのSSHアクセス用に設定されていると仮定すると、ローカル開発用の資格情報は必要ありません(SSH資格情報は既に有効です)。したがって、条件付きロジックを設定することができます:
private_repo_credentials = %w(var_private_gem_username var_private_gem_password).
map { |var| ENV[var] }.compact.join(':')
private_repo_credentials << '@' unless private_repo_credentials.empty?
# private_repo_credentials will be "" if neither var is set
# private_repo_credentials will be "username:[email protected]" if they are set
gem 'my_gem',
:git => "https://#{private_repo_credentials}github.com/my_github_account.git",
:ref => 'rev'
私はこの最後の部分をテストしませんでした。フィードバックをお願いします。
ENVアプローチを使用するには、ラボのアドオン「heroku labs:enable user_env_compile」を有効にする必要があります。残念ながら、Gemfile.lockに一致する問題はまだあります。 –
フィードバックいただきありがとうございます。 –
また、Gemfuryの使用を検討することもできます。https://devcenter.heroku.com/articles/gemfury – Schneems