ponyfoo.com

GitHub for Human Beings 🕵

GitHub – and GitHub users – can be kind of annoying sometimes. Here are a few tips to improve your day-to-day experience.

Improve this article
Nicolás Bevacqua
| 3 minute read | 4

There are several far from ideal situations in which GitHub can become very annoying and ineffective at notifications 🔔 and highlighting what matters. To me, what matters most in GitHub is: reading updates to issues and pull requests, and coming across interesting repositories that people I follow star or fork.

The Watchful Giga-org 🙄

Do you belong in a large organization like nodeschool? Then you know what it’s like to be added to a new repository every other day, and having to either unwatch those whenever they are created, set up email filters to prevent the incoming spam, or receive a barrage of emails you don’t care about.

The “Add Collaborator” Spam-Fest ✨

Earlier today someone published an attention-whore repo on GitHub. That repo lets anyone who has a few minutes to spare spam the hell out of everyone’s activity feed on GitHub. The idea is to inconsiderately draw attention to a repository.

The Death Star ⚰

Have a trending repository that got featured on Hacker News or the like? Good luck finding issues and pull requests today in your activity feed.

Let’s fix these issues one at a time.

Unwatching All the Things 🙈

This one I learned a while back from Jessica Lord. It may take a while to get used to, but it’s well worth it – if you ever step into a large GitHub org.

  • Go to your account’s Notification Settings and uncheck the “Automatically watch repositories” checkbox
image description
image description
  • Then – and this is the harder-to-find tip – go to Watching and click on Unwatch all. This will get rid of all repos you were watching but didn’t want to.
image description
image description
  • You’ll then have to individually watch the repos you care about. Remember to watch repositories you create yourself! This is mostly a matter of practice, you’ll forget for the first few. I just wish GitHub had more options around this so that you could auto-watch only your own repositories.

Getting rid of Unnecessary Bloat 🐡

For all other things GitHub interface bloat, there is refined-github. It’s a browser extension that comes in several flavors and hides annoying things like star and fork notifications for your own repositories, add collaborator notifications that spam the hell out of your activity feed, and many more UX improvements and tweaks.

Here’s how my feed looks without and with the extension, respectively.

My GitHub activity feed
My GitHub activity feed

Highly recommended!

Got any more tips to share? I’d love to hear more in the comments.

Liked the article? Subscribe below to get an email when new articles come out! Also, follow @ponyfoo on Twitter and @ponyfoo on Facebook.
One-click unsubscribe, anytime. Learn more.

Comments (4)

Gabo Esquivel wrote

Good Article. Thanks for mentioning refined-github ;)

Haralan Dobrev wrote

Thanks for mentioning Refined GitHub! (one of the collaborators here)

We are actively trying to improve things, please head to https://github.com/sindresorhus/refined-github/issues if you have any suggestions of what you want to see.

You’ve mentioned Refined GitHub removes fork notifications, however this wasn’t the case until a few hours ago as you can see from your screenshot. The change is not even released on the Chrome Web Store yet. I guess you could update in a few hours/days when it is released.

If you have the time to expand the Refined GitHub section in this post or write a new one with info on more of its many features, this would be much appreciated!

Thanks a lot!

Nicolás Bevacqua wrote

I really, really wanted to hide collaborator notifications, so I did that yesterday before the article came out!

I’d be happy to add more info if you want to email me some Markdown.

Andrew Tobin wrote

Hey Nicolás, I know this is a few months old, and you’ve probably got a solution already… I was telling a co-worker about your newsletter and I spotted this one. You could always get a snippet like this, since they’re on one page (for me at least).

var name = document.querySelector(’.header-nav-current-user strong’).innerText; var subscriptions = document.getElementsByClassName(‘js-subscription-row’); for(var i = 0; i < subscriptions.length; i++) { if(subscriptions[i].querySelector(‘a span’).innerText !== name) subscriptions[i].querySelector(’.js-unsubscribe-form button’).click(); }; console.log(‘done’);

That will “click” all the unsubscribe links of whatever hasn’t got your name attached. You could add it to the Refined Github as another button on the UI if it’s at all valuable. I’m not a JS expert so there’s probably (definitely) a better answer I’m sure :)