Thunderbird Patch Review

在 Thunderbird 內部審閱來自電子郵件的 git 補丁

簡介

這是一個 Thunderbird 附加元件。開啟一封補丁電子郵件,按下「審閱」,對變更區塊留下評論,以郵件清單回覆方式傳送審閱結果,並使用 git-am(1) 將整個系列套用到本機儲存庫。

螢幕截圖

圖:附加元件內含的 Patch 按鈕
patch-button.png
圖:補丁概覽
thunderbird-patch-overview.png
圖:從使用者介面套用補丁。
thunderbird-patch-success.png
圖:捕捉錯誤並回饋。
thunderbird-patch-fail.png
圖:Sourcehut 整合。
srht-integration-thunderbird.png

安裝(原始碼)

將擴充功能原始碼打包成 .xpi 檔案,然後透過附加元件管理員的齒輪選單(從檔案安裝附加元件...)進行安裝。若要打包,請在專案根目錄執行以下指令:

(cd extension && zip -qrX ../patch-review.xpi .)

之後我會將此附加元件上傳至 Thunderbird。

設定

開啟擴充功能的偏好設定:

編輯器指令

成功套用後,在儲存庫中執行,並將變更的檔案作為引數。請使用非阻斷式的 GUI 指令,例如 code -nemacsclient -n;純終端機編輯器無法在終端機中開啟。留空則使用 $EDITOR

套用策略

git am --3way(預設)或純 git am

儲存庫對應

對補丁的 List-Id 標頭或寄件者進行子字串比對,並對應至絕對儲存庫路徑。當沒有符合的對應時,會使用最後一次套用系列的路徑;該路徑會被記住,直到變更為止。

可透過「瀏覽」按鈕選擇儲存庫路徑,該按鈕會開啟 Thunderbird 原生的目錄選擇器;無論哪種方式,路徑欄位皆可編輯。

權限

messagesRead

讀取所選訊息及其在同一資料夾中的同級補丁(主旨、作者、內文),以建立審閱。

accountsRead

解析擁有被審閱訊息的帳戶之預設身分,用於 From 地址標籤及 send-as。

storage

跨重啟保存草稿評論(以 Message-ID 為鍵),以及編輯器指令、套用策略、儲存庫對應,以及最後套用的儲存庫路徑。

compose, (compose.send)

從「傳送審閱」開啟「回覆全部」撰寫視窗,並在「立即傳送」模式下傳送。若無 compose.send,審閱只能在撰寫視窗中預覽,無法傳送。

downloads

將「下載補丁集 .mbox」寫入磁碟。

tabs

開啟審閱分頁,並在成功傳送後移除該分頁。

具權限的「套用」、「瀏覽...」及「開啟編輯器」程式碼不使用 Mozilla 權限:它是一個封裝在 XPI 內部的 WebExtension Experiment(experiment_apis.patchHost),僅在擴充功能載入時執行。

Sourcehut 整合

當系列是透過 sourcehut 郵件清單送達時,傳送審閱時會出現設定補丁狀態標頭的選項。它使用 Sourcehut 的電子郵件控制

注意事項

目前尚不支援以附件形式送達的補丁、純 HTML 郵件,以及從 git worktree 預覽進行審閱。系列收集僅會搜尋已開啟訊息所在的資料夾。

另請參閱

介紹文章包含一小段動機說明。

免責聲明

此附加元件是使用 GLM5.2 透過氛圍編碼(vibe coded)完成,目的是為了解決我團隊的需求。我原本猶豫是否要分享,因為我通常不喜歡氛圍編碼的專案。然而,鑑於生態系統中非常缺乏這類工具,我還是決定分享。

我並未逐行審閱程式碼,但設計了系統應採用的整體方法,並專注於盡可能減少依賴。我也已手動搭配測試套件,對外掛程式進行了廣泛的 QA 測試。

貢獻

貢獻與錯誤回報請寄至郵件清單: ~marcc/[email protected]

作者

Marc Coquand