Jasper v1.0.0をリリースしました🚀(GitHub用のissueリーダー)

以前から開発しているJasper(GitHub用のissueリーダー)のv1.0.0をついに今日リース!やったー!前バージョンから作り直しレベルでコードを書き換えたので、かなり大変だったなぁ。でもそのおかげですごく良いものにできた!

jasperapp.io

というわけで、こんにちは丸山@h13i32maruです。今日はJasper v1.0.0のリリース記事なのですが、GitHubを普段使ってる人にはJasperも是非使ってみてほしいので、少ししっかりめに書いてみました。よろしくおねがいします🙋

🕵️ Jasperとは(初見の方向け)

f:id:h13i32maru:20201004201359p:plain

JasperはGitHubのissueを柔軟に見ることができるツールです。例えば「nodejs/nodeのbugラベルがついたissue」「自分が作成したpull request」などの条件でissueを見たり通知を受け取れます。この条件はJasperに次のようなクエリで設定します(この機能をStreamと呼ぶ)。

repo:nodejs/node is:issue label:bug

f:id:h13i32maru:20201003130501p:plain:w400

世の中にはGitHub用のissueリーダーは公式(github.com/notifications)含め色々ありますが、基本はGitHub Notifications APIを使っています。しかしJasperはGitHub Search APIを使っているので、それらのツールに比べてかなり柔軟な使い方ができます。

僕は仕事でGitHubを使っているので、issueの見落としを防いだり、ユースケースに合わせて柔軟に使えるようにと考えて、このJasperを作りました。

🔧 v1.0.0での改善点(すでにJasperを使ってる方向け)

以前のJasperは良くない設計や実装があり、そのせいでいくつか不満点がありました。僕自身も不満だったものの、改善するのが難しかったのですが、v1.0.0ではめでたく改善することができました🎉

  • クリックや読み込みの反応速度アップ
  • PRのマージ・クローズを正しく表示
  • Streamのスムーズな並び替え
  • issueを自分で更新した場合に通知をしない

それと、今回のバージョンアップで新たにnotificationsread:orgのスコープが必要になります。 Jasperに設定しているGitHubアクセストークンを編集してこれらのスコープを追加してください。 f:id:h13i32maru:20201005214739p:plain:w400

🧙‍♂ v1.0.0での新機能

v1.0.0では大小様々な新機能を開発したのですが、特におすすめ(と言う名の話したいもの)を紹介します!

デザイン

f:id:h13i32maru:20201005081248p:plain

macOS Big SurからUIパーツの見た目がけっこう変わるということなので、それを参考にリデザインしてみました。テーマは明るく親しみやすい感じ。素人デザインですが、個人的には割とよくできたなと満足してます。

issueの表示

f:id:h13i32maru:20201004101742p:plain:w400

issueリストにはラベルやauthorなどの情報を表示しています。v1.0.0ではそれらに加えてプロジェクト名やレビュー状況なども表示するようにしました。特にレビュー状況は誰がapprove、changes requestedしてるかがぱっとわかり便利になりました。

検索/Jump Navigation

f:id:h13i32maru:20201003141629p:plain:w400

Jump Navigationを使うとJasper内のissueを検索したりStreamやリポジトリに移動したりなどができます。検索にはクエリ(is:openなど)を使うこともできます。つまりSlackの⌘ + Kのような機能です。

GitHub Projects連携

f:id:h13i32maru:20201004201000p:plain:w400

GitHub Projectのカンバンと連携できるようになりました。未読既読をカンバンに反映させたり、カンバンでissueを選択したらJasperで表示するようになりました。

ダークモード

f:id:h13i32maru:20201004201149p:plain:w400

以前のバージョンでは任意のcssを読み込めるユーザテーマ機能でダークモードを実現していたのですが、v1.0.0からは組み込みでダークモードに対応しました(ユーザテーマ機能は廃止)。

スマホとの併用

f:id:h13i32maru:20201003135352p:plain:w400

これまでスマホやJasper外のブラウザでissueを見ても、Jasperでは既読になりませんでした。v1.0.0ではGithub Notificationsとシンクすることで、既読を反映できるようになりました。これでスマホとの併用もだいぶ実用的になったかと思います。

📖 Handbook

Jasperには今回紹介した以外にも様々な機能があります。そのためJasper Handbookというドキュメントを作成しました。用途に応じて参照してもらえると嬉しいです。

もしJasperを誰かに紹介してくださる場合は「クイックスタート」も一緒に紹介してほしいです🙏

💻 技術的な話

も書こうかと思ったんですが、長くなってきたので、またそのうち別記事にします。Electronアプリの高速化や、ダークモード対応、UIなどについて書く予定です。


というわけで、Jasper v1.0.0の紹介でした。興味を持った方は是非お試しください〜。

jasperapp.io

GitHubのスターもお待ちしております!