一、统计结果要求
1.统计个人提交量(当天或者其他日期区间选择)
2.统计部门总提交量(根据个人提交明细去重,再以部门去重,求得部门提交总量)
3.根据部门提交总量生成柱状图及趋势线(目前按10个部门生成一次)
二、统计实现方式
用python调用gitlab接口实现统计(python-gitlab)
方法一:
1.通过管理员token,api 4认证gitlab
2.循环遍历gitlab project list,通过last_actvity_at参数条件遍历出时间区间内最后活动的project
project = client.projects.list(all=True)
if '2020-02-06' <= (pro.last_activity_at).split('T')[0] <= '2020-02-07' (日期可选)
3.遍历当前项目所有分支
branches = pro.branches.list(all=True)
commits = pro.commits.list(all=True,query_parameters={'since': '2020-02-07T00:00:00Z', 'ref_name': tmp.name})
对当前分支循环过滤,找出指定时间后的commit,将commit中统计信息写进列表
方法二:
1.根据用户事件,抓取当前用户pushed commit记录,在域认证部分抓取中文名及部门拼接
2.通过当前用户push事件中
过滤出当前事件commit列表进行循环
过滤uat test分支
过滤Merge提交和merge request()
过滤gitlab用户自动构建提交及取派中心用户
过滤合并请求事件 commit列表中包含的不属于当前用户、当前选择日期的其它提交
3.根据如上条件找出需要参数放入列表,进行数据输出(写进excel)
网友评论