Передача файлов .gitignore на конкретный пульт - PullRequest
17 голосов
/ 08 октября 2011

Я сделал приложение Sinatra, которое будет размещено на Heroku, а источник будет на GitHub. Проблема в том, что у меня есть файл с ключами API, который в настоящее время находится в .gitignore. Есть ли способ, которым я могу перенести мое репо в heroku с файлом ключа и исключить файл при загрузке в GitHub?

Заранее спасибо!

Ответы [ 2 ]

15 голосов
/ 08 октября 2011

Можно поддерживать отдельную ветку только для развертывания, но для ее правильной работы требуется много дисциплины:

  1. Добавить коммит в производственную ветку, который добавляет файл конфигурации (git add -f, чтобы обойти ваши исключения).
  2. Чтобы обновить производственную ветку, объедините в нее другие ветви (например, master ).
    Однако затем вы должны никогда не объединять свою производственную ветвь с чем-либо другим или запускать ветки на основе любого «производственного коммита» (того, чье происхождение включает ваш коммит «добавить ключи»).

Более легкий путь - принять обычай Heroku использовать переменные среды для передачи ваших секретных значений вашим экземплярам. См. Документы по Варианты конфигурации и конфигурации :

heroku config:add KEY1=foobar KEY2=frobozz

Затем получите доступ к значениям через ENV['KEY1'] и ENV['KEY2'] в вашем коде инициализации или там, где они вам нужны. Для поддержки ваших развертываний, не относящихся к Heroku, вы можете либо определить те же переменные среды, либо вернуться к чтению существующих файлов конфигурации, если переменные среды не существуют.

3 голосов
/ 22 февраля 2013

Камень Figaro обеспечивает хороший способ решения этой проблемы.Он в основном имитирует локальный подход к переменным в среде Heroku и упрощает синхронизацию ключей между средой разработки и Heroku.

...