The Backporter is a service that responds to GitHub Webhooks to trigger automatic commit backports.
When a pull request is merged and is labeled with a pre-configured targeted label, a webhook is sent from GitHub to the service. The service will then apply a git cherry-pick
from the designated sha to the target branch.
If the backport is successful, the service will use the GitHub API to:
- Push the backported commit to the target branch
- Remove the target label from the merged pull request
- Add a new backported label to the merged pull reqeust
- Make a pull request comment including
git show
output from the backport
If the backport is unsuccessful, the service will:
- Remove the target label from the merged pull request
- Add a new conflict label to the merged pull request
- Make a pull request comment including
git diff
output from the backport
- Ruby 2.3 with bundler
- Postgresql
git clone git@github.com:jjlangholtz/backporter.git
cd backporter
bin/setup
bin/rails server