assayo/documents/ES.md
2025-07-08 16:42:43 +03:00

12 KiB
Raw Blame History

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

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

  1. Create file commit-msg in folder .git/hooks/
  2. 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

  1. Add in file package.json property 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. Run command npm install pre-commit

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

  1. Reports showcase UI displays a list of available reports. Each report consists of a title, description, and a list of repositories.
  2. Crawler service collects repository logs for the report.
  3. Log visualization UI (you here) displays report. Needs a log file for work.

📧 Deseos, comentarios