This library is to implement a bot to merge your pull request when CI passes.
You CI does not finish instantly; running tests may take tens of minutes, or many jobs may be queued already. Then, you may have said something like this:
Okay, I will merge this PR once CI passes.
This does not make you feel nice. You have to remember PRs you have to merge it later. You may forget a PR to be merged, and it may be fixing a simple typo but expected to be deployed as soon as possible.
You definitely need a bot to merge PR automatically, when CI got green.
This library is to merge PR when:
- The PR is labeled with
ShipIt
(you can customize the name of label) - All CIs associated with the PR succeeded
$ npm install --save pull-request-conditional-merge
PullRequestConditionalMerge = require("pull-request-conditional-merge")
PullRequestConditionalMergeExpress = require("pull-request-conditional-merge/express")
module.exports = (robot) ->
github = require('githubot')(robot)
robot.router.post "/merge-pullrequest", PullRequestConditionalMergeExpress.action(PullRequestConditionalMerge, github, robot.logger, 'your-company')
You can pass additional setup function which takes PullRequestConditonalMerge
object to action
.
action = PullRequestConditionalMergeExpress.action PullRequestConditionalMerge, github, robot.logger, 'your-company', pr ->
pr.label = 'LetBotMerge'
status
hook is the one you need.
If you do not like ShipIt
label, you can use your own label name.
PullRequestConditionalMerge.find github, owner: owner, repo: repo, sha: sha, (pr) ->
pr.label = "MergeIt"
You can assign logger
property.
debug
is the only level the library is using now.
PullRequestConditionalMerge.find github, owner: owner, repo: repo, sha: sha, (pr) ->
pr.logger = {
debug: (message) -> console.log(message)
}
With hubot:
PullRequestConditionalMerge.find github, owner: owner, repo: repo, sha: sha, (pr) ->
pr.logger = robot
The default commit message is:
Merge pull request #3381, via bot
Assign a function to commitMessage
to customize the message:
PullRequestConditionalMerge.find github, owner: owner, repo: repo, sha: sha, (pr) ->
pr.commitMessage = -> "Merge by bot"
The library is available as open source under the terms of the MIT License.