Tithe.ly Engineering
GitHub Notification Tips
Recently, Tithe.ly has been formalizing our processes around GitHub and our pull request process. As a part of this, I shared some tips that I’ve applied to my personal GitHub (GH) workflow to make notifications actually useful. For purposes of this post, when I say Github Notifications, I’m talking about your personal notification inbox that you have available at https://github.com/notifications that you might not even know exists! We will only really talk about notifications in the context of one GitHub organization. However, you can apply these same principles to any other organization, personal repos, or other watched repos that you participate (or want to participate) in.
Watch Your Watch Settings
First things first, we need to tune up your watch settings. These are available at the top right of each repository, and, unfortunately, you are probably watching All Activity in each of your organization’s repos.
Generally, it would be best if you only watched all activities on the repos that you actively contribute to. Every other repo, Participating, and @mentions, is usually the best setting. This will alert you if anyone mentions you in an issue, PR, or commit and alerts you of any updates to Issues or PRs that you have opened against the repo. I highly recommend updating your watch preferences across the board to this preference. Recently, GH has released the Custom watch settings highlighted above. Feel free to tune these as necessary.
As you use the notifications inbox, be cognizant of any repos you constantly are clearing notifications for. If you’re doing this frequently for a repo, consider going in and playing around with your watch settings to reduce the amount of noise coming into the inbox. Similar to email, the more a notification provides you with an actionable step, the more valuable the inbox alerts are.
Tune Your Email Notifications
The next area you’ll want to tweak is your account notification settings. You can get here by going to https://github.com/settings/notifications. You can peruse these at your leisure and change them as you see fit. I highly, HIGHLY recommend disabling email notifications for just about everything. The only one I keep on is the weekly security digest from Dependabot. Again, anytime you receive a notification that you don’t want or isn’t useful, change your watch settings for the repository or check this Settings page to see if you can disable the notification. We’re all about getting only useful, actionable notifications in front of us.
Pull, Not Push
Now that the settings are all tuned up, it’s time to actually start using GH notifications! Something that has drastically helped my workflow is to get into a pulling mindset for notifications and not a push mindset. What does that mean? Often, when we think about notifications, it’s in the context of a push message that interrupts us. This is what happens when GH sends an email, and it causes you to switch contexts prematurely. If you’ve followed my suggestions so far, you shouldn’t have GH notifying you in any way except for the notifications page.
Since notifications are all compiled nicely in the notification inbox, and we have pruned any notifications that aren’t immediately actionable, we can start thinking in a pull mindset. I only look at the inbox when I’m ready to receive, or pull in, new work. This is normally when I’m switching contexts, starting my day, coming back from lunch, etc. Because the inbox is actionable, I can normally click through and contribute a quick review or respond to a conversation.
After I have “read” and acted on the notification, I mark it as completed with the checkmark icon. I know any further conversation or additional actions I need to take will show up in the inbox. I prioritize a clean notification inbox to see better which repos need my attention.
Because I use notifications so frequently, I have “pinned” my GH notification inbox in Chrome, so it always serves as my home base. It helps keep my team top of mind for me, guarantees that I don’t miss any conversation that I need to be a part of, and allows for seamless context switches.
Wrapping Up
These are just a few tricks I’ve applied to my personal workflow that you guys might find beneficial. If you have any tricks or questions about any of this, I’d love to hear from you!