繁中

Lefhook的「快速可控」掛鈎管理工具

Lefthook是一個高性能Git hook管理器,在Go語言上開發,適用於Node.js、Ruby、Python和其他技術棧上的項目。您可以使用Go工具、NPM、gem或pipx包管理器輕鬆安裝它,然後在乾淨的lefthook.yml配置文件中定義掛鈎規則,並運行lefthook安裝命令來啟用它們。
該工具支持並行執行hook命令,通過外卡/正規表達過濾指定文件,與腳本執行、標籤分組、Docker容器運行兼容,還支持本地配置覆蓋。這些功能將執行速度與靈活性結合起來,讓您完全控制代碼檢查過程。
使用Lefhook,您可以在代碼提交和推送期間自動執行代碼語法檢查和合規性檢查,高效且沒有額外的依賴項,從而節省大量開發時間並毫不費力地維護項目代碼的整潔性。

在團隊合作中, Git鉤子 常常抱有厚望:
提交前運行格式化、檢查代碼風格並阻止明顯的錯誤。
但現實情況往往是配置分散、執行緩慢、不同成員環境不一致,最終被繞過或放棄。

萊夫胡克 就是為了解決這些問題而誕生的。

什麼是Lefhook?

左撇子是一個 基於Go語言開發的高性能Git hook管理器,用於統一管理 pre-commit以及Git hook的執行邏輯。預推 

它不關心你的項目使用什麼語言或框架,Node.js,Ruby,Python,甚至只使用腳本的項目都可以直接使用。

該項目由 邪惡的火星人 並且具有非常以工程為導向的設計,目標明確:
使本地代碼檢查快速可靠。

為什麼你需要左撇子鉤?

原生Git掛鈎存在幾個長期存在的問題:

  • 掛鈎是本地文件 並且不受版本控制
  • 團隊成員配置容易出現不一致
  • 劇本很複雜,而且 執行速度明顯慢於提交
  • 跨語言項目難以統一管理

萊夫胡克的想法很簡單:
將掛鈎視為項目的一部分,在配置文件中統一描述它們,並使用高性能執行器對其進行調度。

核心功能概述

高性能執行(Go實現)

Leftook本體是用Go語言編寫的,啟動成本非常低。
與腳本解決方案相比,區別在於 承諾 在常見的場景中非常明顯。

簡單、集中的配置

所有掛鈎都寫在一個中 lefthook.yml ,例如:

預提交:
 平行:真
 命令:
 棉絨:
 運行:nPM運行lint
 測試:
 運行:nPM測試

配置 清晰、可讀且可審查,並直接進入Git存儲庫。

並行執行以減少等待時間

多個檢查可以並行運行,而不是連續阻止。
這對於包括lint + Test + typecheck的項目非常關鍵。

準確的文檔篩選能力

 支持 外卡和正規表達式 僅觸發對相關文件的檢查,例如:

  • 只是改變 .js 該文件,沒有Python測試
  • 僅更改了文檔,尚未採取構建過程

這使得掛鈎變得「聰明」而不是「暴力」。

完全支持收件箱、標籤和Docker

Lefhook不限制運行命令的方式:

  • 本地腳本
  • nPM / pip / bundle命令
  • Docker容器
  • 任務按標籤分組和重複使用

複雜的項目也可以清晰地結構化。

本地超越

在團隊統一規則的基礎上,個人還可以進行局部調整。
考慮到現實環境中的一致性和差異性。

靈活的安裝

Lefhook支持多種安裝渠道:

  • Go工具鏈
  • npm
  • Ruby gem
  • 皮克斯

安裝後,您需要做的就是:

左撇子安裝

以在您的項目中啟用掛鈎配置。

Github:https://github.com/evilmartians/lefthook
管材:

返回頂端