最初に結論(作ったもの)↓
背景
現場でGitHubを使っていて、issueのアサインや更新、プルリクのレビュー依頼等の通知に気づきにくく、これを解決したいと思っていました。
通常GitHub側の通知設定ではメールかWEB(https://github.com/notifications ページ)での通知になっているものの、理想はデスクトップ通知でした。
最初に検討したこと
調べてみるとGitifyが良さそうだったのですが、現場のアカウントで行う以上アプリ内で認証を行う懸念と、組織のGitHubアカウントの方でサードパーティアプリの連携許可をする必要があり、残念ながら候補からは外れました。
他には https://github.com/notifications ページをRSSリーダーで検知する、も考えたのですが、意外とデスクトップ通知ができるようなちょうど良いアプリやChrome拡張などがなく(しかも信頼性があるもので)、これも断念しました。
結構色々調べたものの、自分が調べた限りではどうしても無さそうだったので、今回自分でchrome拡張機能を作ることにしました。
完成したもの
最初は自分のローカルだけにインストールして使っていたのですが、せっかくならと公開してみました。
ちょこちょこ修正したりして今はv1.3です。
安全性の担保のためソースコードも公開しています。(ぜひ確認して頂ければと)
https://github.com/hisw-29/github-desktop-notification
この拡張機能のポイントとしては下記のあたりです。
- 拡張機能側に認証情報等を渡す必要が無い
- やってることは https://github.com/notifications のDOM要素を毎分見て変更をチェックしているだけ
- 差分はブラウザのローカルストレージに保存
- デスクトップ通知をクリックすると https://github.com/notifications を開く
- 既に開いている場合、タブをアクティブにする
作った本人としては処理が分かってるので安心して使えるのと、実際使ってみるとかなり便利でした。
レビュアーにされたりしたら気づいてすぐapproveしたりするので、きっと気味悪がられて感謝されていると思います。
今思ったのですがレスポンスが早いとチームの開発も加速するのではないでしょうか!
改善したいこと
必要最小限のpermissionになるよう注意して作ったりはしたのですが、より安心して使えるように改善できるところは改善していきたいと思っています。
例えば今だとhost_permissions
でhttps://github.com/notifications
を指定しているのに、https://github.com/
(ホスト単位)で許可になってしまっているような感じで、これはなんとかならないかなと思っています。(ちょっと調べた限りmanifestの設定には無さそうで)
他にも、自分が今回chrome拡張を初めて作成したので、きっと知らない部分で改善できることがあるかなと思っています。