Skip to content

ashajjar/GithubNotificationApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Github Desktop Notifications

Installation

You need to add an environment variable GITHUB_TOKEN for the application to work, the token has to be valid of course for the app to work, and has to have access to the repos in the watch list.

Extra Step on Mac

You need to do this after you define your GITHUB_TOKEN :

launchctl setenv GITHUB_TOKEN $GITHUB_TOKEN

Usage

You add the repos you would like to watch:

Main-App-Window.png

You get notifications whenever there is a new PR in one of the watched repos

Notification.png

If you happen to miss some notification, or you want to see the currently open PRs, hit Ctrl + O or click Open PRs button, to see the list:

Open-PRs.png

Keymap

Key Action
Ctrl + ENTER
ALT + A
Insert new watched repo in the watch list
Ctrl + O
ALT + O
Open a list of currently open PRs
Ctrl + D
ALT + R
Removes the selected repo from the watch list
Ctrl + S Saves the repos watch list to disk
F1
ALT + H
Show help message
ALT + N Focus the repo name text box
ALT + W Focus the repos list

On The Project and The Idea

This project was supposed to be a small script that reads the list of repos of a certain organisation on Github, which turned out to be not that trivial after all. So I decided to let Chat GPT write "all" the code in Kotlin, but it was absolute disaster 😅, so I asked it to write it in Java Swing and after so much tweaking of the prompts I got the (initial commit).

Obstacles

The first problem was that the organisations API on Github is not that straight forward, main issue being the lack of filtering of repos, for example n Organisation like Adobe has on Github about 900 Repos, with no way to get specific repos, it would be impossible to read the PRs of all of them. Hence the idea turned to be based on watching instead of pulling all.

The second (unsolved issue) is the licensing, to publish software on the internet, you need to have code signing certificate which costs lots of money yearly, (even for open source software which is crazy). To solve this, I tried to switch platforms, to the web, but this turned out to be a difficult change, since the managing the notifications in the web needed some sort of shared state, which would be an expensive solution.

The third issue/requirement is to run the script across platforms. The native notifications API is very complicated and limites especially on MacOS. The web solution could have been a good fit for this problem however due to cost reasons mentioned above I turned back to Kotlin Compose, finally back to Swing again, but this time with a homemade notification center, where Native Notification API won't be necessary.

About

Get desktop notifications about PRs for repos you decide to watch

Topics

Resources

Stars

Watchers

Forks

Languages