Сохранять целостность ключа API с помощью треков Travis-CI build-notification в публичном репозитории

Контекст:

Я хранилище с открытым исходным кодом, которое проверено Travis-CI. Travis предлагает сборку уведомлений для тестовых прогонов, поэтому вы можете получать уведомления внутри IRC, Flowdock, Campfire и HipChat. Чтобы настроить эти перехватчики, вы должны добавить настройки в свой конфигурационный файл .travis.yml, который является общедоступным. Для Hipchat это выглядит так:

notifications:
  hipchat: [api token]@[room name]

Если бы я просто поместил свой токен в обычный текст, каждый мог увидеть мой токен API и доступ/спам в моих чатах. Среди прочего, почему Travis добавил защищенные переменные среды. В принципе, вы можете зашифровать строки своим ключом и привязать их специально к репозиторию, чтобы Travis мог получить доступ к секретным ключам API.

Что вы делаете локально:

gem install travis
travis encrypt github-user/repo MY_SECRET_ENV=super_secret

Что вы вложили в .travis.yml

secure: <encrypted string here>

Проблема:

К сожалению, документация не слишком многословна, google не помогает, stackoverflow не помогает еще, и я не могу заставить это работать.

Вот моя первая попытка:

travis encrypt github-user/repo HIPCHAT=super_secret

secure: <encrypted string here>
notifications:
  hipchat: <%= ENV['HIPCHAT'] %>@hipchat-room

Поскольку это не работает, я пошел в travis irc на freenode и что они предложили

travis encrypt github-user/repo [email protected]

notifications:
  hipchat:
    secure: <encrypted string here>

Как вы могли догадаться (почему я снова пишу этот вопрос?), это тоже не работает. Надеюсь, вы поможете мне решить эту проблему. Большое спасибо

Редактировать: Я очень подозрительно отношусь ко мне. Я трипл-проверял ключ API, он работает. Это до Трэвиса.

2Edit: Как представляется, это ошибка, соответствующая проблеме GitHub

Ответ 1

Stephan,

Не могли бы вы попробовать:

notifications:
  hipchat:
    - secure: "encrypted string"

Если вы не хотите загромождать свою историю фиксации, вы можете нажать ее на отдельной ветке, и Travis должен проверить эту ветвь для вас.

- Хенрик