每周项目:Jasper
本周我们采访了 Jasper 的创建者,Jasper 是一款基于 Electron 的 GitHub 通知管理工具。
你好! 你是谁?
我是 Ryo Maruyama,一位来自日本的软件开发者。 我正在开发 Jasper 和 ESDoc。
什么是 Jasper?
Jasper 是一款灵活而强大的 GitHub 问题阅读器。 它支持 github.com 和 GitHub Enterprise 上的 issue 和 pull request。
你为什么制作它?
当人们在工作或 OSS 活动中使用 GitHub 时,他们每天都会收到许多通知。 作为订阅通知的一种方式,GitHub 提供了电子邮件和 Web 通知。 我使用了这些几年,但我遇到了以下问题
- 很容易忽略提到我、我评论或我正在关注的 issue。
- 我把一些 issue 放在脑海中稍后查看,但我有时会忘记它们。
- 为了不忘记 issue,我在浏览器中保持打开许多标签页。
- 很难检查所有与我相关的 issue。
- 很难掌握我团队的所有活动。
我花费了大量时间和精力来防止这些问题,所以我决定为 GitHub 制作一个 issue 阅读器来有效地解决这些问题,并开始开发 Jasper。
谁在使用 Jasper?
Jasper 被几家使用 GitHub 的公司的开发人员、设计师和经理使用。 当然,一些 OSS 开发人员也在使用它。 甚至 GitHub 的一些人也在使用它!


Jasper 是如何工作的?
配置 Jasper 后,会出现以下屏幕。 从左到右,您可以看到“流列表”、“issue 列表”和“issue 正文”。
这个“流”是 Jasper 的核心功能。 例如,如果您想查看“分配给 electron/electron 仓库中 @zeke 的 issue”,您可以创建以下流
repo:electron/electron assignee:zeke is:issue
创建流并等待几秒钟后,您可以看到符合条件的 issue。
我们可以用流做什么?
我将介绍流可以使用哪些类型的条件。
用户和团队
流 | Issues |
---|---|
mentions:cat mentions:dog | 提到用户 cat 或 dog 的 Issues |
author:cat author:dog | 由用户 cat 或 dog 创建的 Issues |
assignee:cat assignee:dog | 分配给 cat 或 dog 的 Issues |
commenter:cat commenter:dog | cat 或 dog 评论过的 Issues |
involves:cat involves:dog | “涉及” cat 或 bob 的 Issues |
team:animal/white-cat team:animal/black-dog | animal/white-cat 或 animal/black-dog 中提到的 Issues |
involves
表示 mention
、author
、assignee
或 commenter
仓库和组织
流 | Issues |
---|---|
repo:cat/jump repo:dog/run | cat/jump 或 dog/run 中的 Issues |
org:electron user:cat user:dog | electron 、cat 或 dog 中的 Issues |
org
与 user
相同
属性
流 | Issues |
---|---|
repo:cat/jump milestone:v1.0.0 milestone:v1.0.1 | 在 cat/jump 中附加到 v1.0.0 或 v1.0.1 的 Issues |
repo:cat/jump label:bug label:blocker | 在 cat/jump 中附加了 bug 和 blocker 的 Issues |
electron OR atomshell | 包含 electron 或 atomshell 的 Issues |
审核状态
流 | Issues |
---|---|
is:pr review:required | 在 cat/jump 中需要审核的 Issues |
is:pr review-requested:cat | 由 cat 请求审核的 Issues。但这些尚未审核。 |
is:pr reviewed-by:cat | 由 cat 审核的 Issues |
正如您可能通过查看这些内容所注意到的那样,流可以使用 GitHub 的搜索查询。 有关如何使用流和搜索查询的详细信息,请参阅以下 URL。
- jasperapp.io/doc.html#stream
- help.github.com/articles/searching-issues
- help.github.com/articles/search-syntax
Jasper 还具有未读 issue 管理、未读评论管理、标记星标、通知更新、过滤 issue、键盘快捷键等功能。
Jasper 是付费产品吗? 价格是多少?
Jasper 售价 12 美元。 不过您可以使用 30 天的免费试用版。
你为什么选择基于 Electron 构建 Jasper?
我喜欢 Electron 的以下几个方面
- 可以使用 JavaScript/CSS/HTML 开发应用程序。
- 应用程序可以为 Windows、Mac 和 Linux 平台构建。
- Electron 正在积极开发中,并且拥有庞大的社区。
这些功能实现了快速而简单的桌面应用程序开发。 这太棒了! 如果您有任何产品想法,都应该考虑使用 Electron。
在开发 Jasper 时,您遇到过哪些挑战?
我很难弄清楚“流”的概念。 起初我考虑使用 GitHub 的 Notifications API。 但是我注意到它不支持某些用例。 之后,我考虑使用 Issues API 和 Pull Requests API,以及 Notification API。 但它从未成为我想要的样子。 然后,在思考各种方法时,我意识到轮询 GitHub 的 Search API 将提供最大的灵活性。 大约花了一个月的实验才达到这一点,然后我用两天的时间实现了带有流概念的 Jasper 原型。
注意:轮询最多限制为每 10 秒一次。 这对于 GitHub API 的限制来说是足够可以接受的。
接下来有什么计划?
我计划开发以下功能
- 过滤流:一个流具有一些过滤流,用于过滤流中的 issue。 这就像 SQL 的视图。
- 多个帐户:您将能够同时使用 github.com 和 GHE
- 提升性能:目前在 WebView 中加载 issue 的速度比普通浏览器慢。
在 Twitter 上关注 @jasperappio 以获取更新。