11 KiB
English | Español | Français | Português | Deutsch | 中文 | 日本語 | 한국어 | العربية | हिन्दी | Русский
Assayo
Crea un informe HTML con un análisis de la estadística de commit:
- el ritmo de trabajo y la cantidad de horas extras;
- zonas de responsabilidad, número de características y errores;
- estilo de trabajo de los colegas;
- la tasa de rotación de empleados y la composición del equipo;
- ubicación de los desarrolladores;
- calendario de lanzamientos y calendario de vacaciones;
- costo de las características y del proyecto en su conjunto;
- lugares para refactorizar, archivos eliminados, etc.
Enlaces: demo, online version, docker, reddit, habr
Video: english, español, русский
Índice
REPORTE DE ESTADÍSTICAS DE COMMIT
📈 ¿Cómo crear y ver el informe?
Usando servidor público
- vaya al sitio web
- siga las instrucciones
Usar la biblioteca NodeJS
- ejecute
npx assayo - abre
./assayo/index.html
Usar la biblioteca PHP
- ejecute
composer require bakhirev/assayo - ejecute
vendor/bin/assayo - abre
./assayo/index.html
Usar la biblioteca Python
- ejecute
pipx install assayo - ejecute
assayo - abre
./assayo/index.html
Usar la biblioteca Ruby
- ejecute
gem install assayo - ejecute
assayo - abre
./assayo/index.html
Usar la biblioteca Go
- ejecute
go get github.com/bakhirev/assayo - ejecute
go install github.com/bakhirev/assayo - ejecute
assayo - abre
./assayo/index.html
Usar el código fuente
- descargue este repositorio
- coloque el archivo
log.txten/build - abre
/build/index.html - o coloque la carpeta
/builden su repositorio (donde se encuentralog.txt). Puede cambiar el nombre. Por ejemplo, de/builda/report.
En este caso, es importante que el archivo log.txt se genere mediante un comando para la visualización en línea.
Usar github actions
Agregue script en la carpeta .github/workflows/ o use esta acción del mercado. Un informe listo y actualizado se guardará en los artefactos.
Usar servidor privado
- descargue la imagen docker;
- ejecútelo en su red local;
- use la interfaz web para ver los informes, establezca la URL de los datos en el parámetro URL
dump:
http://assayo_url/?dump=//you_url/some/log.txt
assayo_url - URL del contenedor assayo, escucha en el puerto 80;
you_url - URL de su contenedor con registros git;
Por defecto, la imagen se ejecutará en http://127.0.0.1:80/. Si no funciona, verifique si el puerto 80 está libre.
🎭 ¿Cómo concatenar autores?
En el directorio raíz de su proyecto, necesita crear un archivo .mailmap.
Ejemplo del contenido del archivo:
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>
Lea más sobre el formato de este archivo aquí.
📤 ¿Cómo exportar datos de git a un archivo txt?
Para la visualización en línea
En el directorio raíz de su proyecto ejecute:
Para la visualización ofline
Git creará un archivo log.txt. Este archivo contiene datos para mostrar un informe. La diferencia entre el formato en línea y ofline es la presencia de una envoltura para las cadenas. El formato ofline se arrastrará como un archivo js si solo abrió /build/index.html
Si usa PowerShell en Windows
Por defecto, la codificación de salida puede no coincidir con UTF-8 y el archivo de registro resultante será ilegible. Antes de guardar el registro, puede cambiar la codificación con el comando.
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
O abra un archivo guardado y cambie manualmente la codificación a UTF-8.
🗃️ ¿Cómo ver un informe sobre un grupo de microservicios?
- Generar para cada archivo de microservicio
log.txt(log-1.txt,log-2.txt,log-3.txt, etc.) Puede hacerlo manualmente o usar el módulo Assayo Crawler para la recopilación automática de registros; - Ver «Cómo ver un informe en línea?». En el último paso, arrastre todos los archivos a la vez a la ventana del navegador.
- Ver «Cómo ver un informe en offline?». En el segundo paso, arrastre todos los archivos de microservicio (
log-1.txt,log-2.txt,log-3.txt, etc.) a la carpeta del informe (/build).
LAS MEJORES PRÁCTICAS EN EL PROYECTO
📝 ¿Cómo firmar los commits?
Siga el Conventional Commits 1.0.0. Ejemplo:
JIRA-1234 feat(profile): Added avatar for user
- número de tarea en el seguimiento de tareas
(JIRA-1234) - tipo de trabajo
(feat, fix, style, refactor, test, doc, etc.) - característica
(profile - nueva página en el sitio o nueva función, use una (dos) palabra(s) corta(s) o una abreviatura) - qué problema se resolvió
(Added avatar for user)
👮 Cómo agregar comprobación para el mensaje de commit?
Usar archivo commit-msg
- Crear archivo
commit-msgen carpeta.git/hooks/ - Agregar este texto en archivo:
#!/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
Usar paquete pre-commit
- Agregar en archivo
package.jsonpropiedadcommit-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"
},
...
- Ejecutar comando
npm install pre-commit
SOBRE ESTA APLICACIÓN
🎨 ¿Cómo personalizar la interfaz?
Puede crear su propia temática de interfaz. Opciones:
- Título. Puede establecer el título de documento predeterminado en el parámetro de URL
title. Ejemplo:?title=You Company - Tema visual. Para ello, necesita preparar un archivo CSS con nuevos estilos y especificar su URL en el parámetro
theme. Ejemplo:?theme=//company.com/some.css. Puede usar nombres de clase como selectores. La mayoría de ellos no cambian en nuevas versiones. - Idioma. Puede establecer el idioma en el parámetro de URL
lang. Ejemplo:?lang=es
Ejemplo: demo
🛠️ ¿Cómo reconstruir el informe HTML desde el código fuente?
- descargar este repositorio
git clone https://github.com/bakhirev/assayo.git - ejecute
npm install - ejecute
npm run build:local - la nueva construcción HTML estará en la carpeta
/build
🈯 ¿Cómo agregar o editar una traducción?
Puede agregar una nueva traducción o corregir una existente en la carpeta ts/translations/.
Instrucción
📐 Arquitectura
Arquitectura general de microservicios
- Reports showcase UI muestra una lista de informes disponibles. Cada informe consta de un título, descripción y una lista de repositorios.
- Crawler service recopila registros de repositorio para el informe.
- Log visualization UI (estás aquí) muestra el informe. Necesita un archivo de registro para funcionar.
📧 Retroalimentación, comentarios
- 📱 https://t.me/bakhirev (método prioritario de comunicación)
- 📧 alexey-bakhirev@yandex.ru
- 🌐 https://bakhirev.github.io/
