code996
code996 是一个分析工具,它可以统计 Git 项目的 commit 时间分布,进而推导出项目的编码工作强度。
Preview:https://hellodigua.github.io/code996/
简体中文 | English
预览
分析 Git 项目的基本情况:
通过图表查看 commit 提交分布:
对比项目工作时间类型:
如何使用
本地分析:在 Git 项目的根目录,执行以下脚本:
curl -fsSL https://fastly.jsdelivr.net/gh/hellodigua/code996/bin/code996.sh | bash
在线分析:gitlab 项目可以使用浏览器用户脚本 userscript.js
进行在线分析
具体使用方法请展开查看
Gitlab 线上版本
- 安装浏览器插件 tampermonkey https://www.tampermonkey.net/
- 拷贝 userscript.js 文件到 tampermonkey(或选择在线安装)
- 打开需要分析的 gitlab 项目页面,点击按钮可得到分析结果
PowerShell 版本
请使用 PowerShell 7 或更高版本
iwr https://fastly.jsdelivr.net/gh/hellodigua/code996/bin/code996.ps1 -OutFile ([System.IO.Path]::Combine([System.IO.Path]::GetTempPath(), 'code996.ps1')); & ([System.IO.Path]::Combine([System.IO.Path]::GetTempPath(), 'code996.ps1')); ri ([System.IO.Path]::Combine([System.IO.Path]::GetTempPath(), 'code996.ps1'))
它怎样工作
- 使用 git-log 对项目当前的分支进行查询,得到以小时汇总和以天汇总的 commit 统计结果
- 将本地脚本得到的查询结果转为 URL 参数,并打开 URL 到浏览器
- 从 URL 拿到数据,并使用一些规则处理,并将结果可视化展现
它有什么用
它可以帮助你分辨 996 的公司和行为并远离它,具体包括:
- 在入职的当天即可知道新公司的加班情况如何
- 揪出公司里的卷王
- 对比不同项目的加班强度
它安全吗
- 脚本端和 Web 端均不会收集任何数据
- 除分析的起始时间、commit 统计结果等通用数据外,URL 本身不泄露如项目名等敏感信息
- 所有代码均已开源,接受社区监督
其他 Question
Q:996 指数是什么?
996 指数是本项目定义的,用于反映项目加班情况的数据指标。
在对加班情况标准化之后,我们可以方便的对跨团队、跨公司项目的工作强度进行对比。
Q:什么情况下它的分析结果不准确?
- 脚本默认统计的是项目整体的提交时间,代表了项目中的所有参与者在这段时间的工作状态,可能与个人的实际情况有偏差
- 除了 coding,我们还需要开会、写文档、学习、摸鱼等,因此它也无法覆盖实际的工作时间
- 跨国、跨时区开发的项目无法正确统计
- 工作时间不固定的项目(如个人开源项目)也无法统计
注意事项
- 分析结果仅供参考,不构成任何建议
- 原始分析数据通过 URL 传输,如需分享,请慎重
- 项目仅供学习与交流,code996 不对使用、传播本程序及附属产物造成的任何后果承担任何责任
贡献者
感谢 YLinXin | Nekotora | Xuemuyang 等小伙伴对本项目的贡献,希望这个项目能帮助到不希望加班的开发者们。
站点主题及灵感来自 996.ICU。
如果有问题欢迎在 issue 提出,或通过邮件联系我。
使用许可
本程序及其源码和编译产物附属 Unlicense 许可,其依赖的相关库和内容不做许可承诺,请参考他们的原始许可。