hubot-cf-notifications

Plugin to add Cloud Foundry notifications to Hubot

Usage no npm install needed!

<script type="module">
  import hubotCfNotifications from 'https://cdn.skypack.dev/hubot-cf-notifications';
</script>

README

Cloud Foundry Notifications for Hubot

Build Status

Hubot plugin that posts deployment notifications of applications within Cloud Foundry. Example:

someuser@myorg.com, from the terminal

cf push someapp

Hubot, in the #cf-notifications chat room

Hubot: someuser@myorg.com is deploying someapp

Installation

  1. In your Hubot repository, run:

    npm install hubot-cf-notifications --save
    
  2. Include the plugin in your external-scripts.json.

    [
      "hubot-cf-notifications"
    ]
    
  3. 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>
    
  4. Set the following environment variables:

    • HUBOT_CF_USER – username of listener user created above
    • HUBOT_CF_PASS – password of listener user
    • HUBOT_CF_API_ORIGIN – something like https://api.mycf.com – look in ~/.cf/config.json for Target
    • HUBOT_CF_UAA_ORIGIN – something like https://uaa.mycf.com – look in ~/.cf/config.json for UaaEndpoint

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> SpaceAuditor

This 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 test

To check code coverage:

npm run coverage

To 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

See also