mirror of
https://github.com/bakhirev/assayo.git
synced 2024-11-16 08:11:40 +00:00
update
This commit is contained in:
parent
d53ae9b3e3
commit
a0e3f4f5ff
65
README.md
65
README.md
|
@ -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;
|
||||||
|
|
|
@ -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`;
|
||||||
|
|
|
@ -33,22 +33,29 @@ function getTranslationWrapper(translation: string) {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function initializationI18n(defaultLanguage?: string) {
|
const translations = {
|
||||||
|
de: getTranslationWrapper(de),
|
||||||
|
en: getTranslationWrapper(en),
|
||||||
|
es: getTranslationWrapper(es),
|
||||||
|
fr: getTranslationWrapper(fr),
|
||||||
|
ja: getTranslationWrapper(ja),
|
||||||
|
pt: getTranslationWrapper(pt),
|
||||||
|
ru: getTranslationWrapper(ru),
|
||||||
|
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({
|
i18next.use(initReactI18next).init({
|
||||||
lng: defaultLanguage || 'ru', // if you're using a language detector, do not define the lng option
|
lng: userLanguage || defaultLanguage || 'ru', // if you're using a language detector, do not define the lng option
|
||||||
debug: false,
|
debug: false,
|
||||||
resources: {
|
resources: translations,
|
||||||
de: getTranslationWrapper(de),
|
|
||||||
en: getTranslationWrapper(en),
|
|
||||||
es: getTranslationWrapper(es),
|
|
||||||
fr: getTranslationWrapper(fr),
|
|
||||||
ja: getTranslationWrapper(ja),
|
|
||||||
pt: getTranslationWrapper(pt),
|
|
||||||
ru: getTranslationWrapper(ru),
|
|
||||||
zh: getTranslationWrapper(zh),
|
|
||||||
},
|
|
||||||
// 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,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -37,7 +37,6 @@ export function getNewEmployeesSettings(
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function getEmptySettings(): IUserSetting {
|
export default function getEmptySettings(): IUserSetting {
|
||||||
return {
|
return {
|
||||||
version: 1,
|
version: 1,
|
||||||
|
|
Loading…
Reference in a new issue