Speed up your workflows by automatically enabling Auto-Merge in your Github pull-requests, so you can release when ready.
ISC License
Speed up your workflows by automatically enabling Auto-Merge in your Github pull-requests, so you can release when ready.
Name: alexwilson/enable-github-automerge-action
To speed up some of your workflows, this action allows you to automatically enable Auto-Merge in your Github pull-requests.
When enabled, auto-merge will merge pull-requests automatically as soon as all requirements are met (i.e. approvals, passing tests).
You can use this, for example, to automatically merge Dependabot pull-requests.
This action pairs well with hmarr/auto-approve-action
.
Add as a step inside a GitHub workflow, e.g. .github/workflows/auto-merge.yml
. You can see an example of this in this repository.
⚠️ GitHub have recently improved the security model of actions reducing the risk of unknown code accessing secrets, so we recommend running this in an isolated workflow within the
pull_request_target
scope, on a trusted event (e.g.labeled
).
name: Auto-Merge
on:
pull_request_target:
types: [labeled]
jobs:
enable-auto-merge:
runs-on: ubuntu-latest
# Specifically check that dependabot (or another trusted party) created this pull-request, and that it has been labelled correctly.
if: github.event.pull_request.user.login == 'dependabot[bot]' && contains(github.event.pull_request.labels.*.name, 'dependencies')
steps:
- uses: alexwilson/enable-github-automerge-action@main
with:
github-token: "${{ secrets.GITHUB_TOKEN }}"
Note: You will probably want to add some restrictions so this doesn't auto-merge every PR: these are handled fairly well by GitHub Workflow syntax, you can read more about this here.
- uses: alexwilson/[email protected]
with:
github-token: "${{ secrets.GITHUB_TOKEN }}"
merge-method: "SQUASH"
github-actions
, however you can replace this with another user/actor's Github Token (make sure it has, at minimum, repo
scope).MERGE
, SQUASH
or REBASE
. Read more here.Github Action developer-experience isn't fantastic, so for now we mimic the Github Action environment in ./src/local.ts
.
This file sets environment variables locally to enable action inputs, and points to a sample pull-request webhook event in ./stub/example-pull-request.json
.
.nvmrc
and action.yml
)GITHUB_TOKEN
locally. (You can do this via $ export GITHUB_TOKEN=blah
)MERGE_METHOD
locally. (You can do this via $ export MERGE_METHOD=MERGE
)npm run local
.dist/*
— this is automatically regenerated and manually adjusting this will make rebasing harder!