自动统计GitLab代码提交情况并推送钉钉

今天收到主管的命令,要求统计每位团队成员每月的代码提交量,并将其纳入月度绩效考核。虽然可以手动查看 GitLab 上每个人的提交记录来实现统计,但是这样做既耗时又劳累。为了提高效率,我决定通过脚本的方式来实现自动统计,并且支持将结果推送到钉钉群中(需要在钉钉群中添加机器人并获取对应的 Token)。值得注意的是,代码提交量作为绩效考核指标的参考价值可能有限,但这个脚本仍然可以帮助简化统计过程。

准备

  1. GitLab 地址(内网外网都可以,内网需要在内网中执行脚本)
  2. 拥有 GitLab 管理权限的用户账号
  3. Python 3 环境

逻辑

  1. 首先遍历所有项目。
  2. 然后遍历每个项目下的所有分支。
  3. 在每个分支中,统计每个用户的提交代码量。
  4. 设置时间区间限制。
  5. 对数据进行去重和累加,并格式化输出结果。

请注意:这里提到的 Git 用户名是指 Git 工具配置的用户名,而不是 GitLab 用户名。

项目地址

项目地址:GitHub Repository

使用方法

  1. 登录 GitLab,选择 设置 - Access Tokens,创建个人访问令牌。

  2. 安装项目依赖

    pip install -r requirements.txt
  1. 将脚本中的第14至17行替换为您自己的内容,然后上传到服务器即可。您可以选择直接执行该脚本或设置为 Cron 定时任务。

    # 统计当天
    bash run.sh day.py
    # 统计本周
    bash run.sh week.py
    # 统计本月
    bash run.sh month.py

执行结果

评论区
头像
    头像
    dqzboy
      

    大佬。我执行最后报错了
    TypeError: string indices must be integers