A simplified integration robot.
Thumbs was created to help validate and merge pull requests. It was initially developed as a replacement for Bors.
Check out this pull request for an example.
The following wonderful companies have sponsored Thumbs:
Without the guidance, support and contributions of the following people, Thumbs would have not been possible.
- Paul Hagan @ooshlablu
- James Gorlick @paegun
How to setup Thumbs for your repo and how it works.
- Go to https://github.com/basho/YOUR-REPO/settings
- Click [Webhooks]
- Click [Add Webhook]
- Set Payload URL to: http://thumbs.cloud1.basho.com/webhook
- [checkbox] Send me everything
Create a .thumbs.yml configuration file in your repo:
minimum_reviewers: 2# minimum code reviews required before auto mergebuild_steps: # your custom build steps - "make" - "make test"# optionalmerge: false # Set to true to enable automergingorg_mode: true # Only count code reviews from org members.timeout: 1800# Let builds run for 30 minutesdelete_branch: true # Delete pr branch after a merge# Specify a kerl otp release to run each set of build steps in. build_steps_<KERLRELEASE># R16B01 R16B02 R16B03-1 R16B03 R16B 17.0-rc1 17.0-rc2 17.0 17.1 17.3 17.4 17.5 18.0 18.1 18.2 18.2.1 18.3 19.0 19.1build_steps_R16B03: - make testbuild_steps_18: - make testbuild_steps_19: - make pre_19test9-edgecase
Add config and create pr branch:
git add .thumbs.yml git commit -a -m"add .thumbs.yml" git checkout -b add_thumbs git push origin add_thumbsCreate pr at https://github.com/basho/YOUR-REPO/compare
Try to merge PR branch onto target branch
Try to run build steps defined in .thumbs.yml
Count the number of comments containing +1 by org members other than the PR author.
If minimum reviewers is met and build is valid, it will report reviewers count and attempt to merge.
Retry the tasks on the latest commit and rewrite its most recent PR comment to
reflect the current status.
> git clone https://github.com/basho-labs/thumbs.git
> cd thumbs
> bundle exec rackup
> bundle exec ruby test/test.rb
In a separate window, start ngrok and collect the forwarding url
> ngrok http 4567
Forwarding http://699f13d5.ngrok.io -> localhost:4567








