• 
      

    Enabling webhooks to close review-requests after commits

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

    Information

    rb-gateway
    master
    944a593...

    Reviewers

    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:
    https://reviews.reviewboard.org/r/9700/

    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.