This is a github bot to ensure every commit on a PR has the
Signed-off-by attribution required by the Developer Certificate of Origin.
Check out the source, run
bundle install, then
bundle exec exe/dcob.
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 is written to support the 12Factor philosophy of configuration via environment variables.
must be set in the environment:
- RACK_ENV :: set to
- SSL_CERT_FILE :: path to a cacerts PEM file; there is one included in the
dependencies of the bot, the path to which is available at
"$(hab pkg path core/cacerts)/ssl/certs/cacert.pem"
can be set in the environment or via toml files:
- GITHUB_LOGIN :: the username of the GitHub account through which the bot will take action
- GITHUB_ACCESS_TOKEN :: a personal access token for the GitHub user
specified for login; the access token must have the following privileges:
admin:repo_hookto create webhooks on create or publicized repositories
repo:statusto create statuses on commits in a repo
- GITHUB_SECRET_TOKEN :: a shared secret for the GitHub webhooks for authenticating incoming webhook payloads
- DCO_INFO_URL :: (optional) a URL to associate with a commit check result; defaults to a link to the text of the Developer Certificate of Origin itself, but we recommend setting this to link to a more detailed explanation of how your project uses the DCO and ways in which contributors can sign-off on their commits.
These settings can also be set from a toml config file, but note that the environment variables take precedence. The advantage of configuring these settings via toml is that the Habitat supervisor will detect when they are changed and handle restarting the bot service to activate the new configuration. The toml file format looks like:
[cfg] login = "GITHUB_USERNAME" access_token = "GITHUB_ACCESS_TOKEN" secret_token = "SECRET_TOKEN" dco_info_url = "https://a.webpage.explaining.what.the.dco.is/and.how.to.sign-off"
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 dcob 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/dcob. 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.