12 KiB
English | Español | 中文 | Français | Deutsch | Português | 日本語 | Русский
Assayo
Visualización y análisis de los datos de su repositorio git:
- el ritmo de trabajo y el número de horas extras;
- las zonas de responsabilidad, el número de funciones y errores;
- el estilo de trabajo de tus compañeros;
- la tasa de rotación del personal y la composición del equipo;
- la ubicación de los desarrolladores;
- el cronograma de lanzamientos y el calendario de vacaciones;
- el costo de las características y del proyecto en su conjunto;
- lugares para refactorización, archivos eliminados, etc.
Links: demo, online version, docker, reddit, habr.
Video: english, español, русский.
Table of contents
COMMIT STATISTICS REPORT
📈 ¿Cómo ver el informe?
Using website
- ir a sitio web
- follow the instructions
Use the library NodeJS
- run
npx assayo
- open
./assayo/index.html
Use the library PHP
- run
composer require bakhirev/assayo
- run
vendor/bin/assayo
- open
./assayo/index.html
Use the library Python
- run
pipx install assayo
- run
assayo
- open
./assayo/index.html
Use the library Ruby
- run
gem install assayo
- run
assayo
- open
./assayo/index.html
Use the library Go
- run
go get github.com/bakhirev/assayo
- run
go install github.com/bakhirev/assayo
- run
assayo
- open
./assayo/index.html
Use source code
- descargar este repositorio
- arrastrar y soltar archivo
log.txt
en la carpeta/build
- lanzar
/build/index.html
- o arrastrar una carpeta
/build
a su repositorio (donde se encuentra ' log.txt). Puede cambiar el nombre. Por ejemplo
/buildcontra
/report`
En este caso, es importante que el archivo ' log.txt ' fue generado por el equipo para ver sin conexión.
Use github actions
Add script in folder .github/workflows/
or use this action from the marketplace. Se guardará un informe nuevo y listo en los artefactos.
Servidor privado
- descargar docker образ;
- recogerlo en la red local;
- Para ver los informes, use la interfaz web indicándole la dirección de los datos en el parámetro URL
dump
:
http://assayo_url/?dump=//you_url/some/log.txt
assayo_url - URL dirección del contenedor assayo, Él está escuchando el puerto 80;
you_url - URL la dirección de su contenedor con registros git;
Por defecto, la imagen se ejecutará en la siguiente dirección http://127.0.0.1:80/
. Si no funciona, compruebe si tiene el puerto 80 disponible
🎭 Cómo combinar a los autores?
En la carpeta raíz de su proyecto debe crear un archivo .mailmap
.
Un 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>
Más información sobre el formato de este archivo se puede leer en aquí.
📤 Cómo descargar los datos desde git?
Para la visualización en línea
En el directorio raíz de su proyecto ejecutar:
git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%aN>%aE>%s" > log.txt
Para ver sin conexión
git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%aN>%aE>%s" | sed -e 's/\\/\\\\/g' | sed -e 's/`/"/g' | sed -e 's/\$/S/g' | sed -e '1s/^/R(f\`/' | sed -e '$s/$/\`\);/' > log.txt
Git creará un archivo log.txt
. contiene los datos para construir el informe. La diferencia entre los formatos en línea y fuera de línea está en la existencia de una envoltura para las cadenas. El formato fuera de línea se cargará como un archivojs
si usted simplemente lo abrió. /build/index.html
If you use PowerShell in Windows
By default, the output encoding may not match UTF-8 and the resulting log file will be unreadable. Before saving the log, you can change the encoding with the command.
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
Or open a saved file and manually change the encoding to UTF-8.
🗃️ Como mirar el reporte de un grupo de microservicios?
- Generar para cada microservicio el archivo
log.txt
(log-1.txt
,log-2.txt
,log-3.txt
etc.). You can do this manually, or use the Assayo Crawler module for automatic log collection. - Ver “Cómo ver el informe en línea?”. En el último paso, arrastrar todos los archivos al navegador.
- Ver “Cómo ver informe fuera de línea?”. En el segundo paso, arrastrar los archivos de todos los microservicios al navegador (
log-1.txt
,log-2.txt
,log-3.txt
etc.) la carpeta informe (/build
).
THE BEST PRACTICES IN THE PROJECT
📝 ¿Cómo firmar los commits?
Siga la práctica Conventional Commits 1.0.0. Por ejemplo:
JIRA-1234 feat(profile): Added avatar for user
- El número de la tarea en el gestor de tareas es
(JIRA-1234)
- tipo de trabajo
(feat, fix, style, refactor, test, doc etc.)
- ficha
(profile - La sección del sitio, la página o la nueva funcionalidad, en una palabra)
- ¿qué problema resolvieron?
(Added avatar for user)
👮 How to add checking for commit message?
Use file commit-msg
- Create file
commit-msg
in folder.git/hooks/
- Add this text in file:
#!/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
Use package pre-commit
- Add in file
package.json
propertycommit-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"
},
...
ABOUT THIS APP
🎨 ¿Cómo puedo personalizar la interfaz de usuario?
Puedes crear tu propio tema para la interfaz. Puedes cambiar:
- El título. Puedes especificarlo en el parámetro de la URL
title
. Por ejemplo:?title=You Company
- El tema visual. Para esto, debes preparar un archivo CSS con los nuevos estilos y especificar su dirección en el parámetro de URL
theme
. Por ejemplo:?theme=//company.com/some.css
. Puedes usar los nombres de clases como selectores. La mayoría de ellos no cambia con el lanzamiento de nuevas versiones. - La lengua. Puedes especificarla en el parámetro de la URL
lang
. Por ejemplo:?lang=es
Example: demo
🛠️ Como recompilar el build de un informe?
- Descargar este repositorio
- Ejecutar
npm install
- Ejecutar
npm run build:local
- La nueva compilación estará en el directorio
/build
🈯 ¿Cómo añadir o editar una traducción?
Puede agregar una nueva traducción o corregir la actual en la sección ts/translations/
.
Instrucciones
📐 ️Architecture
The structure of this module
src
|- pages
|- Person // all personal dashboards
|- Team // all dashboards about team
|
|- helpers
|- Parser // parse text from git log to JS objects
|- DataGrip // data grouping and counting values
|- achievement // the logic that gives out personal achievements
|- Recommendations // the logic that gives out common recommendations
|
|- translations // translations into other languages
General architecture of microservices
- Reports showcase UI displays a list of available reports. Each report consists of a title, description, and a list of repositories.
- Crawler service collects repository logs for the report.
- Log visualization UI (you here) displays report. Needs a log file for work.
📧 Deseos, comentarios
- telegramm @bakhirev (La forma preferencial de contacto)
- alexey-bakhirev@yandex.ru
- sitio web https://bakhirev.github.io/