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로 분석하는 귀찮은 작업을 종종하는데, 이거 하나면 되겠군요.