メインコンテンツへスキップ

今週のプロジェクト: Jasper

·5分で読めます

今週は、GitHubの通知を管理するためのElectronベースのツールであるJasperの作成者にインタビューしました。


こんにちは!あなたは誰ですか?

日本のソフトウェア開発者、丸山 亮です。JasperESDocを開発しています。

Jasperとは何ですか?

Jasperは、GitHub用の柔軟で強力なイシューリーダーです。github.comとGitHub Enterpriseのイシューとプルリクエストをサポートしています。

Jasper App Screenshot

なぜそれを作ったのですか?

人々が仕事やOSS活動でGitHubを使用していると、日々多くの通知を受け取る傾向があります。通知を購読する方法として、GitHubはメールとウェブ通知を提供しています。私はこれらの通知を数年間使用しましたが、次の問題に直面しました。

  • メンションされたイシュー、コメントしたイシュー、またはウォッチしているイシューを見落としやすい。
  • 後で確認するためにいくつかのイシューを頭の片隅に置いておきますが、それらを忘れてしまうことがあります。
  • イシューを忘れないように、ブラウザで多くのタブを開いたままにしています。
  • 自分に関連するすべてのイシューを確認するのは難しい。
  • チームのすべてのアクティビティを把握するのは難しい。

これらの問題を回避するために多くの時間とエネルギーを費やしていたため、これらの問題を効率的に解決するためにGitHub用のイシューリーダーを作成することにし、Jasperの開発を開始しました。

誰がJasperを使用していますか?

Jasperは、GitHubを使用している複数の企業の開発者、デザイナー、マネージャーによって使用されています。もちろん、一部のOSS開発者も使用しています。また、GitHubの一部のスタッフも使用しています!

Jasperはどのように機能しますか?

Jasperが構成されると、次の画面が表示されます。左から右に、「ストリームリスト」、「イシューリスト」、「イシュー本文」が表示されます。

Jasper Start Screen

この「ストリーム」がJasperの中核機能です。たとえば、「electron/electronリポジトリの@zekeに割り当てられたイシュー」を見たい場合は、次のストリームを作成します。

repo:electron/electron assignee:zeke is:issue

Jasper Start Screen 2

ストリームを作成して数秒待つと、条件を満たすイシューが表示されます。

Jasper Start Screen 3

ストリームで何ができますか?

ストリームに使用できる条件の種類を紹介します。

ユーザーとチーム

ストリームイシュー
mentions:cat mentions:dogユーザー cat または dog をメンションしているイシュー
author:cat author:dogユーザー cat または dog によって作成されたイシュー
assignee:cat assignee:dogcat または dog に割り当てられたイシュー
commenter:cat commenter:dogcat または dog がコメントしたイシュー
involves:cat involves:dogcat または bob が「関与」しているイシュー
team:animal/white-cat team:animal/black-doganimal/white-cat または animal/black-dog がメンションされているイシュー

involvesmentionauthorassignee、または commenter を意味します。

リポジトリと組織

ストリームイシュー
repo:cat/jump repo:dog/runcat/jump または dog/run のイシュー
org:electron user:cat user:dogelectroncat、または dog のイシュー

orguser と同じです

属性

ストリームイシュー
repo:cat/jump milestone:v1.0.0 milestone:v1.0.1cat/jumpv1.0.0 または v1.0.1 にアタッチされているイシュー
repo:cat/jump label:bug label:blockercat/jumpbug **および** blocker がアタッチされているイシュー
electron OR atomshellelectron または atomshell を含むIssue

レビュー状況

ストリームイシュー
is:pr review:requiredcat/jump でレビューが必要なIssue
is:pr review-requested:catcat によってレビューがリクエストされたIssue。
しかし、これらはまだレビューされていません。
is:pr reviewed-by:catcat によってレビューされたIssue

これらを見てお気づきかもしれませんが、ストリームはGitHubの検索クエリを使用できます。ストリームと検索クエリの使用方法の詳細については、以下のURLを参照してください。

Jasperには、未読Issueの管理、未読コメントの管理、スターの付与、通知の更新、Issueのフィルタリング、キーボードショートカットなどの機能もあります。

Jasperは有料製品ですか?費用はいくらですか?

Jasperは12ドルです。ただし、無料トライアル版を30日間使用できます。

なぜJasperをElectronで構築することを選んだのですか?

私はElectronの以下の点が気に入っています。

  • JavaScript/CSS/HTMLでアプリを開発できる。
  • Windows、Mac、Linuxプラットフォーム向けにアプリをビルドできる。
  • Electronは活発に開発されており、大規模なコミュニティがある。

これらの機能により、迅速かつシンプルなデスクトップアプリケーション開発が可能になります。素晴らしいです!何か製品のアイデアがあれば、ぜひElectronの使用を検討してみてください。

Jasperの開発中に直面した課題は何ですか?

私は「ストリーム」の概念を理解するのに苦労しました。最初はGitHubのNotifications APIの使用を検討しました。しかし、特定のユースケースをサポートしていないことに気づきました。その後、Notification APIに加えて、Issues APIPull Requests APIの使用を検討しました。しかし、それは私が望んでいたものにはなりませんでした。その後、さまざまな方法を考えているうちに、GitHubのSearch APIをポーリングするのが最も柔軟性があることに気づきました。この時点に到達するまでに約1ヶ月の実験を要し、その後、ストリームの概念を持つJasperのプロトタイプを2日間で実装しました。

注:ポーリングは最大でも10秒に1回に制限されています。これはGitHub APIの制限としては十分に許容できるものです。

次はどうなりますか?

私は以下の機能を開発する予定です。

  • フィルタリングされたストリーム:ストリームには、ストリーム内のIssueをフィルタリングするフィルタリングされたストリームがいくつかあります。これはSQLのビューのようなものです。
  • 複数のアカウント:github.comとGHEの両方を使用できるようになります。
  • パフォーマンスの向上:今のところ、WebViewでのIssueの読み込み速度は通常のブラウザよりも遅いです。

更新情報については、Twitterで@jasperappioをフォローしてください。