一款用 SQL 方式查詢 Git 倉庫的開源項目進入 GitHub 趨勢榜
SQL 應(yīng)該是每個服務(wù)端開發(fā)必備的技能,同時 Git 也成為了每個開發(fā)人員的必備工具。今天這個項目的作者挺有創(chuàng)業(yè),將兩者結(jié)合起來,通過寫 SQL 語句來查詢 Git 倉庫的相關(guān)信息。例如返回當(dāng)前已檢出 branch/commit 的歷史記錄中的所有提交,語句是:SELECT * FROM commits。
項目地址:https://github.com/augmentable-dev/gitqlite,Star 數(shù) 778,進入了 GitHub 趨勢榜。

它通過 SQLite 虛擬表并使用 go-git 來實現(xiàn)的。
安裝:
- go install -v -tags=sqlite_vtable github.com/augmentable-dev/gitqlite
你也可以使用 Docker:
- docker build -t gitqlite:latest .
使用示例:
- gitqlite "SELECT * FROM commits"
一個更復(fù)雜的例子:
- SELECT author_email, count(*) FROM commits GROUP BY author_email ORDER BY count(*) DESC
它返回每個作者的提交計數(shù)(電子郵件標(biāo)識作者)。
相關(guān)提交、文件、refs 對應(yīng)的表定義如下:
commits:
ColumnTypeidTEXTmessageTEXTsummaryTEXTauthor_nameTEXTauthor_emailTEXTauthor_whenDATETIMEcommitter_nameTEXTcommitter_emailTEXTcommitter_whenDATETIMEparent_idTEXTparent_countINTtree_idTEXTadditionsINTdeletionsINT
files:
ColumnTypecommit_idTEXTtree_idTEXTnameTEXTmodeTEXTtypeTEXTcontentsTEXT
refs:
ColumnTypenameTEXTtypeTEXThashTEXT
對了,這是一個 Go 語言項目。