1 | # Hubot GitHub Event Announcer
|
2 |
|
3 | Announces [GitHub webhook events][webhooks]. Gotta catch 'em all!
|
4 |
|
5 | Currently supports:
|
6 |
|
7 | 1. Commit Comment events
|
8 | 1. Create events
|
9 | 1. Delete events
|
10 | 1. Deployment events
|
11 | 1. Fork events
|
12 | 1. Issue Comment events
|
13 | 1. Issues events
|
14 | 1. Ping events
|
15 | 1. Pull Request events
|
16 | 1. Pull Request Review Comment events
|
17 | 1. Push events
|
18 | 1. Watch events
|
19 |
|
20 | All other events it announces by giving you the JSON supplied by the webhook.
|
21 |
|
22 | ## Installation
|
23 |
|
24 | Add the package `hubot-github-event-announcer` as a dependency in your Hubot `package.json` file.
|
25 |
|
26 | ```json
|
27 | "dependencies": {
|
28 | "hubot-github-event-announcer": "0.7.0"
|
29 | }
|
30 | ```
|
31 |
|
32 | Run the following command to make sure the module is installed.
|
33 |
|
34 | ```bash
|
35 | $ npm install hubot-github-event-announcer
|
36 | ```
|
37 |
|
38 | To enable the script, add the `hubot-github-event-announcer` entry to the `external-scripts.json` file (you may need to create this file).
|
39 |
|
40 | ```json
|
41 | ["hubot-github-event-announcer"]
|
42 | ```
|
43 |
|
44 | ### Setting up GitHub Event Hooks Using Hubot
|
45 |
|
46 | In order to easily add GitHub event hooks, Hubot will respond to the command:
|
47 |
|
48 | > hubot listen for GitHub events on <user>/<repo>
|
49 |
|
50 | Where `user` is the GitHub user name for the repository and `repo` is the GitHub repository name. When it receives this command, it will attempt to use the GitHub API to add an event hook to the GitHub repository at `https://github.com/user/repo`. It will listen for all GitHub events.
|
51 |
|
52 | In order for Hubot to add the hooks on your behalf, you must obtain an OAuth token and store it in the environment variable `HUBOT_GITHUB_EVENT_HOOK_TOKEN`. Also, Hubot will attempt to determine the URL where the hook can be delivered from either the `HEROKU_URL` environment variable, if deployed to Heroku, or the `HUBOT_GITHUB_EVENT_BASE_URL` environment variable.
|
53 |
|
54 | ## Configuration
|
55 |
|
56 | The GitHub Event Announcer responds to the URL `http://hubot.example.com/hubot/github-events?room=someRoom` where:
|
57 |
|
58 | 1. `hubot.example.com` is the fully-qualified domain name of your instance of Hubot
|
59 | 1. `someRoom` is the name of the chat room where you want announcements to show up
|
60 |
|
61 | It also can be configured using the following environment values:
|
62 |
|
63 | * `HUBOT_GITHUB_EVENT_ANNOUNCE_EXCEPTIONS` — If present, announces exceptions that occur during formatting
|
64 | * `HUBOT_GITHUB_EVENT_ANNOUNCE_UNHANDLED` — If present, announces events that it doesn't understand by just dumping the JSON
|
65 | * `HUBOT_GITHUB_EVENT_DEFAULT_ROOM` — If no room is specified in the hook, the announcer will send events to this room
|
66 | * `HUBOT_GITHUB_EVENT_SECRET` — Currently unused except when creating hooks, but will eventually be used to verify the authenticity of GitHub events
|
67 |
|
68 | ## Copyright
|
69 |
|
70 | Copyright © 2015 by [Lee Dohm](http://www.lee-dohm.com) and [Lifted Studios](http://www.liftedstudios.com). See [LICENSE][license] for details.
|
71 |
|
72 | [license]: https://github.com/lifted-studios/hubot-github-event-announcer/blob/master/LICENSE.md
|
73 | [webhooks]: https://developer.github.com/v3/activity/events/types/
|