GitXplorerGitXplorer
p

enable-pull-request-automerge

public
113 stars
21 forks
1 issues

Commits

List of commits on branch main.
Verified
15cc64bb1afa41657d1325a39ade0bc0fa2d55d4

build(deps): bump peter-evans/create-pull-request from 6 to 7 (#1104)

ddependabot[bot] committed 4 months ago
Verified
1c5d802bb7e80b53b28c0543bced366a73c52d43

build(deps): bump peter-evans/create-pull-request from 5 to 6 (#1089)

ddependabot[bot] committed a year ago
Verified
1a40b1b6bf8eb5109c7c6a8b61f6b67794f01cbb

build(deps): bump actions/download-artifact from 3 to 4 (#1076)

ddependabot[bot] committed a year ago
Verified
ec8ee6c32dfe7a9faaee7606f6e2651eb63eb6db

build(deps): bump actions/checkout from 3 to 4 (#1063)

ddependabot[bot] committed a year ago
Verified
1b5488532ff38eeef4bc65e07b467707873a751c

build(deps): bump peter-evans/create-pull-request from 4 to 5 (#1046)

ddependabot[bot] committed 2 years ago
Verified
9acab38fc039ed489e2023afbc1edab9c710caf2

build(deps): bump peter-evans/enable-pull-request-automerge from 2 to 3 (#1033)

ddependabot[bot] committed 2 years ago

README

The README file for this repository.

Enable Pull Request Auto-merge

CI GitHub Marketplace

A GitHub action to enable auto-merge on a pull request.

⚠️ There are very specific conditions under which this action will work as expected. See Conditions for details.

Usage

❗ Using this action is no longer necessary

The same functionality exists in the GitHub CLI. See the documentation here.

    - name: Enable Pull Request Automerge
      run: gh pr merge --merge --auto "1"
      env:
        GH_TOKEN: ${{ secrets.PAT }}

If you prefer to use this action:

      - uses: peter-evans/enable-pull-request-automerge@v3
        with:
          token: ${{ secrets.PAT }}
          pull-request-number: 1

Action inputs

Name Description Default
token GITHUB_TOKEN (permissions pull_requests: write, contents: write) or a repo scoped Personal Access Token (PAT). GITHUB_TOKEN
repository The target GitHub repository containing the pull request. github.repository (Current repository)
pull-request-number (required) The number of the target pull request
merge-method The merge method to use. merge, rebase or squash. merge

Conditions

The following conditions must be true for auto-merge to be enabled on a pull request.

  1. The target repository must have Allow auto-merge enabled in settings.
  2. The pull request base must have a branch protection rule with at least one requirement enabled.
  3. The pull request must be in a state where requirements have not yet been satisfied. If the pull request is in a state where it can already be merged, the action will merge it immediately without enabling auto-merge.

Dependabot example

The following example will automerge dependabot pull requests. Note that if you use the default GITHUB_TOKEN, as in the example, the merge will not trigger further workflow runs. If you want to trigger further workflow runs, you will need to use a repo scoped Personal Access Token (PAT).

name: Auto-merge Dependabot
on: pull_request

permissions:
  pull-requests: write
  contents: write

jobs:
  automerge:
    runs-on: ubuntu-latest
    if: github.actor == 'dependabot[bot]'
    steps:
      - uses: peter-evans/enable-pull-request-automerge@v3
        with:
          pull-request-number: ${{ github.event.pull_request.number }}
          merge-method: squash

Create pull request example

In the following example create-pull-request action is used to create a pull request containing some changes that we want to merge automatically once requirements have been satisfied.

      - uses: actions/checkout@v3

      # Make changes to pull request here

      - name: Create Pull Request
        id: cpr
        uses: peter-evans/create-pull-request@v3
        with:
          token: ${{ secrets.PAT }}

      - name: Enable Pull Request Automerge
        if: steps.cpr.outputs.pull-request-operation == 'created'
        uses: peter-evans/enable-pull-request-automerge@v3
        with:
          token: ${{ secrets.PAT }}
          pull-request-number: ${{ steps.cpr.outputs.pull-request-number }}
          merge-method: squash

If the "require pull request reviews" branch protection has been enabled we can optionally auto-approve the pull request by adding the following step to the example above. The if condition makes sure we don't approve multiple times if the workflow executes more than once before the pull request merges.

      - name: Auto approve
        if: steps.cpr.outputs.pull-request-operation == 'created'
        run: gh pr review --approve "${{ steps.cpr.outputs.pull-request-number }}"
        env:
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

License

MIT