GitHubをパトロールするためのWebアプリを作ってみた

GitHubのトップページではウォッチしているリポジトリのアクティビティがタイムラインのように表示されるのですが、ウォッチしているリポジトリ数が多いと見落としてしまいがちです。そこで、自分がウォッチしているリポジトリの中から選択したリポジトリのアクティビティのみ表示するタイムラインリーダーのようなものを作ってみました。

f:id:takezoe:20170218005503j:plain

こんな感じで選択したリポジトリのアクティビティを一覧表示し、未読管理も行うことができます。キーボードショートカットも装備しているのでRSSリーダーのような感じで使うことができます。

GitHubのタイムラインはRSSフィードも提供されているのですが、リポジトリごとにRSSリーダーに登録するのは面倒ですし、GitHubAPIから取得できる情報と比べるとRSSフィードに含まれる情報量は多くはありません。このアプリケーションではウォッチしているリポジトリの中から選択するだけで購読できたり、イシューのMarkdownをHTMLに変換して表示するなどGitHubに最適化されています。

今のところコードを公開する予定はないのですが、このアプリケーションはもちろんScalaで書いており、サーバサイドはRestyを使っています。データは最初はElasticsearchに入れていたのですが、低スペックなVPSだとElasticsearchを動かすのが厳しいこと、個人で使うものなのでそれほどのデータ量にならないだろう(&データが増えたら消せばよい)ということで途中からPostgreSQLに移行しました。

フロントはVue.jsを使っているのですが、HTML1枚なのでwebpackなどは使わずベタ書き+WebJarsで済ませています。機能が増えてきたらコンポーネント化のためにwebpackを導入する必要が出てくるかもしれません。Vue.jsはシンプルなAngular1という感じでちょっとしたものを作るには非常に便利でいいですね。趣味で作っているものなのでフロントをScala.jsで書いてみるのも面白いかもしれません。

まだ不足している機能も多いので少しずつ手を入れていこうと思いますが、ひとまずこれで気になるリポジトリのアクティビティを見逃すことはなくなりそうです!