This commit is contained in:
Бахирев 2024-03-22 17:40:12 +03:00
parent d53ae9b3e3
commit a0e3f4f5ff
4 changed files with 149 additions and 17 deletions

View file

@ -34,6 +34,34 @@ Visualization and analysis of your git repository data ([demo](https://assayo.on
- forecast of rework time; - forecast of rework time;
- forecast cost; - forecast cost;
### Table of contents
- [How to quickly view the number of commits?](#link-1)
- [How to concat authors?](#link-2)
- [How to export data from git?](#link-3)
- [For online viewing](#link-4)
- [For offline viewing](#link-5)
- [How to view the report?](#link-6)
- [Online](#headers)
- [Offline](#headers)
- [How to rebuild the report build?](#link-)
- [How to view a report on a group of microservices?](#link-)
- [How to brand the interface?](#link-)
- [How to sign commits?](#link-)
- [How to add checking for commit message?](#link-)
- [Use file commit-msg](#link-)
- [Use package pre-commit](#link-)
- [How to automate data collection?](#link-)
- [With backend](#link-)
- [Without backend](#link-)
- [DevOps (CI/CD)](#link-)
- [Public server](#link-)
- [Private server](#link-)
- [How to update the Docker image?](#link-)
- [How to add or edit a translation?](#link-)
- [RoadMap](#link-)
- [Contacts](#link-)
### How to quickly view the number of commits? ### How to quickly view the number of commits?
In the root directory of your project, run: In the root directory of your project, run:
@ -68,12 +96,13 @@ 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 ` 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? ### How to view the report?
#### Online
- go to the [website](https://assayo.online/); - go to the [website](https://assayo.online/);
- click the “[Demo](https://assayo.online/demo)” button; - click the “[Demo](https://assayo.online/demo)” button;
- drag the `log.txt` file into the browser window; - drag the `log.txt` file into the browser window;
### How to view the report offline? #### Offline
- download this repository; - download this repository;
- drag the `log.txt` file to the `/build` folder; - drag the `log.txt` file to the `/build` folder;
- run `/build/index.html`; - run `/build/index.html`;
@ -109,8 +138,40 @@ JIRA-1234 feat(profile): Added avatar for user
- feature `(profile - new page on site or new function, use one (two) short wordor an abbreviation)` - feature `(profile - new page on site or new function, use one (two) short wordor an abbreviation)`
- what problem were solved `(Added avatar for user)` - what problem were solved `(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](https://www.npmjs.com/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"
},
...
```
2. Run command `npm install pre-commit`
### How to automate data collection? ### How to automate data collection?
#### With backend
- use module [Assayo Crawler](https://github.com/bakhirev/assayo-crawler);
#### Without backend #### Without backend
- create a clone of the repository you need; - create a clone of the repository you need;
- copy the `build` folder to the root; - copy the `build` folder to the root;

View file

@ -32,12 +32,42 @@
- прогноз времени доработок; - прогноз времени доработок;
- прогноз стоимости; - прогноз стоимости;
### Содержание
- [Как быстро посмотреть количество коммитов?](#link-1)
- [Как объединить авторов?](#link-2)
- [Как выгрузить данные из git?](#link-3)
- [Для онлайн просмотра](#link-4)
- [Для офлайн просмотра](#link-5)
- [Как посмотреть отчёт?](#link-6)
- [Онлайн](#headers)
- [Офлайн](#headers)
- [Как пересобрать билд отчёта?](#headers)
- [Как посмотреть отчёт по группе микросервисов?](#headers)
- [Как брендировать интерфейс?](#headers)
- [Как подписывать коммиты?](#headers)
- [Как добавить проверку текста коммита?](#headers)
- [Используя файл commit-msg](#headers)
- [Используя пакет pre-commit](#headers)
- [Как автоматизировать сбор данных?](#headers)
- [С бекендом](#headers)
- [Без бекенда](#headers)
- [DevOps (CI/CD)](#headers)
- [Публичный сервер](#headers)
- [Приватный сервер](#headers)
- [Обновление Docker-образа](#headers)
- [Как добавить или отредактировать перевод?](#headers)
- [Дорожная карта](#headers)
- [Пожелания, предложения, замечания](#headers)
<a name="link-1"></a>
### Как быстро посмотреть количество коммитов? ### Как быстро посмотреть количество коммитов?
В корневой директории вашего проекта выполнить: В корневой директории вашего проекта выполнить:
``` ```
git shortlog -s -n -e git shortlog -s -n -e
``` ```
<a name="link-2"></a>
### Как объединить авторов? ### Как объединить авторов?
В корневой директории вашего проекта нужно создать файл `.mailmap`. В корневой директории вашего проекта нужно создать файл `.mailmap`.
Пример содержания файла: Пример содержания файла:
@ -49,13 +79,16 @@ Alex B <alex@mail.uk> <man64@yahoo.com>
``` ```
Подробнее про формат этого файла можно прочитать [тут](https://git-scm.com/docs/gitmailmap). Подробнее про формат этого файла можно прочитать [тут](https://git-scm.com/docs/gitmailmap).
<a name="link-3"></a>
### Как выгрузить данные из git? ### Как выгрузить данные из git?
<a name="link-4"></a>
#### Для онлайн просмотра #### Для онлайн просмотра
В корневой директории вашего проекта выполнить: В корневой директории вашего проекта выполнить:
``` ```
git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" > log.txt git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" > log.txt
``` ```
<a name="link-5"></a>
#### Для офлайн просмотра #### Для офлайн просмотра
``` ```
@ -66,13 +99,14 @@ Git создаст файл `log.txt`.
Разница между онлайн и офлайн форматом в наличие обёртки для строк. Оффлайн формат будет подтягиваться, как `js` файл если вы просто открыли `/build/index.html` Разница между онлайн и офлайн форматом в наличие обёртки для строк. Оффлайн формат будет подтягиваться, как `js` файл если вы просто открыли `/build/index.html`
### Как посмотреть отчёт онлайн? ### Как посмотреть отчёт?
#### Онлайн
- Перейти на [сайт](https://assayo.online/) - Перейти на [сайт](https://assayo.online/)
- Нажать кнопку «[Демо](https://assayo.online/demo)» - Нажать кнопку «[Демо](https://assayo.online/demo)»
- Перетащить файл `log.txt` в окно браузера - Перетащить файл `log.txt` в окно браузера
### Как посмотреть отчёт офлайн? #### Офлайн
- Скачать этот репозиторий - Скачать этот репозиторий
- Перетащить файл `log.txt` в папку `/build` - Перетащить файл `log.txt` в папку `/build`
- Запустить `/build/index.html` - Запустить `/build/index.html`
@ -108,8 +142,39 @@ JIRA-1234 feat(profile): Added avatar for user
- фича `(profile - раздел сайта, страница или новый функционал, одним словом)` - фича `(profile - раздел сайта, страница или новый функционал, одним словом)`
- какую проблему решали `(Added avatar for user)` - какую проблему решали `(Added avatar for user)`
### Как добавить проверку текста коммита?
#### Используя файл `commit-msg`
1. Создайте файл `commit-msg` в папке `.git/hooks/`
2. Добавьте в файл следующий текст:
```
#!/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
```
#### Используя пакет [pre-commit](https://www.npmjs.com/package/pre-commit)
1. Добавьте в файл `package.json` блок `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"
},
...
```
2. Выполните команду `npm install pre-commit`
### Как автоматизировать сбор данных? ### Как автоматизировать сбор данных?
#### С бекендом
- используйте модуль [Assayo Crawler](https://github.com/bakhirev/assayo-crawler);
#### Без бекенда #### Без бекенда
- создайте клон нужного вам репозитория; - создайте клон нужного вам репозитория;
- скопируйте в корень папку `build`; - скопируйте в корень папку `build`;

View file

@ -33,11 +33,7 @@ function getTranslationWrapper(translation: string) {
}; };
} }
export default function initializationI18n(defaultLanguage?: string) { const translations = {
i18next.use(initReactI18next).init({
lng: defaultLanguage || 'ru', // if you're using a language detector, do not define the lng option
debug: false,
resources: {
de: getTranslationWrapper(de), de: getTranslationWrapper(de),
en: getTranslationWrapper(en), en: getTranslationWrapper(en),
es: getTranslationWrapper(es), es: getTranslationWrapper(es),
@ -46,9 +42,20 @@ export default function initializationI18n(defaultLanguage?: string) {
pt: getTranslationWrapper(pt), pt: getTranslationWrapper(pt),
ru: getTranslationWrapper(ru), ru: getTranslationWrapper(ru),
zh: getTranslationWrapper(zh), zh: getTranslationWrapper(zh),
}, };
const defaultLanguage = navigator.languages
.filter((language) => language.length === 2 && translations[language])
.shift() || 'en';
export default function initializationI18n(userLanguage?: string) {
i18next.use(initReactI18next).init({
lng: userLanguage || defaultLanguage || 'ru', // if you're using a language detector, do not define the lng option
debug: false,
resources: translations,
// if you see an error like: "Argument of type 'DefaultTFuncReturn' is not assignable to parameter of type xyz" // if you see an error like: "Argument of type 'DefaultTFuncReturn' is not assignable to parameter of type xyz"
// set returnNull to false (and also in the i18next.d.ts options) // set returnNull to false (and also in the i18next.d.ts options)
// returnNull: false, // returnNull: false,
}); });
} }

View file

@ -37,7 +37,6 @@ export function getNewEmployeesSettings(
], ],
}; };
} }
export default function getEmptySettings(): IUserSetting { export default function getEmptySettings(): IUserSetting {
return { return {
version: 1, version: 1,