跳到主要內容

每週專案:Jasper

·5 分鐘閱讀

本週我們採訪了 Jasper 的創建者,Jasper 是一款基於 Electron 的工具,用於管理 GitHub 通知。


哈囉!你是誰?

我是 Ryo Maruyama,一位來自日本的軟體開發者。我正在開發 JasperESDoc

什麼是 Jasper?

Jasper 是一款彈性且功能強大的 GitHub issue 閱讀器。它支援 github.com 和 GitHub Enterprise 上的 issue 和 pull request。

Jasper App Screenshot

你為什麼製作它?

當人們在工作或 OSS 活動中使用 GitHub 時,他們每天往往會收到許多通知。作為訂閱通知的方式,GitHub 提供電子郵件和 網頁通知。我使用了這些好幾年,但我面臨以下問題:

  • 很容易忽略提到我、我評論過或我正在關注的 issue。
  • 我將一些 issue 放在腦海中稍後查看,但我有時會忘記它們。
  • 為了不忘記 issue,我在瀏覽器中保持開啟許多分頁。
  • 很難檢查所有與我相關的 issue。
  • 很難掌握我團隊的所有活動。

我花費了大量的時間和精力試圖防止這些問題,所以我決定製作一個 GitHub issue 閱讀器來有效率地解決這些問題,並開始開發 Jasper。

誰在使用 Jasper?

Jasper 被許多使用 GitHub 的公司的開發人員、設計師和經理使用。當然,一些 OSS 開發人員也在使用它。而且 GitHub 的一些人也在使用它!

Jasper 如何運作?

一旦 Jasper 設定完成,就會出現以下畫面。從左到右,您可以看到「串流列表」、「issue 列表」和「issue 內容」。

Jasper Start Screen

這個「串流」是 Jasper 的核心功能。例如,如果您想查看「electron/electron 儲存庫中分配給 @zeke 的 issue」,您可以建立以下串流

repo:electron/electron assignee:zeke is:issue

Jasper Start Screen 2

在建立串流並等待幾秒鐘後,您可以看到符合條件的 issue。

Jasper Start Screen 3

我們可以使用串流做什麼?

我將介紹串流可以使用哪些條件。

使用者和團隊

串流Issue
mentions:cat mentions:dog提到使用者 catdog 的 issue
author:cat author:dog由使用者 catdog 建立的 issue
assignee:cat assignee:dog分配給 catdog 的 issue
commenter:cat commenter:dogcatdog 評論過的 issue
involves:cat involves:dog「涉及」catbob 的 issue
team:animal/white-cat team:animal/black-doganimal/white-catanimal/black-dog 中提到的 issue

involves 意思是 mentionauthorassigneecommenter

儲存庫和組織

串流Issue
repo:cat/jump repo:dog/runcat/jumpdog/run 中的 issue
org:electron user:cat user:dogelectroncatdog 中的 issue

orguser 相同

屬性

串流Issue
repo:cat/jump milestone:v1.0.0 milestone:v1.0.1cat/jump 中附加到 v1.0.0v1.0.1 的 issue
repo:cat/jump label:bug label:blockercat/jump 中附加 bug blocker 的 issue
electron OR atomshell包含 electronatomshell 的 issue

審核狀態

串流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 天。

你為什麼選擇在 Electron 上建置 Jasper?

我喜歡 Electron 的以下方面:

  • 可以使用 JavaScript/CSS/HTML 開發應用程式。
  • 可以為 Windows、Mac 和 Linux 平台建置應用程式。
  • Electron 正在積極開發中,並擁有龐大的社群。

這些功能使桌面應用程式的開發變得快速而簡單。這太棒了!如果您有任何產品想法,您應該務必考慮使用 Electron。

在開發 Jasper 時,你遇到哪些挑戰?

我花了很多時間才弄清楚「串流」的概念。起初,我考慮使用 GitHub 的 Notifications API。但是,我注意到它不支援某些使用案例。之後,我考慮除了 Notification API 之外,還使用 Issues APIPull Requests API。但它始終沒有變成我想要的樣子。然後在思考各種方法時,我意識到輪詢 GitHub 的 Search API 將提供最大的彈性。我花了約一個月的實驗才達到這個階段,然後我在兩天內使用串流概念實作了 Jasper 的原型。

注意:輪詢最多每 10 秒限制一次。這對於 GitHub API 的限制來說是足夠可以接受的。

接下來有什麼?

我計劃開發以下功能:

  • 篩選串流:串流具有一些篩選串流,用於篩選串流中的 issue。它就像 SQL 的視圖。
  • 多個帳戶:您將能夠同時使用 github.com 和 GHE
  • 提升效能:目前在 WebView 中載入 issue 的速度比一般瀏覽器慢。

在 Twitter 上追蹤 @jasperappio 以獲取更新。