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

11 KiB
Raw Blame History

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

Assayo

Cria um relatório HTML com análise da estatística de commits:

  • o ritmo de trabalho e o número de horas extras;
  • zonas de responsabilidade, número de funcionalidades e bugs;
  • estilo de trabalho dos colegas;
  • a taxa de rotatividade de funcionários e a composição da equipe;
  • localização dos desenvolvedores;
  • calendário de lançamentos e calendário de férias;
  • custo das funcionalidades e do projeto como um todo;
  • lugares para refatoração, arquivos apagados, etc.

Links: demo, online version, docker, reddit, habr

Vídeo: english, español, русский

Sumário

RELATÓRIO DE ESTATÍSTICAS DE COMMIT

📈 Como criar e visualizar o relatório?

Usando servidor público

  • acesse o website
  • siga as instruções

Use a biblioteca NodeJS

  • execute npx assayo
  • abra ./assayo/index.html

Use a biblioteca PHP

  • execute composer require bakhirev/assayo
  • execute vendor/bin/assayo
  • abra ./assayo/index.html

Use a biblioteca Python

  • execute pipx install assayo
  • execute assayo
  • abra ./assayo/index.html

Use a biblioteca Ruby

  • execute gem install assayo
  • execute assayo
  • abra ./assayo/index.html

Use a biblioteca Go

  • execute go get github.com/bakhirev/assayo
  • execute go install github.com/bakhirev/assayo
  • execute assayo
  • abra ./assayo/index.html

Use o código fonte

  • baixe este repositório
  • coloque o arquivo log.txt no /build
  • abra /build/index.html
  • ou coloque a pasta /build no seu repositório (onde o log.txt está localizado). Você pode mudar o nome. Por exemplo, de /build para /report.

Neste caso, é importante que o arquivo log.txt seja gerado pelo comando para visualização offline.

Use ações do github

Adicione script na pasta .github/workflows/ ou use esta ação do marketplace. Um relatório pronto e atualizado será salvo nos artefatos.

Use servidor privado

  • baixe a imagem docker;
  • execute-o na sua rede local;
  • use a interface web para visualizar os relatórios, defina a URL dos dados no parâmetro URL dump:
http://assayo_url/?dump=//you_url/some/log.txt
assayo_url - URL do contêiner assayo, ele escuta na porta 80;
you_url    - URL do seu contêiner com logs git;

Por padrão, a imagem será executada em http://127.0.0.1:80/. Se não funcionar, verifique se a porta 80 está livre.

🎭 Como concatenar autores?

No diretório raiz do seu projeto, você precisa criar um arquivo .mailmap.

Exemplo do conteúdo do arquivo:

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>

Leia mais sobre o formato deste arquivo aqui.

📤 Como exportar dados do git para arquivo txt?

Para visualização online

No diretório raiz do seu projeto execute:

Para visualização offline

O Git criará um arquivo log.txt. Este arquivo contém dados para exibir um relatório. A diferença entre o formato online e offline é a presença de uma envoltória para as strings. O formato offline será carregado como um arquivo js se você apenas abriu /build/index.html

Se você usar PowerShell no Windows

Por padrão, a codificação de saída pode não corresponder a UTF-8 e o arquivo de log resultante será ilegível. Antes de salvar o log, você pode mudar a codificação com o comando.

[Console]::OutputEncoding = [System.Text.Encoding]::UTF8

Ou abra um arquivo salvo e mude manualmente a codificação para UTF-8.

🗃️ Como visualizar um relatório sobre um grupo de microserviços?

  • Gere para cada arquivo de microserviço log.txt (log-1.txt, log-2.txt, log-3.txt, etc.) Você pode fazer isso manualmente ou usar o módulo Assayo Crawler para coleta automática de logs;
  • Veja "Como visualizar um relatório online?". Na última etapa, arraste todos os arquivos de uma vez para a janela do navegador.
  • Veja "Como visualizar um relatório offline?". Na segunda etapa, arraste todos os arquivos de microserviço (log-1.txt, log-2.txt, log-3.txt, etc.) para a pasta do relatório (/build).

AS MELHORES PRÁTICAS NO PROJETO

📝 Como assinar commits?

Siga o Conventional Commits 1.0.0. Exemplo:

JIRA-1234 feat(profile): Added avatar for user
  • número da tarefa no rastreador de tarefas (JIRA-1234)
  • tipo de trabalho (feat, fix, style, refactor, test, doc, etc.)
  • funcionalidade (profile - nova página no site ou nova função, use uma (duas) palavra(s) curta(s) ou uma abreviatura)
  • qual problema foi resolvido (Added avatar for user)

👮 Como adicionar verificação para a mensagem de commit?

Use arquivo commit-msg

  1. Crie arquivo commit-msg na pasta .git/hooks/
  2. Adicione este texto no arquivo:
#!/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 pacote pre-commit

  1. Adicione no arquivo package.json propriedade 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. Execute comando npm install pre-commit

SOBRE ESTE APLICATIVO

🎨 Como personalizar a interface?

Você pode criar sua própria temática de interface. Opções:

  • Título. Você pode definir título de documento padrão no parâmetro de URL title. Exemplo: ?title=You Company
  • Tema visual. Para isso, você precisa preparar um arquivo CSS com novos estilos e especificar sua URL no parâmetro theme. Exemplo: ?theme=//company.com/some.css. Você pode usar nomes de classe como selectores. A maioria deles não muda nas novas versões.
  • Língua. Você pode definir língua no parâmetro de URL lang. Exemplo: ?lang=es

Exemplo: demo

🛠️ Como reconstruir o relatório HTML a partir do código fonte?

  • baixe este repositório git clone https://github.com/bakhirev/assayo.git
  • execute npm install
  • execute npm run build:local
  • a nova construção HTML estará na pasta /build

🈯 Como adicionar ou editar uma tradução?

Você pode adicionar uma nova tradução ou corrigir uma existente na pasta ts/translations/. Instrução

📐 Arquitetura

Arquitetura geral de microserviços

  1. Reports showcase UI exibe uma lista de relatórios disponíveis. Cada relatório consiste em um título, descrição e uma lista de repositórios.
  2. Crawler service coleta logs do repositório para o relatório.
  3. Log visualization UI (você está aqui) exibe relatório. Precisa de um arquivo de log para funcionar.

📧 Feedback, comentários