思路及實現方案
一調用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條