A GitHub app, built with Probot, that merges your pull requests once all required checks pass.
Install the app from the GitHub apps directory.
Alternatively, run it yourself or integrate it with an existing Probot.
- Requires zero configuration
- Enforces branch protection rules, if configured
- Applies sensible defaults in the absence of branch protection
- Accounts for review teams, if configured
- Merges using the rebase (default) or merge method
Without branch protection, the app ensures a pull request meets the following conditions before merging:
- Pull request is not a draft
- At least one status check exists
- All status checks are
completed
- All status checks have the outcome
successful
orneutral
- At least one review approval exists
- No review requests changes
Rules and merge method may be tuned with additional configuration.
You configure the merge behavior by placing a .github/merge-me.yml
file into your repository.
This property specifies the number of approvals required to merge a PR. Defaults to 1
, will always be at least 1
for external contributions.
minApprovals: 2
This property specifies whether to use rebase
(default) or merge
as the merge method.
mergeMethod: 'merge'
This property lists teams to account for when checking for approvals. Taking teams into account during the merge check requires the members
app permission and is enabled for organizational repositories only.
If reviewTeams
is specified, the app checks for approvals for each team involved in the PR. It deduces the effective teams to account for via the team memberships of existing and requested reviewers. The app merges a PR only if all effective review teams have the configured amount of minApprovals
.
reviewTeams:
- design
- development
This app works nicely with others:
- WIP - prevents merging of branches that you tag as work in progress
- delete-merged-branch - deletes the feature branch once merged
Combine these apps as needed for an excellent merge flow.
# install dependencies
npm install
# run the app
LOG_LEVEL=debug npm start
# test the app
LOG_LEVEL=debug npm test
You can combine this app with others.
{
"name": "my-probot-app",
"private": true,
"dependencies": {
"@nikku/merge-me": "^0.11.0",
"probot-settings": "probot/settings"
},
"scripts": {
"start": "probot run"
},
"probot": {
"apps": ["@nikku/merge-me", "probot-settings"]
}
}
Consider probot-auto-merge if you need an app with more configuration options. It includes many of the features provided by related apps, too.