思路及实现方案
一调用git的API接口,此处用到的api接口汇总如下:
1.调用/api/v3/users获取对应用户的gitlab id和gitlab账户的状态
2.调用/users/:id/events获取对应用户的事件,从中筛选出commits事件,获取到commit id
对应api文档地址:https://docs.gitlab.com/ee/api/events.html
3.调用/api/v3/projects/:id/repository/commits/:sha获取到对应提交的代码量(总量、增加量、删除量)
additions": 11,
"deletions": 18,
"total": 29
二每人每次push作为一个小单元,存储为一条记录
三采用定时任务定时统计,存储每次统计到的时间点
四存储用户名和gitlab id及账号的状态。状态为blocked状态的就不需要再继续统计
五如果需要定时统计某一时间段的代码量,可使用shell脚本定时执行SQL,并发邮件,见博文(shell 做统计以表格格式发邮件)
实现方案
代码待补充
其他
1.查看gitlab的版本号
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
2.不同的版本api的参数作用不一样,需要先确认gitlab的版本
3.调用api注意翻页,gitlab默认每页展示20条