DEV Community

Cover image for Cleaning up your GitHub profile
Mehedi Hassan
Mehedi Hassan

Posted on

Cleaning up your GitHub profile

It was a Wednesday afternoon, and I was busy re-organizing somethings on my portfolio. I also wanted to quickly clean-up my GitHub profile at the same time, as I had lots of repositories for personal projects that I never actually started working on or repositories that I created while following a tutorial, etc. Point is, my GitHub was full of repositories I didn't need, and they were just taking up space unnecessarily.

So I decided to get rid of those and delete the repositories one-by-one from the GitHub website. The process was time-consuming because I had to individually delete the repositories, and GitHub requires you to confirm the repository name before you can delete it. All in all, the process felt like something that can be easily automated.

Like one does, I did a quick Google search and found a tool that supposedly lets you bulk delete repositories. The interface of the app was incredibly confusing, and it ended up deleting repositories that I actually wanted to keep. So what ended up happening is that the app deleted the repositories I wanted to keep, and kept the ones I wanted to get rid of.

🤬💀

I had lost the repository for my biggest project, and because it was part of a forked network, you can't simply recover the repository from your account. I had to reach out to GitHub Support to get the repo back, but even then, I had lost all the years of releases I published on that repo. Long story short, my day quickly turned into a massive nightmare.


And then it hit me: there has to be a better and reliable way of doing this. With the free time I had because of lockdown, I decided to make my own app that lets you bulk delete repositories. My focus with this app was to build an interface that is incredibly simple to understand and use.

I started looking into the GitHub API to get started, and the endpoint for deleting repositories is pretty simple. So I quickly started making a React app that lets you view your repositories separated by Public and Private repositories. From there, you can select repositories you want to delete, and delete them all at once with a single click. The interface of the app, once again, is really simple and lets you clean-up your GitHub account with just a few clicks and without any of the hassle. There's a search feature to search for repositories on your profile, and there's a dark/light theme as well.

Meet GitCleanup: gitcleanup.com.

GitCleanup

The app is completely open-source on GitHub, and you can even deploy your own instance on Heroku:

Deploy

This was a fun little project for me, and I hope it's useful to the community ☺️

Top comments (13)

Collapse
 
derberg profile image
Lukasz Gornicki

Design rocks, initiative awesome as I have a bunch of old forks that I'm too lazy to remove manually. But it is super scary to give repo delete rights to an external application I don't control

Collapse
 
mehedih_ profile image
Mehedi Hassan

Yep, that's why you can deploy your own instance with your own OAuth app creds :)

Collapse
 
derberg profile image
Lukasz Gornicki

Yeap, I love that part of the solution. Great project man. Many people will be happy twitter.com/alexellisuk/status/123... :D

Collapse
 
clsource profile image
Camilo

Seems like a nice tool :)

maybe it can be used to move repos to organizations like the method described here dev.to/clsource/declutter-your-git... :D

so the code can be seen if there are any forks or people that would like to take a look.

Thanks !

Collapse
 
barelyhuman profile image
Reaper

The UI, is truly impressive.
Though, I guess I found a bug, the public api doesn't seem to be fetching all my repos and only the first 10-20.

Collapse
 
mehedih_ profile image
Mehedi Hassan

Hey, thank you! How many repos do you have out of curiosity? I will look into this, and would appreciate if you could share more info on an issue on the github github.com/MehediH/GitCleanup

Collapse
 
barelyhuman profile image
Reaper

sure

Collapse
 
caroso1222 profile image
Carlos Roso

Good work!

Collapse
 
mehedih_ profile image
Mehedi Hassan

Cheers!

Collapse
 
eristoddle profile image
Stephan Miller

Awesome! I need to do this because I fork a lot of repos just to keep them in mind and then forget about them. Not a good plan, lol.

Collapse
 
nedimf profile image
Nedim F

Amazing, I love the design you used.

Collapse
 
patarapolw profile image
Pacharapol Withayasakpunt

It might be a bad idea to delete an abandoned repo, especially if some watching / starring it.

It is bad idea in general to delete shared something.

Had better "archive."

Collapse
 
mehedih_ profile image
Mehedi Hassan

Yep I completely understand that -- I just couldn't think of a better word than "abandoned". In this case I am referring to repos for projects that you never ended up finishing.

Also, regarding "It is bad idea in general to delete shared something," the app shows if a repo has watchers/stars, so I guess that you won't be "knowingly" delete something that's shared.