Go to file
2023-12-03 13:18:16 +03:00
build JIRA-1234 fix(doc): some some 2023-11-27 15:46:48 +03:00
documents WOW-777 fix(lang): one and one 2023-12-01 01:20:26 +03:00
public MMM-2022 lol(kek): 4eburek 2023-12-03 13:18:16 +03:00
src MMM-2022 lol(kek): 4eburek 2023-12-03 13:18:16 +03:00
.eslintrc JIRA-1234 feat(lang): test test test 2023-10-13 15:17:53 +03:00
.gitignore JIRA-1234 feat(lang): test test test 2023-10-13 15:17:53 +03:00
.stylelintrc.json JIRA-1234 feat(lang): test test test 2023-10-13 15:17:53 +03:00
config-overrides.js JIRA-1234 fix(doc): some some 2023-11-27 15:45:54 +03:00
declaration.d.ts GIT-0000 feat: add first version 2023-05-12 14:47:48 +03:00
Dockerfile JIRA-1111 feat(ci-cd): some text 2023-09-22 15:29:50 +03:00
LICENSE TEST-0001 feat(doc): add licence 2023-09-25 10:15:24 +03:00
package-lock.json JIRA-1234 fix(doc): some some 2023-11-27 15:45:54 +03:00
package.json JIRA-1234 fix(doc): some some 2023-11-27 15:45:54 +03:00
README.md WOW-777 fix(lang): one and one 2023-12-01 01:23:39 +03:00
tsconfig.json GIT-0000 feat: add first version 2023-05-12 14:47:48 +03:00

The main documentation is in russian. This is a translation. It may contain errors. If you a native speaker, you can help improve this translation. Thanks!

Assayo

Visualization and analysis of your git repository data (demo).

Employee can evaluate new workplace
  • work pace;
  • number of extra hours worked;
  • areas of responsibility;
  • volume of features and bugs;
  • working style of colleagues;
Manager can evaluate employees
  • identify slackers;
  • estimate the amount of code;
  • learn the work speed;
  • notice behavioral anomalies;
  • see the dynamics of work by week;
Investor can evaluate product
  • product cost;
  • cost of features;
  • development time;
  • forecast of rework time;
  • forecast cost;

How to quickly view the number of commits?

In the root directory of your project, run:

git shortlog -s -n -e

How to concat authors?

In the root directory of your project, you need to create a .mailmap file. Example of the contents of the file:

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>

Read more about the format of this file you can here.

How to export data from git?

For online viewing

In the root directory of your project run:

git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" > log.txt

For offline viewing

git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" | sed -e 's/\\/\\\\/g' | sed -e 's/`/"/g' | sed -e 's/^/report.push(\`/g' | sed 's/$/\`\);/g' | sed 's/\$/_/g' > log.txt

Git will create a file log.txt. This file contains data for show a report.

The difference between the online and offline format is the presence of a wrapper for strings. The offline format will be pulled up like a js file if you just opened /build/index.html

How to view the report online?

  • Go to the website
  • Click the “Demo” button.
  • Drag the log.txt file into the browser window.

How to view the report offline?

  • Download this repository.
  • Drag the log.txt file to the /build folder.
  • Run /build/index.html
  • Or drag the /build folder to your repository (where the log.txt is located). You can change the name. For example, from /build to /report.

В этом случае важно, чтобы файл log.txt был сгенерирован командой для офлайн просмотра.

How to rebuild the report build?

  • Download this repository
  • Run npm install
  • Run npm run build
  • The new build will be in the /build folder

How to view a report on a group of microservices?

  • Generate for each microservice log.txt (log-1.txt, log-2.txt, log-3.txt и т.д.)
  • See “How to view an online report?”. At the last step, drag all the files at once into the browser window.
  • See “How to see a report offline?”. At the second step, drag all microservice files (log-1.txt, log-2.txt, log-3.txt and etc.) to the report folder (/build).

How to brand the interface?

Вы можете написать свою тему для интерфейса. Можно менять:

  • Заголовок. Вы можете указать его в URL-параметре title. Например: ?title=You Company
  • Визуальную тему. Для этого нужно подготовить CSS файл с новыми стилями и указать его адрес в URL-параметре theme. Например: ?theme=//company.com/some.css. Вы можете использовать имена классов в качестве селекторов. Большинство из них не меняется в при выходе новой версий.
  • Язык. Вы можете указать его в URL-параметре lang. Например: ?lang=es

Как добавить или отредактировать перевод?

Вы можете добавить новый перевод или поправить текущий в разделе ts/translations/ и создать Pull Request.

Как подписывать коммиты?

Следуйте практике Conventional Commits 1.0.0. Например:

JIRA-1234 feat(profile): Added avatar for user 
  • номер задачи в таск трекере (JIRA-1234)
  • тип работы (feat, fix, style, refactor, test, doc и т.д.)
  • фича (profile - раздел сайта, страница или новый функционал, одним словом)
  • какую проблему решали (Added avatar for user)

Как автоматизировать сбор данных?

Без бекенда

  • создайте клон нужного вам репозитория;
  • скопируйте в корень папку build;
  • откройте build/index.html в браузере и добавьте в закладки;
  • добавьте ярлык на build/assets/ci-cd.sh в папку автозагрузки (Windows);

Каждый раз, при перезагрузке компьютера, скрипт будет обновлять статистику по всем данным, которые автоматически влились в основную ветку.

DevOps (CI/CD)

Публичный сервер

Вы можете выкладывать файл с данными для построения отчёта на публичный URL. А для его визуализации использовать веб-интерфейс сайта assayo. Просто укажите адресс, где лежат данные, в URL-параметре dump:

https://assayo.jp/demo/?dump=//you_site.com/some/log.txt

Приватный сервер

  • скачайте docker образ;
  • поднимите его в локальной сети;
  • для просмотра отчётов используйте веб-интерфейс указывая ему адресс, где лежат данные, в URL-параметре dump:
http://assayo_url/?dump=//you_url/some/log.txt
assayo_url - URL адресс контейнера assayo, он слушает 80 порт;
you_url    - URL адресс вашего контейнера с логами git;

По умолчанию образ запустится по адресу http://127.0.0.1:80/. Если не получилось проверьте свободен ли у вас 80 порт.

Обновление Docker-образа

  • удилить метрику, аллерты, старые билды;
  • собрать билд npm run build
  • собрать образ docker build -t assayo .
  • визуально проверить образ docker run --name assayo -p 80:80 -d assayo;
  • поставить тег docker tag IMAGE_ID bakhirev/assayo:latest;
  • запушить образ в Docker Hub

Релизы, примерно, раз в полгода. Что дальше:

  • больше советов и достижений;
  • итоги года / месяца, печать отчётов;
  • локализация и интернационализация;
  • анализ файлов;
  • разные роли для статистики (скрытие финансов);
  • разработка бекенда, интеграции с другими системами;

Пожелания, предложения, замечания