assayo/documents/ZH.md
2026-03-25 15:22:51 +03:00

10 KiB
Raw Blame History

English | Español | Français | Português | Deutsch | 中文 | 日本語 | 한국어 | العربية | हिन्दी | Русский

Assayo

创建HTML报告以分析提交的统计数据

  • 工作节奏和加班时间数量;
  • 责任区域、功能数量和错误;
  • 同事的工作风格;
  • 员工流动率和团队构成;
  • 开发人员的位置;
  • 发布日程和假期日程;
  • 功能和项目整体的成本;
  • 需要重构的地方、已删除的文件等。

链接: demo, online version, docker, reddit, habr

视频: english, español, русский

目录

提交统计报告

📈 如何创建和查看报告?

使用公共服务器

使用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参数中设置数据URLdump
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.txtlog-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

  1. 在文件夹.git/hooks/中创建文件commit-msg
  2. 在文件中添加此文本:
#!/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

  1. 在文件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"
},
...
  1. 运行命令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/文件夹中添加新翻译或更正现有翻译。 指南

📐 架构

微服务的总体架构

  1. Reports showcase UI显示可用报告列表。每个报告包括标题、描述和存储库列表。
  2. Crawler service为报告收集存储库日志。
  3. Log visualization UI您在这里)显示报告。需要日志文件才能工作。

📧 反馈,评论