GQL - Git Query Language
(github.com/AmrDeveloper)- SQL과 비슷한 문법으로 DB대신 .git 파일에 대해서 쿼리 가능한 언어
 - 작은 엔진이 별도의 DB 또는 변환없이 Repo에 대한 실시간 질의 수행
 - SQL의 대부분 문법 지원 (그룹핑, 정렬, 집계 포함)
 - Rust 오픈소스
 
SELECT DISTINCT title AS tt FROM commits  
SELECT name, COUNT(name) AS commit_num FROM commits GROUP BY name ORDER BY commit_num DESC LIMIT 10  
SELECT commit_count FROM branches WHERE commit_count BETWEEN 0 .. 10  
  
SELECT * FROM refs WHERE type = "branch"  
SELECT * FROM refs ORDER BY type  
  
SELECT * FROM commits  
SELECT name, email FROM commits  
SELECT name, email FROM commits ORDER BY name DESC, email ASC  
SELECT name, email FROM commits WHERE name LIKE "%gmail%" ORDER BY name  
SELECT * FROM commits WHERE LOWER(name) = "amrdeveloper"  
SELECT name FROM commits GROUP By name  
SELECT name FROM commits GROUP By name having name = "AmrDeveloper"  
  
SELECT * FROM branches  
SELECT * FROM branches WHERE is_head = true  
SELECT name, LEN(name) FROM branches  
  
SELECT * FROM tags  
SELECT * FROM tags OFFSET 1 LIMIT 1  
설치하고, CLI에서 직접 쿼리를 입력하는게 안되서 아쉬웠습니다.
그런데 저장소를 직접 빌드해서 사용하면 직접 쿼리를 던지는 옵션을 사용 할 수 있네요.
아마 다음 버전에 추가될 예정인가 봅니다
cargo run -- -q "SELECT * FROM tags"
이런식으로 사용하면 됩니다.
이제 DevOps 작업에 사용 할 수 있습니다. :)
오! git log --numstat 출력을 파싱해서 DB에 넣어 놓고, SQL로 분석하는 귀찮은 작업을 종종하는데, 이거 하나면 되겠군요.