Go to file
2024-01-03 22:30:37 +03:00
build TEST-1234 fix(fix): fix 2024-01-03 22:30:37 +03:00
documents TEST-1234 fix(fix): fix 2024-01-03 22:26:57 +03:00
public TEST-1234 some(time): all end 2023-12-07 01:07:57 +03:00
src TEST-1234 fix(fix): fix 2024-01-03 22:30:37 +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 TEST-1234 fix(fix): fix 2024-01-03 22:26:57 +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 speed;
  • number of extra hours worked;
  • areas of competence;
  • volume of features and bugs;
  • working style of colleagues;
Teamlead can evaluate employees
  • identify slackers;
  • estimate the amount of code;
  • learn the work speed;
  • notice behavioral anomalies;
  • see the dynamics of work by week;
Founder 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.

In this case, it is important that the log.txt file is generated by the command for offline viewing.

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 file log.txt (log-1.txt, log-2.txt, log-3.txt and etc.)
  • 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?

You can create your own interface theme. Options:

  • Title. You can set default document title in the URL parameter title. Example: ?title=You Company
  • Visual theme. To do this, you need to prepare a CSS file with new styles and specify its URL in the theme parameter. Example: ?theme=//company.com/some.css. You can use class names as selectors. Most of them do not change in new versions.
  • Language. You can set language in the URL parameter lang. Example: ?lang=es

How to sign commits?

Follow the Conventional Commits 1.0.0. Example:

JIRA-1234 feat(profile): Added avatar for user 
  • task number in the task tracker (JIRA-1234)
  • type of work (feat, fix, style, refactor, test, doc и т.д.)
  • feature (profile - new page on site or new function, use one (two) short wordor an abbreviation)
  • what problem were solved (Added avatar for user)

How to automate data collection?

Without backend

  • create a clone of the repository you need;
  • copy the build folder to the root;
  • open build/index.html in the browser and add it to bookmarks;
  • add a shortcut to build/assets/ci-cd.sh to the startup folder (Windows);

Every time you restart the computer, the script will update statistics on all the data that automatically merged into the main branch.

DevOps (CI/CD)

Public server

You can upload the data file for report construction to a public URL. And use the websites assayo to visualize it.

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

Private server

  • download the docker image;
  • run it on your local network;
  • use the web interface to view the reports, set the URL of the data in the URL parameter dump:
http://assayo_url/?dump=//you_url/some/log.txt
assayo_url - URL of the assayo container, it listens on port 80;
you_url    - URL of your container with git logs;

By default, the image will run at http://127.0.0.1:80/. If it doesn't work, check if port 80 is free.

How to update the Docker image?

  • remove metrics, alerts, old builds;
  • run npm run build
  • run docker build -t assayo .
  • visually check the image docker run --name assayo -p 80:80 -d assayo;
  • add tag docker tag IMAGE_ID bakhirev/assayo:latest;
  • push image to Docker Hub;

Releases are planned approximately once every six months. Whats next:

  • more recommendations and achievements;
  • annual/monthly summaries, report printing;
  • localization and internationalization;
  • file analysis;
  • different roles for statistics (hiding finances);
  • development of the backend, integration with other systems;

How to add or edit a translation?

You can add a new translation or correct an existing one in the ts/translations/ folder. Instruction

Feedback, suggestions, comments