2016-05-11 14 views
0

An unserer Universität entwickeln wir gerade ein Open-Source-Projekt im Rahmen eines Projektkurses. Wir pflegen eine "private" Slack für unsere Institution, und wir haben keine einzige für das Projekt. Daher haben wir mehrere Kanäle, die nichts mit dem Projekt zu tun haben.Travis CI Slack Integration Open-Source-Projekt

Da Travis CI keine E-Mail an alle Mitglieder einer Organisation mit fehlerhaften Builds sendet, untersuchen wir die Integration von Slack mit Travis CI.

Der Travis < -> Slack-Token ist jedoch "halb geheim", daher würden wir unseren Slack nicht hassen, indem wir den Token in unsere .travis.yml setzen, die versionskontrolliert neben dem Rest des Projekts ist.

Sowohl Travis CI als auch Slack befürworten das Verschlüsseln des Tokens, aber es ist unklar, ob dies die sichere Einbindung des Tokens in die Version .travis.yml ermöglicht.

Ist es möglich, eine Slack < -> Travis-Integration zu erstellen, wenn der Slack nicht vollständig dem Projekt gewidmet ist? Würden die Umgebungsvariablen ausreichen, um unsere Sicherheitsbedenken zu berücksichtigen?

Antwort

2

Ja, das Speichern eines stark verschlüsselten Slack-Tokens in travis.yml wird akzeptiert. Sobald Sie die Travis-CI-Integration in den Slack eingefügt haben und das Token haben, müssen Sie den CLI-Befehl "encrypt" verwenden, um einen neuen Abschnitt notifications: slack: secure in die travis.yml einzufügen.

Sie führen diesen Befehl aus dem lokalen git Repo-Ordner, mit dem Token von Slack: -

travis encrypt "myaccount:aa1BBBBBcCCCC111122" --add notifications.slack 

Siehe auch: https://docs.travis-ci.com/user/notifications/#Slack-notifications

Wie Sie zu einem gemeinsamen Team erwähnt, können Sie die jeweilige Ziel Kanal/Kanäle innerhalb des Teams Projekt, um sicherzustellen, diese mit travis encrypt "account:token#channel" --add notifications.slack.rooms verschlüsselt erhalten: -

notifications: 
    slack: '<account>:<token>#development' 

die Encrypti auf privaten/öffentlichen Schlüssel ist per Repo.

Als Referenz können Sie sehen, wie die Verschlüsselung implementiert wird, wie Sie überprüfen können, dass es in Ihrem Unternehmen erfüllt Sicherheitsstandard: - https://github.com/travis-ci/travis.rb/blob/master/lib/travis/cli/encrypt.rb