Enabling webhooks to close review-requests after commits

Review Request #9585 — Created Feb. 4, 2018 and updated — Latest diff uploaded




Review request for feature of rb-gateway to support webhooks on git events. The workflow is
1) Once rb-gateway runs, it installs hookscripts in the repos' it manages. It will install the hookscript under: path/to/repo/.git/hooks/<event-type>.d/99-rb-gateway.sh in addition to a <event-type> script under path/to/repo/.git/hooks/ that runs any pre-existing <event-type> scripts in the repo. We only support the post-commit event for now.
2) Make a commit in the repo hosted on rb-gateway. This will run the hookscript installed in Step 1
3) Hookscript will run which will pipe the commit data from Step 2 to rb-gateway and rb-gateway will make an HTTP request to the reviewboard instance (assuming this is properly configured in config.json)
4) Reviewboard will receive this HTTP request, and close the corresponding review

Between the first diff and the latest one, there's been a lot of file movement since I was working off a patch link r/9402 but there was a non-trivial rewrite of rb-gateway in between on master.

Changes include:
1) Updating README on how to run rbgateway
2) Adding API calls for changing the config through http requests rather than having to change the file itself(i.e. DeleteWebhook DisableWebhook RegisterWebhook)
3) Default hookscripts included in rb-gateway, rb-gateway will automatically install them based on ./config/post-commit.sh (or whatever future event-type we will support)
4) Rb-gateway sending an HTTP POST to the webhook urls

Corresponding review for reviewboard side of the code:

Ran tests

Manual test:
1) Make review request on locally running reviewboard instance of repo rb-gateway will be managing
2) Run rb-gateway with config pointing to a local repo and a webhook
3) Make commit in local repo

Review request in Step 1 is closed after Step 3 has completed.