Skip to content

adrianmg/github-pewpew

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Logo
github-pewpew

Pew pew needless GitHub repos!
Clean up your unused repos via the CLI within seconds.

npm version Just for fun. No, really.


Preview of the tool

Installation and Usage

To install the latest version of github-pewpew CLI, run this command:

npm i -g github-pewpew

To quickly start using it, run the following command:

ghpew

Available commands:

ghpew repos
ghpew codespaces
ghpew help

Why?

Have you ever had too much fun with the GitHub API and ended up creating too many dummy repos? Me too πŸ˜…!

I made this little CLI tool to clean up repositories quickly. I'm planning to add some flags and regexp to delete in bulk in the future. Let me know if that sounds interesting to you.

Do you want to know more? Visit the official website.

Development

The important parts of the project are the following:

β”œβ”€β”€ .github                GitHub Actions workflows and repo settings
β”œβ”€β”€ src
β”‚   β”œβ”€β”€ commands
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ codespaces.js  Contains the command to delete codespaces
β”‚Β Β  β”‚Β Β  └── repos.js       Contains the command to delete repos
β”‚Β Β  β”œβ”€β”€ config.js          Contains the configuration manager
β”‚Β Β  β”œβ”€β”€ github.js          Business logic: authentication and API calls
β”‚Β Β  β”œβ”€β”€ ui.js              CLI interactions
β”‚Β Β  └── utils.js           Lightweight utility functions
β”œβ”€β”€ test
β”‚Β Β  └── test.js            Test coverage with Mocha
β”œβ”€β”€ .prettierrc            Code formatting configuration
β”œβ”€β”€ index.js               The main thread of execution
β”œβ”€β”€ README.md              you're looking at it

To set up your environment to develop this tool, run:

  • npm install
  • node index

You can also run node index DEV=true CLIENT_ID=<YOUR_TESTING_CLIENT_ID> if you want to use your own client id for development and testing purposes.

All the tests are written with mocha and can be run with npm test.

TODO

  • TODO: --force flag to avoid confirmation
  • TODO: --regex flag to delete repos matching a regex
  • TODO: --list flag to delete repos from a comma-separated list
  • TODO: --archive and -a flag to archive repositories instead of deleting
  • TODO: ghpew gists command to delete gists

Questions? Ideas? Bugs?

If you run into any issues or you'd like to share your thoughts, feel free to open an issue in this repository or hit me up on Twitter.

Contributions

Logo designed by Rapha Lopes. Thanks to @sergiou87, @zschiller, @mamuso, @anishde12020, and @jdvr for contributing with their feedback and ideas πŸ™‡β€β™‚οΈ.

License

The tool is available as open-source under the terms of the MIT License.