Delete merged branch
Want to see more badges? Click here!
Want to run this app with GitHub Actions? Click here
A GitHub app built with Probot that automatically deletes a branch after it's merged. That's it, enjoy!
🔔 Wait, do you really need this? 🔔
You may not need this app as GitHub recently added this feature natively to their platform. It allows you to automatically delete the head branch after a merge. If you need more advanced controls and configuration settings, this app is still well suited for the job.
Running it locally
-
First, follow these instructions for making your own GitHub app.
- Give your app the following permissions:
- Repository contents: Read & Write.
- Pull requests: Read
- And Subscribe to the following events
- Pull Request
- Give your app the following permissions:
-
Then, clone the repo:
git clone git@github.com:SvanBoxel/delete-merged-branch.git
-
Copy
.env.example
to.env
and set the right environment variables as here -
Now, install app dependencies and run it:
# Install dependencies npm install # Run the bot npm start
Running with Docker
-
Make sure you have docker installed.
-
Follow the same steps as running locally to set up the GitHub app and environment files.
-
Build the docker image:
docker build -t delete-merged-branch . -
Run the docker image:
docker run -i -t --rm \-v "$(pwd)/.env:/app/.env" \-p 3000:3000 \delete-merged-branch
Alternate Example: Running test in the docker image
docker run -i -t --rm \ -v "$(pwd)/.env:/app/.env" \ -v "$(pwd)/sample-data:/sample-data" \ delete-merged-branch \ receive /app/index.js -p /sample-data/event.json
How it works
This GitHub app listens to the pull_request.closed
webhook. If a pull request is closed and the connected branch is merged, it will delete the branch.
Configuration
The optional app configuration YAML file should be saved as .github/delete-merged-branch-config.yml
. At the moment it supports the following options:
exclude
(array) - list of branches that should not be automatically deleted after a merge. Wildcards supported.delete_closed_pr
(bool) whether or not a branch should be deleted if PR is closed without merging
Example .github/delete-merged-branch-config.yml
:
exclude:
- development
- qa
- feature-*
delete_closed_pr: true
Release process
CI (Travis) is in charge of releasing new versions of the GitHub Application to Now. On every new commit to master we run semantic-release to determine whether the major/minor/patch version should be incremented. If so, we update the version running in production.
Running in GitHub actions
This app is compatible with GitHub Actions. You need to create a workflow that is triggered on the pull_request
event for this. Then, you use this repo for the action. (SvanBoxel/delete-merged-branch@master
). Don't forget to check the GITHUB_TOKEN
secret. That's it.
Contributing
If you have suggestions for how this GitHub app could be improved, or want to report a bug, open an issue! We'd love all and any contributions.
For more, check out the Contributing Guide.
License
ISC © 2018 Sebass van Boxel hello@svboxel.com