21 KiB
English | Español | 中文 | Français | Deutsch | Português | 日本語 | Русский
Documentación básica en ruso. Es una traducción. Puede contener errores. Si usted es un hablante nativo, puede ayudar a mejorar esta traducción. ¡Gracias!
Assayo
Visualización y análisis de los datos de su repositorio git. Performance tool for Team Lead and IT-audit
Links: demo, online version, docker, reddit, habr.
Video: english, español, русский.
👨💻 En tu nuevo lugar de trabajo puedes averiguar al instante:
- 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.
Table of contents
- Table of contents
- Cómo puedo rápidamente ver el número de commits?
- Cómo descargar los datos desde git?
- ¿Cómo ver el informe?
- Como recompilar el build de un informe?
- Como mirar el reporte de un grupo de microservicios?
- ¿Cómo puedo personalizar la interfaz de usuario?
- ¿Cómo firmar los commits?
- How to add checking for commit message?
- ¿Cómo automatizar el recolección de datos?
- DevOps
- ️ About application
🚀 Cómo puedo rápidamente ver el número de commits?
En la carpeta raíz de su proyecto, ejecute:
git shortlog -s -n -e
🎭 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.
📈 ¿Cómo ver el informe?
Using website
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.
🏭 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
🗃️ 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.) - 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
).
🎨 ¿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
📝 ¿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"
},
...
📚 ¿Cómo automatizar el recolección de datos?
With backend
- use module Assayo Crawler;
Sin backend
- clone del repositorio que desea;
- copiar a la carpeta raíz
build
; - abridlo
build/index.html
añadir a favoritos; - agregue un icono de
build/assets/ci-cd.sh
a su carpeta de inicio automático
(Windows); Cada vez que reinicie su computadora, el script actualizará la estadística de todos los datos que se hayan incorporado automáticamente a la rama principal.
🛠️ DevOps (CI/CD)
Github Actions
Add script in folder .github/workflows/
or use this action from the marketplace.
Servidor público
Puede publicar el archivo con los datos para generar el informe en una URL pública. Para visualizarlo, puede usar la interfaz web del sitio assayo. Simplemente indique la dirección donde están los datos en el parámetro URL dump
:
https://bakhirev.github.io/demo/?dump=//you_site.com/some/log.txt
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
🛠️ ️ About application
📐 Architecture
- 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.
🈯 Los lanzamientos son aproximadamente una vez cada seis meses. Lo siguiente será:
- más consejos y logros;
- resultados del año / mes, impresión de informes;
- localización e internacionalización;
- análisis de archivos;
- diferentes roles para estadísticas (ocultación de finanzas);
- desarrollo de la parte de atrás, integraciones con otros sistemas;
🗺️ ¿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
📧 Deseos, comentarios
- telegramm @bakhirev (La forma preferencial de contacto)
- alexey-bakhirev@yandex.ru
- sitio web https://bakhirev.github.io/