跳至主要內容

每週專案:Jasper

·5 分鐘閱讀

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


您好!請問您是?

我是 Ryo Maruyama,一位在日本的軟體開發人員。我正在開發 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提及使用者 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 表示 mentionauthorassigneecommenter

儲存庫和組織

串流問題
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.1附加到 cat/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:cat請求 cat 審閱的問題。
但這些尚未審閱。
is:pr reviewed-by:catcat 審閱的問題

正如您可能已經注意到的,串流可以使用 GitHub 的搜尋查詢。有關如何使用串流和搜尋查詢的詳細資訊,請參閱以下 URL。

Jasper 還具有未讀問題管理、未讀評論管理、標記星號、通知更新、篩選問題、鍵盤快速鍵等功能。

Jasper 是付費產品嗎?它要多少錢?

Jasper 為 $12 美元。但是您可以免費使用 試用版 30 天。

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

我喜歡 Electron 的以下方面

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

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

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

我一開始很難理解「串流 (stream)」的概念。起初,我考慮使用 GitHub 的 通知 API。然而,我發現它並不支援某些使用情境。在那之後,我考慮除了通知 API 之外,還使用 議題 APIPull Requests API。但它始終不是我想要的。然後在思考各種方法時,我意識到輪詢 GitHub 的 搜尋 API 會提供最大的彈性。我花了大約一個月的時間實驗才達到這個地步,然後我花了兩天時間實作了一個具有串流概念的 Jasper 原型。

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

接下來會有什麼?

我計劃開發以下功能:

  • 篩選過的串流:一個串流可以有一些篩選過的子串流,用來過濾串流中的議題。這就像 SQL 的視圖。
  • 多個帳號:你將能夠同時使用 github.com 和 GHE。
  • 提升效能:目前在 WebView 中載入議題的速度比一般瀏覽器慢。

請在 Twitter 上追蹤 @jasperappio 以取得最新消息。