跳转到主要内容

本周项目:Jasper

·6 分钟阅读

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


你好!你是谁?

我是 Ryo Maruyama,一位在日本工作的软件开发者。我正在开发 JasperESDoc

Jasper 是什么?

Jasper 是一款灵活且强大的 GitHub issue 阅读器。它支持 github.com 和 GitHub Enterprise 上的 issues 和 pull requests。

Jasper App Screenshot

你为什么要做这个?

当人们在工作中或参与开源项目时使用 GitHub,他们每天都会收到很多通知。GitHub 提供邮件和 Web 通知 来订阅这些通知。我使用了几年,但遇到了以下问题:

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

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

谁在使用 Jasper?

Jasper 被一些使用 GitHub 的公司的开发者、设计师和经理使用。当然,也有一些开源开发者在使用它。GitHub 的一些员工也在使用它!

Jasper 如何工作?

一旦 Jasper 配置完成,就会出现以下屏幕。从左到右,你可以看到“流列表”、“issues 列表”和“issue 正文”。

Jasper Start Screen

这个“流”是 Jasper 的核心功能。例如,如果你想查看“分配给 @zeke 在 electron/electron 仓库中的 issues”,你就创建以下流:

repo:electron/electron assignee:zeke is:issue

Jasper Start Screen 2

创建流并等待几秒钟后,你就可以看到符合条件的 issues。

Jasper Start Screen 3

我们可以用流做什么?

我将介绍流可以使用哪些类型的条件。

用户和团队

Issues
mentions:cat mentions:dog提及用户 catdog 的 Issues
author:cat author:dog由用户 catdog 创建的 Issues
assignee:cat assignee:dog分配给 catdog 的 Issues
commenter:cat commenter:dogcatdog 评论过的 Issues
involves:cat involves:dog“涉及” catbob 的 Issues
team:animal/white-cat team:animal/black-doganimal/white-catanimal/black-dog 中提及的 Issues

involves 意味着 mentionauthorassigneecommenter

仓库和组织

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

orguser 相同

属性

Issues
repo:cat/jump milestone:v1.0.0 milestone:v1.0.1附加到 cat/jump 中的 v1.0.0v1.0.1 的 Issues
repo:cat/jump label:bug label:blocker附加了 cat/jump 中的 bug **和** blocker 的 Issues
electron OR atomshell包含 electronatomshell 的 Issues

审查状态

Issues
is:pr review:requiredcat/jump 中需要审查的 Issues
is:pr review-requested:catcat 请求审查的 Issues。
但这些尚未被审查。
is:pr reviewed-by:cat已被 cat 审查过的 Issues

正如你可能注意到的,流可以使用 GitHub 的搜索查询。有关如何使用流和搜索查询的更多信息,请参阅以下 URL:

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

Jasper 是付费产品吗?它要多少钱?

Jasper 售价 12 美元。但你可以使用 免费试用版 30 天。

你为什么选择在 Electron 上构建 Jasper?

我喜欢 Electron 的以下方面:

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

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

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

我花了很长时间才弄清楚“流”的概念。起初我考虑使用 GitHub 的 Notifications API。但我发现它不支持某些用例。之后,我考虑使用 Issues APIPull Requests API,以及 Notification API。但它从未达到我想要的样子。然后,在思考各种方法时,我意识到轮询 GitHub 的 Search API 可以提供最大的灵活性。经过大约一个月的实验,我达到了这一点,然后我用两天时间实现了 Jasper 的原型,并带有流的概念。

注意:轮询最多每 10 秒一次。这对于 GitHub API 的限制来说是足够可以接受的。

下一步是什么?

我计划开发以下功能:

  • 过滤后的流:一个流有一些过滤后的流,用于过滤流中的 issues。它就像 SQL 中的视图。
  • 多账户:你可以同时使用 github.com 和 GHE。
  • 提高性能:目前在 WebView 中加载 issue 的速度比普通浏览器慢。

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