mirror of
https://github.com/bakhirev/assayo.git
synced 2026-04-28 19:50:11 +00:00
10 KiB
10 KiB
English | Español | Français | Português | Deutsch | 中文 | 日本語 | 한국어 | العربية | हिन्दी | Русский
Assayo
创建HTML报告以分析提交的统计数据:
- 工作节奏和加班时间数量;
- 责任区域、功能数量和错误;
- 同事的工作风格;
- 员工流动率和团队构成;
- 开发人员的位置;
- 发布日程和假期日程;
- 功能和项目整体的成本;
- 需要重构的地方、已删除的文件等。
链接: demo, online version, docker, reddit, habr
目录
提交统计报告
📈 如何创建和查看报告?
使用公共服务器
- 访问网站
- 按照说明
使用NodeJS库
- 执行
npx assayo - 打开
./assayo/index.html
使用PHP库
- 执行
composer require bakhirev/assayo - 执行
vendor/bin/assayo - 打开
./assayo/index.html
使用Python库
- 执行
pipx install assayo - 执行
assayo - 打开
./assayo/index.html
使用Ruby库
- 执行
gem install assayo - 执行
assayo - 打开
./assayo/index.html
使用Go库
- 执行
go get github.com/bakhirev/assayo - 执行
go install github.com/bakhirev/assayo - 执行
assayo - 打开
./assayo/index.html
使用源代码
- 下载此存储库
- 将文件
log.txt放在/build中 - 打开
/build/index.html - 或将文件夹
/build放在您的存储库中(log.txt所在的位置)。您可以更改名称。例如,从/build更改为/report。
在这种情况下,重要的是文件log.txt通过命令生成以进行离线查看。
使用GitHub动作
在文件夹.github/workflows/中添加脚本或使用市场上的此动作。一个准备好的和更新的报告将保存在artifact中。
使用私有服务器
- 下载docker镜像;
- 在本地网络中运行;
- 使用Web界面查看报告,在URL参数中设置数据URL
dump:
http://assayo_url/?dump=//you_url/some/log.txt
assayo_url - 容器assayo的URL,监听端口80;
you_url - Git日志的容器URL;
默认情况下,镜像将在http://127.0.0.1:80/中运行。如果不起作用,请检查端口80是否可用。
🎭 如何连接作者?
在项目的根目录中,您需要创建一个文件.mailmap。
文件内容示例:
Alex B <alex@mail.uk>
Alex B <alex@mail.uk> <alex@gov.tk>
Alex B <alex@mail.uk> <bakhirev@ya.kz>
Alex B <alex@mail.uk> <man64@yahoo.com>
了解有关此文件格式的更多信息这里。
📤 如何将Git数据导出到txt文件?
在线查看
在项目的根目录中执行:
离线查看
Git将创建一个文件log.txt。此文件包含显示报告的数据。在线和离线格式之间的区别是字符串的包装。离线格式将作为文件js加载,如果您只打开/build/index.html
如果您在Windows上使用PowerShell
默认情况下,输出编码可能不符合UTF-8,并且生成的日志文件将无法读取。在保存日志之前,您可以使用命令更改编码。
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
或者打开保存的文件并手动将编码更改为UTF-8。
🗃️ 如何查看微服务组的报告?
- 为每个微服务文件
log.txt(log-1.txt,log-2.txt,log-3.txt等)生成。您可以手动执行,或者使用Assayo Crawler模块进行自动日志收集; - 查看“如何查看在线报告?”。在最后一步,将所有文件一次性拖放到浏览器窗口中。
- 查看“如何查看离线报告?”。在第二步,将所有微服务文件(
log-1.txt,log-2.txt,log-3.txt等)拖放到报告文件夹(/build)中。
项目中的最佳实践
📝 如何签名提交?
遵循Conventional Commits 1.0.0。示例:
JIRA-1234 feat(profile): Added avatar for user
- 任务跟踪器中的任务编号
(JIRA-1234) - 工作类型
(feat, fix, style, refactor, test, doc等) - 功能
(profile - 网站上的新页面或新功能,使用一个(两个)短词或缩写) - 解决了什么问题
(Added avatar for user)
👮 如何为提交消息添加检查?
使用文件commit-msg
- 在文件夹.git/hooks/中创建文件
commit-msg - 在文件中添加此文本:
#!/usr/bin/env bash
if ! grep -iqE "(JIRA-[0-9]{1,5})(s)(feat|fix|docs|style|refactor|test|chore)((([a-z0-9_-]{1,})){0,})(:s)([a-z]{1,})" "$1"; then
echo "Need commit message like: JIRA-12 fix(profile): some text. Read Semantic Commit Messages" >&2
exit 1
fi
使用包pre-commit
- 在文件
package.json中添加属性commit-msg:
...
"commit-msg": {
"regex": "(JIRA-[0-9]{1,5})(\s)(feat|fix|docs|style|refactor|test|chore)((\([a-z0-9_-]{1,}\)){0,})(:\s)([a-z]{1,})",
"error-message": "Need commit message like: JIRA-12 fix(profile): some text Read Semantic Commit Messages"
},
...
- 运行命令
npm install pre-commit
关于此应用程序
🎨 如何定制界面?
您可以创建自己的界面主题。选项:
- 标题。您可以在URL参数
title中设置默认文档标题。示例:?title=You Company - 可视化主题。为此,您需要准备一个包含新样式的CSS文件,并在参数
theme中指定其URL。示例:?theme=//company.com/some.css。您可以使用类名作为选择器。大多数在新版本中不会改变。 - 语言。您可以在URL参数
lang中设置语言。示例:?lang=es
示例:demo
🛠️ 如何从源代码重新构建HTML报告?
- 下载此存储库
git clone https://github.com/bakhirev/assayo.git - 执行
npm install - 执行
npm run build:local - 新的HTML构建将在
/build文件夹中
🈯 如何添加或编辑翻译?
您可以在ts/translations/文件夹中添加新翻译或更正现有翻译。
指南
📐 架构
微服务的总体架构
- Reports showcase UI显示可用报告列表。每个报告包括标题、描述和存储库列表。
- Crawler service为报告收集存储库日志。
- Log visualization UI(您在这里)显示报告。需要日志文件才能工作。
