今天收到主管的命令,要求统计每位团队成员每月的代码提交量,并将其纳入月度绩效考核。虽然可以手动查看 GitLab 上每个人的提交记录来实现统计,但是这样做既耗时又劳累。为了提高效率,我决定通过脚本的方式来实现自动统计,并且支持将结果推送到钉钉群中(需要在钉钉群中添加机器人并获取对应的 Token)。值得注意的是,代码提交量作为绩效考核指标的参考价值可能有限,但这个脚本仍然可以帮助简化统计过程。
准备
- GitLab 地址(内网外网都可以,内网需要在内网中执行脚本)
- 拥有 GitLab 管理权限的用户账号
- Python 3 环境
逻辑
- 首先遍历所有项目。
- 然后遍历每个项目下的所有分支。
- 在每个分支中,统计每个用户的提交代码量。
- 设置时间区间限制。
- 对数据进行去重和累加,并格式化输出结果。
请注意:这里提到的 Git 用户名是指 Git 工具配置的用户名,而不是 GitLab 用户名。
项目地址
项目地址:GitHub Repository
使用方法
将脚本中的第14至17行替换为您自己的内容,然后上传到服务器即可。您可以选择直接执行该脚本或设置为 Cron 定时任务。
# 统计当天 bash run.sh day.py # 统计本周 bash run.sh week.py # 统计本月 bash run.sh month.py
大佬。我执行最后报错了
TypeError: string indices must be integers