Sunday, 1 June 2014

Project: Keeping Track of your GitHub Open Issues in Real Time

The need

Since my team started working more and more on open-source projects, which are publicly shared on GitHub, I faced a need to have an easy way to follow up whenever new issues (GitHub's euphemism of bugs) were submitted by users.

There is a way to keep track by "watching" repositories of your choice, for which you get email notifications, but those emails are not limited just to newly submitted issues, but also to every pull/push request and comments. Also, for some reason, although I have clearly unsubscribed ("unwatched") specific repositories on my list, GitHub continues to notify me about them (which seems to be an issue in itself).

Thus, I decided (as always) to take things to my own lazy hands, and spent ~2 days building my very own GitHub Issues Notifier.
Get it on GitHub!

GitHub Issues Notifier

This is a .NET Windows Forms application, which runs automatic scheduled scans for open issues in selected GitHub repositories and/or organizations and notifies the user with new findings in real time from the system's notification area (a.k.a. System Tray).
GitHub Issues Notifier uses OctoKit.NET open library to easily integrate with GitHub's API.

Main features

A few of the features which are currently included:
  • Allows selection individual repositories and/or entire organizations to follow.
  • Allows hand-picked repositories to be left out and ignored.
  • Runs in the background from Window's notification area (System Tray).
  • Can run automatically when Windows starts-up.
  • Performs automatic scheduled scans for new issues in the background at configurable intervals.
  • Easily performs scans on demand at any time with a single click.
  • Reflects the current status in the notification icon itself (yes, I know design is not my strong side).
  • Allows the definition of an SLA in which issues are declared as "late". Namely, if a repository has an open issue which has not been addressed within a certain number of days (or hours), that repository is highlighted as late.
  • Pops up balloon notifications whenever new scan-results are retrieved.
  • Gives a quick overview list of all the tracked repositories, differentiating ones without any open issues, ones with open issues and ones with open issues which are determined as late according to the defined SLA.
  • One-click to get to the repository's issue list on GitHub.
  • Unlike GitHub's "watches", this does not publicly list you as a watcher on GitHub. Stalk all you want!!1
  • Supports pastafarianism.
Pending features will include concentrated email notifications as well.

Selected screenshots, or it didn't happen...

The notification icon indicates the current status of the scan or its results:
All is clear!
A balloon popup notification indicates new findings.
Balloons!!! You got a problem with that, HATER??
Open issues indicated by icon-colour and overlay text.
An informative tooltip also gives:
  • The number of open issues
  • The number of late issues
  • The total number of repositories
  • Time elapsed since the last scan
Informative tooltips. Because why the hell not?!
Once the list is refreshed, you get an easy overview of your selected repositories. Ones with late issues are highlighted, others are marked as either red (plus the number of open issues) or green. Clicking a repository sends you right to the repository's issues page on GitHub.
An animated screenshot. You got a problem with that, HATER?
A quick overview. Click a repository to go to GitHub.

Get it, use it.

  • To get the full project source, fork it (or download it as zip) from GitHub.
  • To get just the application without building it, click here.
If you encounter any bugs or problems, open an issue on GitHub. I'm keeping track! :-)