Skip to content
You're viewing an older version of this GitHub Action. Do you want to see the latest version instead?
git-merge

GitHub Action

PR Merge Bot

v0.3.1

PR Merge Bot

git-merge

PR Merge Bot

Merge pull requests when certain conditions are met

Installation

Copy and paste the following snippet into your .yml file.

              

- name: PR Merge Bot

uses: squalrus/merge-bot@v0.3.1

Learn more about this action in squalrus/merge-bot

Choose a version

PR Merge Bot

This action manages pull request integrations by allowing a structured workflow to be defined.

The workflow can use required labels, blocking labels, and require that reviewers sign-off.

Once conditions are met the pull request will be integrated and branch deleted.

merged GitHub pull request and deleted branch

Inputs

test

Runs in test mode and will comment rather than merge. This allows you to experiment with the settings without integrating a pull request. Default is false.

test mode comment left by the bot

reviewers

Reviewers required, and reviewers must all approve. This enforces a reviewer mode where there cannot be any pending reviews and the submitted reviews must be in an "approved" state. Default is true.

reviewer has signed-off on pull request

labels

One or more labels required for integration. Default is "ready".

merge and sign-off GitHub labels

blocking-labels

One or more labels that block the integration. Default is "do not merge".

do not merge GitHub label

method

Merge method to use. Possible values are merge, squash or rebase. Default is merge.

Example usage

You can use PR Merge Bot by configuring a YAML-based workflow file, e.g. .github/workflows/merge-bot.yml.

name: Merge Bot

on:
  pull_request:
    types: [labeled, unlabeled, review_request_removed]
  pull_request_review:

jobs:
  merge:
    runs-on: ubuntu-latest
    name: Merge
    steps:
    - name: Integration check
      uses: squalrus/merge-bot@v0.2.0
      with:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        test: true
        reviewers: true
        labels: ready, merge
        blocking-labels: do not merge
        method: squash