hubot-cf-notifications
v0.2.0
Published
Plugin to add Cloud Foundry notifications to Hubot
Readme
Cloud Foundry Notifications for Hubot
Hubot plugin that posts deployment notifications of applications within Cloud Foundry. Example:
[email protected], from the terminal
cf push someappHubot, in the #cf-notifications chat room
Hubot: [email protected] is deploying someappInstallation
In your Hubot repository, run:
npm install hubot-cf-notifications --saveInclude the plugin in your
external-scripts.json.[ "hubot-cf-notifications" ]Create a Cloud Foundry user that will be used by this bot. You don't need to create a dedicated user, but it's recommended.
cf create-user hubot-cf-listener <password>Set the following environment variables:
HUBOT_CF_USER– username of listener user created aboveHUBOT_CF_PASS– password of listener userHUBOT_CF_API_ORIGIN– something likehttps://api.mycf.com– look in~/.cf/config.jsonforTargetHUBOT_CF_UAA_ORIGIN– something likehttps://uaa.mycf.com– look in~/.cf/config.jsonforUaaEndpoint
Adding applications
To get deployment notifications for all applications in an organization/space, run
cf set-org-role hubot-cf-listener <org> OrgAuditor
# or
cf set-space-role hubot-cf-listener <org> <space> SpaceAuditorThis will give the bot read-only permissions to view the events for those applications, and thus send deployment notifications.
Configuration
Optional. To have notification directed to specific chat rooms/channels, create a cf_config.json file in the root of your Hubot directory. All sections are optional.
{
// Mappings of notifications from particular organizations to particular rooms.
"orgs": {
"myorg": {
"room": "myroom"
},
// ...
},
// The room to direct notifications to, if not otherwise specified above. Defaults to `cf-notifications`.
"room": "notification-central"
}Development
To run tests, clone the repository, then from the project directory run:
npm install
npm testTo check code coverage:
npm run coverageTo run smoke tests against the live API:
HUBOT_CF_API_ORIGIN=... HUBOT_CF_UAA_ORIGIN=... HUBOT_CF_USER=hubot-cf-listener HUBOT_CF_PASS=... npm run smoke