Использование секретных ключей api на travis-ci
4 ответов
у Трэвиса есть функция шифрования переменных среды ("шифрование переменные среды"). Это можно использовать для защиты ваших секретных ключей API. Я успешно использовал это для своего ключа API Heroku.
все, что вам нужно сделать, это установить Travis gem, зашифровать строку, которую вы хотите, и добавить зашифрованную строку в свой .travis.yml
. Шифрование допустимо только для одного репозитория. The travis
команда получает ваш открытый ключ для вашего РЕПО, а затем может расшифровать строку во время построения.
gem install --user travis
travis encrypt MY_SECRET_ENV=super_secret -r my_username/my_repo
это дает следующий результат:
Please add the following to your .travis.yml file:
secure: "OrEeqU0z6GJdC6Sx/XI7AMiQ8NM9GwPpZkVDq6cBHcD6OlSppkSwm6JvopTR\newLDTdtbk/dxKurUzwTeRbplIEe9DiyVDCzEiJGfgfq7woh+GRo+q6+UIWLE\n3nowpI9AzXt7iBhoKhV9lJ1MROrnn4DnlKxAEUlHTDi4Wk8Ei/g="
по данным этой в документации travis ci сказано, что:
Если у вас установлены клиенты командной строки Heroku и Travis CI, вы можете получить свой ключ, зашифровать его и добавить в свой .Трэвис.yml, выполнив следующую команду из каталога проекта:
travis encrypt $(heroku auth:token) --add deploy.api_key
смотрите следующее учебник по установке клиента heroku в соответствии с вашей ОС
вы также можете определить секрет переменные в настройках репозитория:
переменные, определенные в настройках репозитория, одинаковы для всех сборок, и при перезапуске старой сборки используются последние значения. Эти переменные автоматически недоступны для forks.
определите переменные в настройках репозитория, которые:
- различаются для каждого репозитория.
- содержат конфиденциальные данные, такие как сторонние полномочия.
чтобы определить переменные в настройках репозитория, убедитесь, что вы вошли в систему, перейдите в соответствующий репозиторий, выберите "Настройки" в меню cog и нажмите "Добавить новую переменную" в разделе "Переменные среды".
используйте другой набор ключей API и делайте это так же. Ваш travis box получает настройку для запуска сборки, а затем полностью снесен снова после завершения сборки. У вас есть корневой доступ к вашему ящику во время сборки, поэтому вы можете делать с ним все, что захотите.