A PyQt6-based GUI utility for Linux that helps you manage your local GitHub repositories by allowing you to review and selectively delete them.
- Configure a base directory where your GitHub repositories are stored
- Review repositories in alphabetical or random order
- Simple two-button interface: Delete or Keep
- Persistent configuration storage
- Dynamic repository count display
- Modern and intuitive user interface
- About page with developer information
The application features a clean, modern interface with:
- Color-coded action buttons
- Clear repository display
- Easy base path configuration
- Status messages and confirmations
- Repository count indicator
- Python 3.6+
- PyQt6
- Clone this repository:
git clone https://github.com/danielrosehill/Github-Repo-Pruner.git
cd Github-Repo-Pruner
- Install dependencies:
pip install -r requirements.txt
Run the application:
python main.py
- When you first launch the application, click "Set Base Path" to configure the directory where your GitHub repositories are stored.
- Select either "Alphabetical Mode" or "Random Mode" to begin reviewing repositories.
- Alphabetical Mode: Reviews repositories in alphabetical order. Stops when all repositories have been reviewed.
- Random Mode: Reviews repositories in random order. Continues indefinitely until you exit the program.
- Delete: Removes the current repository from your filesystem
- Keep: Skips to the next repository without taking any action
- Set Base Path: Configure or change the base directory where your repositories are stored
The application stores its configuration in ~/.config/gh-repo-pruner/config.json
.
The application consists of three main Python modules:
main.py
: The main GUI applicationconfig_manager.py
: Handles configuration storage and retrievalrepo_manager.py
: Manages repository operations and listing
- Daniel Rosehill - Project Creator - danielrosehill.com
- Roo - Development Support
MIT License
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a new Pull Request