跳到主要内容

本周项目:Jasper

·阅读 6 分钟

本周我们采访了 Jasper 的创建者,Jasper 是一款基于 Electron 的 GitHub 通知管理工具。


你好!你是谁?

我是 Ryo Maruyama,一名来自日本的软件开发者。我正在开发 JasperESDoc

Jasper 是什么?

Jasper 是一个灵活而强大的 GitHub 问题阅读器。它支持 github.com 和 GitHub Enterprise 上的问题和拉取请求。

Jasper App Screenshot

你为什么开发它?

当人们在工作或开源活动中使用 GitHub 时,他们每天都会收到大量通知。作为订阅通知的一种方式,GitHub 提供了电子邮件和 网页通知。我使用了这些方式几年,但遇到了以下问题:

  • 我很容易忽略那些提到我、我评论过或我正在关注的问题。
  • 我把一些问题放在脑海深处以便稍后查看,但我有时会忘记它们。
  • 为了不忘记问题,我会在浏览器中打开很多标签页。
  • 很难检查所有与我相关的问题。
  • 很难掌握我团队的所有活动。

我花费了大量时间和精力来解决这些问题,所以我决定制作一个 GitHub 问题阅读器来高效地解决这些问题,并开始开发 Jasper。

谁在使用 Jasper?

Jasper 被一些使用 GitHub 的公司的开发者、设计师和经理使用。当然,也有一些开源开发者在使用它。甚至 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提到用户 catdog 的问题
author:cat author:dog由用户 catdog 创建的问题
assignee:cat assignee:dog分配给 catdog 的问题
commenter:cat commenter:dogcatdog 评论过的问题
involves:cat involves:dog“涉及” catbob 的问题
team:animal/white-cat team:animal/black-dog提到 animal/white-catanimal/black-dog 的问题

involves 表示 mention(提及)、author(作者)、assignee(受让人)或 commenter(评论者)

仓库和组织

问题
repo:cat/jump repo:dog/runcat/jumpdog/run 中的问题
org:electron user:cat user:dogelectroncatdog 中的问题

orguser 相同

属性

问题
repo:cat/jump milestone:v1.0.0 milestone:v1.0.1cat/jump 中附加到 v1.0.0v1.0.1 的问题
repo:cat/jump label:bug label:blockercat/jump 中同时附加了 bug blocker 标签的问题
electron OR atomshell包含 electronatomshell 的问题

评审状态

问题
is:pr review:requiredcat/jump 中需要评审的问题
is:pr review-requested:catcat 请求评审的问题。
但这些尚未被评审。
is:pr reviewed-by:catcat 评审过的问题

您可能已经注意到,流可以使用 GitHub 的搜索查询。有关如何使用流和搜索查询的详细信息,请参阅以下 URL。

Jasper 还具有未读问题管理、未读评论管理、标记星标、通知更新、问题过滤、键盘快捷键等功能。

Jasper 是付费产品吗?价格是多少?

Jasper 售价 12 美元。但是,您可以免费试用 30 天的 免费试用版

你为什么选择用 Electron 构建 Jasper?

我喜欢 Electron 的以下几个方面:

  • 应用可以使用 JavaScript/CSS/HTML 开发。
  • 应用可以为 Windows、Mac 和 Linux 平台构建。
  • Electron 正在积极开发中,并拥有庞大的社区。

这些特性使得桌面应用程序的开发变得快速而简单。这太棒了!如果你有任何产品想法,务必考虑使用 Electron。

在开发 Jasper 的过程中你遇到过哪些挑战?

我在理解“流”概念时遇到了困难。起初我考虑使用 GitHub 的 通知 API。但我注意到它不支持某些用例。之后我考虑除了通知 API 外,还使用 问题 API拉取请求 API。但它从未达到我想要的效果。然后,在思考各种方法时,我意识到轮询 GitHub 的 搜索 API 将提供最大的灵活性。我花了大约一个月的时间进行实验才达到这一点,然后我在两天内用流的概念实现了 Jasper 的原型。

注意:轮询频率最多限制为每 10 秒一次。这对于 GitHub API 的限制来说已经足够了。

接下来会是什么?

我计划开发以下功能:

  • 过滤流:一个流可以有若干过滤流,用于过滤流中的问题。这类似于 SQL 中的视图。
  • 多账户:您将能够同时使用 github.com 和 GHE。
  • 性能改进:目前,在 WebView 中加载问题的速度比普通浏览器慢。

在 Twitter 上关注 @jasperappio 获取更新。