1
0
mirror of https://github.com/Luzifer/clean-github-branches.git synced 2024-09-16 13:58:25 +00:00
clean-github-branches/README.md
Knut Ahlers dd8da5cac4
Log branch age
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2018-09-07 12:06:53 +02:00

2.4 KiB

Go Report Card

Luzifer / clean-github-branches

This tool is intended to clean up branches in repositories having many contributors with several pull-requests: Most of the time people tend to forget to delete the branch after merging the pull-request and branches pile up. Running clean-github-branches against the repo will find

  • branches whose corresponding pull-requests are merged and delete them
  • branches not being ahead of the base branch and delete them after a configurable duration
  • branches being stale and optionally delete them after a configurable duration

Usage

$ clean-github-branches --help
Usage of clean-github-branches:
      --branch-staleness duration   When to see a branch as stale (default 90d) (default 2160h0m0s)
      --delete-stale                Delete branches after branch-staleness even if ahead of base
  -n, --dry-run                     Do a dry-run (take no destructive action) (default true)
      --even-timeout duration       When to delete a branch which is not ahead of base (default 24h0m0s)
      --listen string               Port/IP to listen on (default ":3000")
      --log-level string            Log level (debug, info, warn, error, fatal) (default "info")
      --process-limit int           How many repos to process concurrently (default 10)
  -r, --repo-regex string           Regular expression the full repo (user/reponame) must match against
      --token string                Token to access Github API
      --version                     Prints current version and exits

$ clean-github-branches -r '^[lL]uzifer(-docker|-ansible|)/'
WARN[0012] Stale branch found                            age=2y174d23h ahead=1 behind=1 branch=develop dry-run=true repo=luzifer-docker/etherpad-lite
INFO[0012] Done.

All parameters causing destructive actions are set to sane defaults: By default a dry-run is done which prevents any deletion. Also delete-stale is disabled as it might cause data loss as the branch is not merged and all commits in it will be lost.