使用 Go 可視化您的本地 Git 貢獻

使用 Go 撰寫 Git 統計分析 CLI 工具的教程 幾年前,我使用 Electron + Meteor.js + gitlog 桌面應用程式掃描了我的本地 Git 存儲庫,並為我提供了一個漂亮的貢獻圖,就像 GitHub.com 上顯示的那樣: 那是在每個應用程序都使用 Electron 之前,由於生成的應用程序大小,我非常不喜歡這種方法,如果與基於 WebKit 的 MacGap 相比較,它的大小要大 50 倍。不管怎樣,它看起來像這樣,具有類似 GitHub 的用戶界面: 我發現它很有用,因為不是所有的項目都在 GitHub 上,一些項目位於 BitBucket 或 GitLab 上,但我所工作的所有代碼都在我的筆記本電腦上,所以這便是“事實的單一來源”。 該應用程序仍在運行,但尚未釋放給大眾使用。 今天我決定將其作為 Go 控制台命令進行移植,因為我仍認為這個概念很好。 本文中要建立的內容 🎉 一個類似下圖的CLI命令,生成類似的圖表 在哪裡可以找到這段程式碼 該程式碼在此 Gist 鏈接上: https://gist.github.com/flaviocopes/bf2f982ee8f2ae3f455b06c7b2b03695 首先的步驟 我將任務分為兩部分: 1.獲取要掃描的文件夾列表 2.生成統計信息 我將使用 Go 命令行標記解析 來讓一個單一命令執行這兩個任務。當傳遞 -add 標記時,該命令將添加新的文件夾到列表中。在沒有標記的情況下執行該命令將生成圖表。為了避免一次性為用戶輸出過多數據,我將限制數據集的時間範圍在過去的 6 個月內。 讓我們為此分層概念撰寫一個簡單的外殼: package main import ( "flag" ) // scan given a path crawls it and its subfolders // searching for Git repositories func scan(path string) { print("scan") } // stats generates a nice graph of your Git contributions func stats(email string) { print("stats") } func main() { var folder string var email string flag....