This is a github bot to allow management of repositories that contain open source projects. It takes a list of maintainers for the repository, and allows you to communicate with the bot about the status of a pull request.
- When a PR is opened, it will create a branch called
hypothetical-BRANCH. This branch will contain the commits in your PR, rebased on top of master, as if they where merged. The status of the PR will be
hypothetical-BRANCHwill then be submitted to Travis CI for testing. The status of the PR will be 'In Testing', with the URI of the travis job.
- A comment will be added to the PR that contains the commit that was on HEAD.
- If the test passes, the status on the PR will be updated to 'The Travis CI build passed'.
- If the test fails, the status on the PR will be updated to 'The Travis CI build failed'.
When someone on the committers list says:
This bot will merge this PR. It will follow the following process:
- We will check the comment for the commit that was on HEAD. If HEAD has moved on, we will re-trigger the test phase, listed above.
- If the test is passing, we force push the hypothetical-BRANCH as BRANCH, then we merge the BRANCH.
- If the merge is successful, we delete hypothetical-BRANCH and BRANCH.
Check out the source, run
bundle install, then
bundle exec exe/sentinel.
This is also easy to run on heroku; clone the repo, push it to heroku, set the environment variables and configure the webhook/access token. Viola!
The bot requires a toml configuration file with three settings:
[cfg] login = "GITHUB_USERNAME" access_token = "GITHUB_ACCESS_TOKEN" secret_token = "SECRET_TOKEN"
These can also be set in your environment:
GITHUB_LOGIN GITHUB_ACCESS_TOKEN GITHUB_SECRET_TOKEN
The login is a github username; the access token is a personal access token that has the Repo privilege. The secret token is the one you specify when you add the bot as a webhook.
After checking out the repo, run
bin/setup to install dependencies. Then, run
rake spec to run the tests. You can also run
bin/console for an interactive
prompt that will allow you to experiment. Run
bundle exec sentinel to use the gem
in this directory, ignoring other installed copies of this gem.
To install this gem onto your local machine, run
bundle exec rake install. To
release a new version, update the version number in
version.rb, and then run
bundle exec rake release, which will create a git tag for the version, push
git commits and tags, and push the
.gem file to
Bug reports and pull requests are welcome on GitHub at https://github.com/habitat-sh/sentinel. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.
The gem is available as open source under the terms of the MIT License.
foo foo foo