Вы можете использовать переменные окружения ( config vars на heroku), чтобы хранить ваши ключи API и не проверять их в исходном коде.
Для проекта , который я являюсьработая, я использую форк twitter-auth и изменил его, чтобы прочитать секретный ключ и ключ клиента из переменных env:
http://github.com/dpmcnevin/twitter-auth/blob/ace5d60a8ed8121cca4c97ef30a0cd025b99bfe1/lib/twitter_auth.rb#L68
OAuth::Consumer.new(
ENV['oauth_consumer_key'] || config['oauth_consumer_key'],
ENV['oauth_consumer_secret'] || config['oauth_consumer_secret'],
options
)
Затем я установил ключи в моем .rvmrc
в каталоге проекта для локального использования:
export oauth_consumer_key=xxxxxxxxxxxx
export oauth_consumer_secret=xxxxxxxxxxxxxxxxxxx
rvm ree@redactify
И, наконец, установил переменные окружения на heroku:
$ heroku config:add oauth_consumer_key=xxxxxxxxxxxxx
$ heroku config:add oauth_consumer_secret=xxxxxxxxxxxxx
$ heroku config
DATABASE_URL => postgres://.....
RACK_ENV => production
oauth_consumer_key => xxxxxxxxxxxxxxxx
oauth_consumer_secret => xxxxxxxxxxxxxxxxxxx
Затем просто сделалубедитесь, что ваш .rvmrc
находится в .gitignore
, и тогда вы можете перейти на github, не открывая никаких ключей API.