以前から開発しているJasper(GitHub用のissueリーダー)のv1.0.0をついに今日リース!やったー!前バージョンから作り直しレベルでコードを書き換えたので、かなり大変だったなぁ。でもそのおかげですごく良いものにできた!
というわけで、こんにちは丸山@h13i32maruです。今日はJasper v1.0.0のリリース記事なのですが、GitHubを普段使ってる人にはJasperも是非使ってみてほしいので、少ししっかりめに書いてみました。よろしくおねがいします🙋
🕵️ Jasperとは(初見の方向け)
JasperはGitHubのissueを柔軟に見ることができるツールです。例えば「nodejs/nodeのbugラベルがついたissue」「自分が作成したpull request」などの条件でissueを見たり通知を受け取れます。この条件はJasperに次のようなクエリで設定します(この機能をStreamと呼ぶ)。
repo:nodejs/node is:issue label:bug
世の中には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を自分で更新した場合に通知をしない
それと、今回のバージョンアップで新たにnotifications
とread:org
のスコープが必要になります。
Jasperに設定しているGitHubアクセストークンを編集してこれらのスコープを追加してください。
🧙♂ v1.0.0での新機能
v1.0.0では大小様々な新機能を開発したのですが、特におすすめ(と言う名の話したいもの)を紹介します!
デザイン
macOS Big SurからUIパーツの見た目がけっこう変わるということなので、それを参考にリデザインしてみました。テーマは明るく親しみやすい感じ。素人デザインですが、個人的には割とよくできたなと満足してます。
issueの表示
issueリストにはラベルやauthorなどの情報を表示しています。v1.0.0ではそれらに加えてプロジェクト名やレビュー状況なども表示するようにしました。特にレビュー状況は誰がapprove、changes requestedしてるかがぱっとわかり便利になりました。
検索/Jump Navigation
Jump Navigationを使うとJasper内のissueを検索したりStreamやリポジトリに移動したりなどができます。検索にはクエリ(is:open
など)を使うこともできます。つまりSlackの⌘ + K
のような機能です。
GitHub Projects連携
GitHub Projectのカンバンと連携できるようになりました。未読既読をカンバンに反映させたり、カンバンでissueを選択したらJasperで表示するようになりました。
ダークモード
以前のバージョンでは任意のcssを読み込めるユーザテーマ機能でダークモードを実現していたのですが、v1.0.0からは組み込みでダークモードに対応しました(ユーザテーマ機能は廃止)。
スマホとの併用
これまでスマホやJasper外のブラウザでissueを見ても、Jasperでは既読になりませんでした。v1.0.0ではGithub Notificationsとシンクすることで、既読を反映できるようになりました。これでスマホとの併用もだいぶ実用的になったかと思います。
📖 Handbook
Jasperには今回紹介した以外にも様々な機能があります。そのためJasper Handbookというドキュメントを作成しました。用途に応じて参照してもらえると嬉しいです。
もしJasperを誰かに紹介してくださる場合は「クイックスタート」も一緒に紹介してほしいです🙏
💻 技術的な話
も書こうかと思ったんですが、長くなってきたので、またそのうち別記事にします。Electronアプリの高速化や、ダークモード対応、UIなどについて書く予定です。
というわけで、Jasper v1.0.0の紹介でした。興味を持った方は是非お試しください〜。