背景
最近工作上遇到了一个需求,就是需要统计组内人员的Gerrit
的提交情况, 找到了下面三种可以尝试的方案。
- git 自带的命令查询,例如
git log --author=yourname --since="2019-09-01" --no-merges | grep -e 'commit [a-zA-Z0-9]*' | wc -l
- gitstat 工具, 需要下载安装使用,可以自动生成表格
- gerrit query 命令
然后大致一一查看了用法,对于我这种情况,发现第三种方法使用更加方便快捷。
介绍
1. gerrit query官方文档:
- gerrit query
- search-operators
2. 命令方法
ssh -p <port> <host> gerrit query [--format {TEXT | JSON}] [--current-patch-set] [--patch-sets | --all-approvals] [--files] [--comments] [--commit-message] [--dependencies] [--submit-records] [--all-reviewers] [--start <n> | -S <n>] [--no-limit] [--] <query> [limit:<n>]
<port> : 是指gerrit服务器的端口, 一般29418
<host>: 是指gerrit服务器的地址, 一般username@gerrit.XXX.com
, 或者gerrit.XXX.com
3. 举例说明
查询在2019-01-01到2019-02-01之间一个月,提交到以TEST_为开头的所有项目有效(merged)提交信息。
"ssh -p 29418 username@gerrit.XXX.com gerrit query --format=JSON --current-patch-set status:merged branch:master projects:TEST_ before:2019-02-01 after:2019-01-01"
--format=JSON : 返回的信息是json
格式, 也可以是TEXT
格式
--current-patch-set : 写了这个才会返回具体的patch信息
status:merged : gerrit ticket的状态, merged, open,abandon
branch:master : 查询哪个分支
projects:TEST_ : 以TEST_为开头的所有项目
project:fix_error : 查询fix_error该项目
before - after :查询时间范围
需要什么功能,可以去上面的文档中查到对应的参数,然后组成相应的命令,就可以查询到你想要的信息了。