code996
code996 是一个命令行脚本,它可以统计 Git 项目的 commit 时间分布,进而推导出这个项目的工作强度。
预览: https://hellodigua.github.io/code996/
用途
- 分析 Git 项目的 commit 提交时间数据
- 入职新公司后了解项目是否存在 996 现象
- 在上班的摸鱼时光找点乐子
如何使用
Mac 或 Linux 用户:
在 Git 项目的根目录,执行以下命令:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/hellodigua/code996/master/bin/code996.sh)"
Windows 用户:
下载该脚本 https://raw.githubusercontent.com/hellodigua/code996/master/bin/code996.sh
然后将该脚本移至要分析的 Git 项目目录,并执行以下命令:
sh code996.sh
它怎样工作
- 使用 git-log 对项目当前的分支进行查询,得到以小时汇总和以天汇总的 commit 统计结果
- 将本地脚本得到的查询结果转为 URL 参数,并打开 URL 到浏览器
- 从 URL 拿到数据,并使用一些规则处理,并将结果可视化展现
它安全吗
- 脚本端和 Web 端均不会收集任何数据
- 除分析的起始时间、commit 统计结果等通用数据外,URL 本身不泄露如项目名等敏感信息
- 所有代码均已开源,接受社区监督
注意事项
- 分析结果仅供参考,不构成任何建议
- 原始分析数据通过 URL 传输,如需分享,请慎重
- 请勿用于正式场合
其他 Question
Q:996 指数是什么?
996 指数是本项目定义的,用于反映项目加班情况的数据指标。
在对加班情况标准化之后,我们可以方便的对跨团队、跨公司项目的工作强度进行对比。
Q:什么情况下 code996 的分析结果不准确?
- 脚本默认统计的是项目整体的提交时间,代表了项目中的所有参与者在这段时间的工作状态,可能与个人的实际情况有偏差
- 除了 coding,我们还需要开会、写文档、学习、摸鱼等,因此它也无法覆盖实际的工作时间
- 跨国、跨时区开发的项目无法正确统计
- 工作时间不固定的项目(如个人开源项目)也无法统计
Q:我有更好的 idea
任何想法和意见都欢迎交流,也欢迎 fork 之后自行改造。
免责声明
本项目仅供学习与交流,code996 不对使用、传播本程序及附属产物造成的任何后果承担任何责任。
我们列出了如下一些使用后可能发生的后果,请悉知。
- 计算机死机,卡顿,重启。
- 蓝屏,白屏,黑屏,闪屏。
- 被老板或同事看到你在摸鱼。
- 被同事通过 code996 发现你过去在摸鱼。
- 泄漏机密信息被安全部门处理。
- 上班迟到。
- 被毕业。
- 股市暴跌。
- 地球爆炸。
使用许可
本程序及其源码和编译产物附属 Unlicense 许可,其依赖的相关库和内容不做许可承诺,请参考他们的原始许可。