Note
This was originally written for some coworkers and assumes a mostly GitHub-based workflow. It has been lightly edited to be more readable, but if your organization doesn’t use GitHub like we do then it might not apply great.
GitHub can generate a lot of notifications which can be difficult to follow, this documents some of my process for keeping up with it! For reference, I subscribe to:
I also watch a bunch of open source projects and have some of my own projects. (These are mostly Twisted or Celery related.)
I generally enjoy having some idea of “everything” going on in my team (in enough detail to know what people are generally working on).
To avoid being overwhelmed by notifications I only subscribe to specific issues for repositories from other teams or projects. These are usually:
For reference, I currently watch 321 repositories, although most of my notifications probably come from < 20 repositories. I also have 32 repositories with custom notification rules — those are set to only releases & Security alerts. (And I have 1 muted repository.) [1]
I tend to do the following daily:
Each time I check notifications I quickly triage each notification by skimming the title to see if I’m interested (sometimes the title is enough info!). From this I do one of several things:
I use both Thunderbird and the GitHub website (specifically the unread notifications view) to go through notifications. Note that the website has quick buttons on the right which I use frequently: “Done” and “Unsubscribe” (there is also “Save” — which I do not use, I mark as unread if I need to come back). It can also be useful to “Mark as done” an entire repository for projects I follow out of vague interest, but don’t have time to read at the moment.
“Open unread” is useful to get everything into separate tabs for later processing (and to avoid waiting for GitHub to load). I usually use it when I have < 10 notifications left for a particular repository.
I usually attempt to go through notifications that I know I won’t have to respond to first, as they can be quickly processed and reduce the overwhelming number of notifications.
This workflow refers to using GitHub with Mozilla Thunderbird (via Fastmail) and Mozilla Firefox, none of it is particular to those applications and can be adapted to others.
If you use GitHub for both work and other personal / open source projects it can be helpful to route your work notifications to a separate email address. (This is a good idea regardless for security & intellectual property concerns.)
Your default email can be configured on the Notifications page and separation by organization can be configured on the Custom routing page. Under “Subscriptions” on the Notification page, I have both “Watching” and “Participating, @mentions and custom” set to notify on both GitHub & email.
You may also want to tweak your “Customize email preferences”. I have the following enabled:
I disable “Pull Request pushes” because I don’t find it useful, although you will still get these via the website.
I have two mail rules setup in Fastmail to move all GitHub email to a separate folder and to mark my own emails as read: [3]
Similar filters can be setup on other mail services, e.g. Google Mail:
You can also check for more ways to filter GitHub emails.
For all of my folders I use threads (View > Sort By > Threaded) and only view threads which have unread messages (View > Threads > Threads with Unread).
Other things that are useful:
I sort my threads by date, oldest first so I can just click the “n” hotkey to move through messages quickly. I also use the message pane to have some context on remaining unread messages per thread, but it should work fine without that. If you decide you don’t care about the rest of the thread “r” marks it as read. Note that reading any messages in a thread will mark the entire issue or pull request as done on the website. I find this extremely efficient for going through a small number of notifications quickly.
I very much wish there was a way to sync back the read status of notifications from GitHub back to Thunderbird. Lacking that I tend to mark the entire folder as read (Shift+C) if I’ve caught up on the website. [4]
I use a few GitHub related extensions which can help:
Hopefully some of this is helpful, please let me know if you have any questions or thoughts!
[1] | In August 2021 I was watching 263 repositories and had 18 repositories with custom notification settings. |
[2] | My team rotates through who is the first-line of contacts for incoming community requests, releases, etc. |
[3] | I have similar filters setup for GitLab, Sentry, etc. |
[4] | You could probably do this with an Thunderbird extension, but I’ve failed to find time to look into it. |