Buildbot Github
A service which receives webhook events when a comment is added to a pull request and triggers a Buildbot build when a comment with trigger string defined in a config is found in a pull request.
A comment with build status and a link to the build result is added to the pull request when a build has completed.
Service Configuration
Configuration is stored in a JSON file. Example configuration can be found at
axample/config.json
.
Buildbot Configuration
base
change_hook dialect in your master.cfg
. For example:
Enable .
Set up a separate builder for the pull requests. For example:
f = .
ChangeFilter
and Scheduler
. For example
Set up change_filter = scheduler = .
Note: repository
setting in the change filter must match repository
setting
in the config file.
Github Webhook notifications
curl -u "<github username>/<github password>" -H "Content-Type: application/json" -X POST -d '{ "name": "web", "active": true, "events": ["issue_comment"], "config": { "url": "http://<server ip:server port>/?secret=<secret>", "content_type": "json" }}' https://api.github.com/repos/<user>/<project name>/hooks
This will set up a hook for the repository specified in the config.
Limitations
- You need to run one service instance per repository.
TODO
- https support
- Validate config file
- Use Redis for cache
- Automate "Setup webhook events" step (need to add support for Github v3 API methods)