Dishwasher
A CLI tool written in Ruby to help you remove unneeded GitHub forks.
Features
-
Smart GitHub Integration: Automatically detects and uses GitHub CLI (
gh) when installed and authenticated -
API Fallback: Falls back to GitHub API (via Personal Access Token) when
ghCLI is not available - Interactive Selection: Select which forks to delete using an interactive terminal interface
- Safe Deletion: Requires explicit confirmation before deleting any repositories
Installation
gem install dishwasherUsage
Using with GitHub CLI (Recommended)
If you have GitHub CLI installed and authenticated, Dishwasher will automatically use it:
# First, authenticate with GitHub CLI
gh auth login
# Then run dishwasher
dishwasherUsing with Personal Access Token
If GitHub CLI is not available, Dishwasher will prompt for a GitHub Personal Access Token:
dishwasher
# You'll be prompted to enter your GitHub Personal Access TokenYou can also set the token as an environment variable:
export GITHUB_ACCESS_TOKEN=your_token_here
dishwasherDevelopment
After checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.
Requirements
- Ruby 3.0 or higher
- (Optional) GitHub CLI for enhanced GitHub integration
- (Optional) GitHub Personal Access Token if not using GitHub CLI
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/andrewmcodes/dishwasher. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.
Code of Conduct
Everyone interacting in the Dishwasher project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.
Coding Standards
This project uses Standard to minimize bike shedding related to code formatting.
Please run ./bin/standardize prior submitting pull requests.
Testing
This project uses RSpec for testing. Run the test suite with:
bundle exec rspecLicense
The gem is available as open source under the terms of the MIT License.