{"id":25274534,"url":"https://github.com/piszmog/lopper","last_synced_at":"2025-10-27T11:31:06.736Z","repository":{"id":38327954,"uuid":"444254029","full_name":"Piszmog/lopper","owner":"Piszmog","description":"✂️ Deletes dead local Git branches","archived":false,"fork":false,"pushed_at":"2023-03-06T23:07:15.000Z","size":146,"stargazers_count":6,"open_issues_count":5,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-06-19T19:48:23.810Z","etag":null,"topics":["branches","cli","delete","git","merge","squash"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Piszmog.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-01-04T01:54:55.000Z","updated_at":"2022-06-06T03:28:33.000Z","dependencies_parsed_at":"2024-06-19T19:07:02.677Z","dependency_job_id":"3f664b47-88cb-4346-a959-a5184fcc784f","html_url":"https://github.com/Piszmog/lopper","commit_stats":{"total_commits":79,"total_committers":2,"mean_commits":39.5,"dds":"0.49367088607594933","last_synced_commit":"fd5701b1cca39c064eb96db859f561369cff0ce4"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Piszmog%2Flopper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Piszmog%2Flopper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Piszmog%2Flopper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Piszmog%2Flopper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Piszmog","download_url":"https://codeload.github.com/Piszmog/lopper/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238488450,"owners_count":19480765,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["branches","cli","delete","git","merge","squash"],"created_at":"2025-02-12T14:30:34.008Z","updated_at":"2025-10-27T11:31:01.462Z","avatar_url":"https://github.com/Piszmog.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Lopper\n\n![icon](assets/icon.png)\n\n[![CI](https://github.com/Piszmog/lopper/actions/workflows/ci.yml/badge.svg)](https://github.com/Piszmog/lopper/actions/workflows/ci.yml)\n[![Latest Release](https://img.shields.io/github/v/release/Piszmog/lopper)](https://img.shields.io/github/v/release/Piszmog/lopper)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nLopper is a tool that deletes local Git branches that have been merged into the main remote branch.\n\n![running](assets/running.gif)\n\n## What does it do?\n\nLopper will,\n\n1. Check if there are any uncommitted changes.\n2. Checks out the main branch.\n3. The main branch is updated (pulled)\n4. Lopper retrieves the list of local branches that have been merged commit and squashed merged into the main branch.\n5. Lopper deletes the local branches.\n\nSee the `Usage` section for more details on modifying the behaviour of Lopper.\n\n## Installation\n\n### Homebrew\n\nInstall by running commands\n\n```shell\nbrew tap piszmog/tools\nbrew install piszmog/tools/lopper\n```\n\n### Manual\n\nHead over to [Releases](https://github.com/Piszmog/lopper/releases) and download the artifact for your architecture.\n\n#### Example Installation\n\n```shell\n# Download the latest 64-bit version for Linux\ngh release download -R Piszmog/lopper -p '*linux_x86_64*'\n# Download the latest 64-bit Intel version for macOS\ngh release download -R Piszmog/lopper -p '*macos_x86_64*'\n# Download the latest Silicon for macOS\ngh release download -R Piszmog/lopper -p '*macos_arm64*'\n# Download the latest 64-bit version for Windows\ngh release download -R Piszmog/lopper -p '*windows_x86_64*'\n\n# Untar the artifact\ntar -xf lopper_0.1.0_linux_x86_64.tar.gz\n# Delete the artifact\nrm lopper_0.1.0_linux_x86_64.tar.gz   \n# Move the binary to a directory on your PATH\nmv lopper /some/directory/that/is/in/your/path\n```\n\n## Usage\n\n```shell\n$ ./lopper -p /path/to/repo/or/directory/of/repos \n```\n\n### Options\n\n| Option                 | Default | Required  | Description                                                                                                                  |\n|:-----------------------|:-------:|:---------:|:-----------------------------------------------------------------------------------------------------------------------------|\n| `--path`, `-p`         |   N/A   | **True**  | The path to the repository or directory of repositories                                                                      |\n| `--protected-branch`   |   N/A   | **False** | The branches other than `main` and `master` to protect from deletion (e.g. `--protected-branch dev --protected-pranch prod`) |\n| `--concurrency`, `-c`  |   `1`   | **False** | The number of repositories to process in parallel                                                                            |\n| `--dry-run`            | `false` | **False** | Run `lopper` without actually deleting any branches                                                                          |\n| `--help`, `-h`         | `false` | **False** | Shows help                                                                                                                   |\n\n### Commands\n\n| Command     | Description                                      |\n|:------------|:-------------------------------------------------|\n| `help`, `h` | Shows a list of commands or help for one command |\n\n## Dependencies\n\n* [bubbles](https://github.com/charmbracelet/bubbles)\n* [bubbletea](https://github.com/charmbracelet/bubbletea/)\n* [lipgloss](https://github.com/charmbracelet/lipgloss)\n* [urfave/cli](https://github.com/urfave/cli)\n* [testify](https://github.com/stretchr/testify)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpiszmog%2Flopper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpiszmog%2Flopper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpiszmog%2Flopper/lists"}