mirror of
https://github.com/bakhirev/assayo.git
synced 2024-11-16 16:21:41 +00:00
439 lines
14 KiB
JSON
439 lines
14 KiB
JSON
[
|
||
{
|
||
"p": "Visualisierung und analyse ihrer git-datenbank. Performance tool for Team Lead and IT-audit"
|
||
},
|
||
{
|
||
"p": "Links: [demo](https://assayo.online/demo/?dump=./test.txt), [online version](https://assayo.online/demo/?ref=github), [docker](https://hub.docker.com/r/bakhirev/assayo), [reddit](https://www.reddit.com/r/ITManagers/comments/1e5k291/the_visualization_and_analysis_of_git_commit/), [habr](https://habr.com/ru/articles/763342/), [video](https://www.youtube.com/watch?v=mqfu-ea3jao)."
|
||
},
|
||
{
|
||
"h5": "Mitarbeiter können den neuen arbeitsplatz bewerten"
|
||
},
|
||
{
|
||
"li": [
|
||
"arbeitsgeschwindigkeit;",
|
||
"anzahl der überstunden;",
|
||
"verantwortungsbereiche;",
|
||
"umfang des neuen funktionsweise und fehlerbestandes;",
|
||
"arbeitsstil der kollegen;"
|
||
]
|
||
},
|
||
{
|
||
"h5": "Der vorgesetzte kann die mitarbeiter bewerten"
|
||
},
|
||
{
|
||
"li": [
|
||
"ermitteln sie die untätigen;",
|
||
"schätzen sie den codeumfang ab;",
|
||
"erfahren sie die arbeitsgeschwindigkeit;",
|
||
"merken sie verhaltensanomalien;",
|
||
"beobachten sie das arbeitsgeschehen nach wochen;"
|
||
]
|
||
},
|
||
{
|
||
"h5": "Der Investor kann das produkt bewerten"
|
||
},
|
||
{
|
||
"li": [
|
||
"produktpreis;",
|
||
"preis des neuen funktionsumfanges;",
|
||
"entwicklungszeit;",
|
||
"vorhersage der zeit für überarbeitungen;",
|
||
"preiskostenprognose;"
|
||
]
|
||
},
|
||
{
|
||
"h3": "Table of contents"
|
||
},
|
||
{
|
||
"h3": "Wie kann ich die anzahl der commits schnell sehen?"
|
||
},
|
||
{
|
||
"p": "In der wurzelverzeichnis ihres projektes muss der befehl ausgeführt werden:"
|
||
},
|
||
{
|
||
"pre": [
|
||
"git shortlog -s -n -e"
|
||
]
|
||
},
|
||
{
|
||
"h3": "How to create a local report with using library?"
|
||
},
|
||
{
|
||
"p": "NodeJS:"
|
||
},
|
||
{
|
||
"pre": [
|
||
"npx assayo"
|
||
]
|
||
},
|
||
{
|
||
"p": "PHP:"
|
||
},
|
||
{
|
||
"pre": [
|
||
"composer require bakhirev/assayo",
|
||
"vendor/bin/assayo"
|
||
]
|
||
},
|
||
{
|
||
"p": "Python:"
|
||
},
|
||
{
|
||
"pre": [
|
||
"pipx install assayo",
|
||
"assayo"
|
||
]
|
||
},
|
||
{
|
||
"p": "Ruby:"
|
||
},
|
||
{
|
||
"pre": [
|
||
"gem install assayo",
|
||
"assayo"
|
||
]
|
||
},
|
||
{
|
||
"p": "The script will create a folder `./assayo` with a report about repository:"
|
||
},
|
||
{
|
||
"pre": [
|
||
"./assayo/index.html - report",
|
||
"./assayo/log.txt - information from git"
|
||
]
|
||
},
|
||
{
|
||
"p": "If you do not have NodeJS , see the items \"How to download data from git?\" and \"How to view the report?\""
|
||
},
|
||
{
|
||
"h3": "Wie kann ich autoren zusammenbringen?"
|
||
},
|
||
{
|
||
"p": "Sie müssen eine datei im stammverzeichnis ihres projekts erstellen `.mailmap`."
|
||
},
|
||
{
|
||
"p": "Beispiel für den Inhalt einer Datei:"
|
||
},
|
||
{
|
||
"pre": [
|
||
"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>"
|
||
]
|
||
},
|
||
{
|
||
"p": "Sie können mehr über das format dieser datei lesen[hier](https://git-scm.com/docs/gitmailmap)."
|
||
},
|
||
{
|
||
"h3": "Wie kann ich daten aus git?"
|
||
},
|
||
{
|
||
"h4": "Für die onlineansicht"
|
||
},
|
||
{
|
||
"p": "In der wurzelverzeichnis ihres projektes ausführen:"
|
||
},
|
||
{
|
||
"pre": [
|
||
"git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:\"%ad>%aN>%aE>%s\" > log.txt"
|
||
]
|
||
},
|
||
{
|
||
"h4": "Zum surfen ohne internet"
|
||
},
|
||
{
|
||
"pre": [
|
||
"git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:\"%ad>%aN>%aE>%s\" | sed -e 's/\\\\/\\\\\\\\/g' | sed -e 's/`/\"/g' | sed -e 's/^/r(f\\`/g' | sed 's/$/\\`\\);/g' | sed 's/\\$/_/g' > log.txt"
|
||
]
|
||
},
|
||
{
|
||
"p": "Git erstellt eine datei `log.txt`. Diese datei enthält die daten zum erstellen des berichts. Der unterschied zwischen den formaten liegt im vorhandensein einer wrapper für zeilen. Das format ohne internet wird wie eine js-datei geladen, wenn sie es einfach öffnen. `/build/index.html`"
|
||
},
|
||
{
|
||
"h4": "If you use PowerShell in Windows"
|
||
},
|
||
{
|
||
"p": "By default, the output encoding may not match UTF-8 and the resulting log file will be unreadable. Before saving the log, you can change the encoding with the command."
|
||
},
|
||
{
|
||
"pre": "[Console]::OutputEncoding = [System.Text.Encoding]::UTF8"
|
||
},
|
||
{
|
||
"p": "Or open a saved file and manually change the encoding to UTF-8."
|
||
},
|
||
{
|
||
"h3": "Wie kann ich den bericht sehen?"
|
||
},
|
||
{
|
||
"h4": "Using website"
|
||
},
|
||
{
|
||
"li": [
|
||
"gehe zu [Webseite](https://assayo.online/)",
|
||
"den knopf drücken “[Demonstration](https://assayo.online/demo?lang=ru)”",
|
||
"datei ziehen `log.txt` in das Browserfenster"
|
||
]
|
||
},
|
||
{
|
||
"h4": "Use the library NodeJS"
|
||
},
|
||
{
|
||
"li": [
|
||
"run `npx assayo`",
|
||
"open `./assayo/index.html`"
|
||
]
|
||
},
|
||
{
|
||
"h4": "Use the library PHP"
|
||
},
|
||
{
|
||
"li": [
|
||
"run `composer require bakhirev/assayo`",
|
||
"run `vendor/bin/assayo`",
|
||
"open `./assayo/index.html`"
|
||
]
|
||
},
|
||
{
|
||
"h4": "Use the library Python"
|
||
},
|
||
{
|
||
"li": [
|
||
"run `pipx install assayo`",
|
||
"run `assayo`",
|
||
"open `./assayo/index.html`"
|
||
]
|
||
},
|
||
{
|
||
"h4": "Use the library Ruby"
|
||
},
|
||
{
|
||
"li": [
|
||
"run `gem install assayo`",
|
||
"run `assayo`",
|
||
"open `./assayo/index.html`"
|
||
]
|
||
},
|
||
{
|
||
"h4": "Use source code"
|
||
},
|
||
{
|
||
"li": [
|
||
"laden sie dieses repository herunter",
|
||
"datei ziehen `log.txt` in den ordner`/build`",
|
||
"starten `/build/index.html`",
|
||
"oder ziehen sie einen ordner `/build` zu sich ins repository (der ort, an dem es liegt `log.txt`). Sie können den namen ändern. zum beispiel mit dem namen `/build` auf den namen `/report`"
|
||
]
|
||
},
|
||
{
|
||
"p": "Es ist wichtig, dass die log.txt datei vom befehl für die offlineansicht erstellt wird."
|
||
},
|
||
{
|
||
"h3": "Wie kann ich die berichtsdatei neu erstellen?"
|
||
},
|
||
{
|
||
"li": [
|
||
"Laden sie dieses repository herunter",
|
||
"Erfüllen `npm install`",
|
||
"Erfüllen `npm run build:local`",
|
||
"Der neue build wird im ordner sein `/build`"
|
||
]
|
||
},
|
||
{
|
||
"h3": "Wie kann ich den bericht zur microservices-gruppe anzeigen?"
|
||
},
|
||
{
|
||
"li": [
|
||
"Datei für jeden microservice generieren `log.txt` (`log-1.txt`, `log-2.txt`, `log-3.txt` usw.)",
|
||
"Siehe “Wie kann ich den bericht mit internet ansehen?”. Im letzten schritt ziehen sie alle dateien gleichzeitig in das browserfenster.",
|
||
"Siehe “Wie kann man den bericht ohne internet ansehen?” Im zweiten schritt ziehen sie die microservice-dateien alle (`log-1.txt`, `log-2.txt`, `log-3.txt` usw.) in den berichtsordner (`/build`)."
|
||
]
|
||
},
|
||
{
|
||
"h3": "Wie kann ich die benutzeroberfläche in ihren markenfarben neu streichen?"
|
||
},
|
||
{
|
||
"p": "Sie können ihr skin für die schnittstelle schreiben. Kann geändert werden:"
|
||
},
|
||
{
|
||
"li": [
|
||
"**Überschrift**. Sie können es im URL-parameter angeben ```title```. Zum beispiel: ```?title=you company```",
|
||
"**CSS stile**. Um dies zu tun, müssen sie die CSS-datei vorbereiten und ihre adresse im URL-parameter angeben ```theme```. Zum beispiel: ```?theme=//company.com/some.css```. Sie können klassennamen als selektoren verwenden. Die meisten von ihnen ändern sich nicht, wenn eine neue version veröffentlicht wird.",
|
||
"**Sprache**. Sie können es im URL-parameter angeben ```lang```. Zum Beispiel: ```?lang=es```"
|
||
]
|
||
},
|
||
{
|
||
"h3": "Wie signiere ich commits?"
|
||
},
|
||
{
|
||
"p": "Folge der praxis [Conventional Commits 1.0.0](https://www.conventionalcommits.org/en/v1.0.0/). Zum beispiel:"
|
||
},
|
||
{
|
||
"pre": [
|
||
"JIRA-1234 feat(profile): added avatar for user "
|
||
]
|
||
},
|
||
{
|
||
"li": [
|
||
"aufgabennummer `(JIRA-1234)`",
|
||
"art der arbeit `(feat, fix, style, refactor, test, doc usw.)`",
|
||
"arbeitsbereich `(profile - ein abschnitt der website, eine seite oder eine neue funktionalität, mit einem wort)`",
|
||
"beschreibung der arbeit `(added avatar for user)`"
|
||
]
|
||
},
|
||
{
|
||
"h3": "How to add checking for commit message?"
|
||
},
|
||
{
|
||
"h4": " Use file `commit-msg`"
|
||
},
|
||
{
|
||
"p": "1. Create file `commit-msg` in folder `.git/hooks/`"
|
||
},
|
||
{
|
||
"p": "2. Add this text in file:"
|
||
},
|
||
{
|
||
"pre": [
|
||
"#!/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"
|
||
]
|
||
},
|
||
{
|
||
"h4": " Use package [pre-commit](https://www.npmjs.com/package/pre-commit)"
|
||
},
|
||
{
|
||
"p": "1. Add in file `package.json` property `commit-msg`:"
|
||
},
|
||
{
|
||
"pre": [
|
||
" ...",
|
||
" \"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\"",
|
||
" },",
|
||
" ..."
|
||
]
|
||
},
|
||
{
|
||
"p": "2. Run command `npm install pre-commit`"
|
||
},
|
||
{
|
||
"h3": "Wie kann ich die datenerfassung automatisieren?"
|
||
},
|
||
{
|
||
"h4": "With backend"
|
||
},
|
||
{
|
||
"li": [
|
||
"use module [Assayo Crawler](https://github.com/bakhirev/assayo-crawler);"
|
||
]
|
||
},
|
||
{
|
||
"h4": "Kein bekend"
|
||
},
|
||
{
|
||
"li": [
|
||
"erstellen sie einen klon ihres repositorys;",
|
||
"kopieren sie den ordner `build` aus dem aktuellen repository;",
|
||
"öffnen `build/index.html` im browser und zu lesezeichen hinzufügen;",
|
||
"fügen sie eine verknüpfung hinzu `build/assets/ci-cd.sh` in den startordner (windows);"
|
||
]
|
||
},
|
||
{
|
||
"p": "Jedes mal, wenn der computer neu gestartet wird, aktualisiert das skript die statistiken für alle daten, die automatisch in den hauptzweig aufgenommen wurden."
|
||
},
|
||
{
|
||
"h3": "DevOps (CI/CD)"
|
||
},
|
||
{
|
||
"h4": "Öffentlicher server"
|
||
},
|
||
{
|
||
"p": "Sie können eine datendatei zum erstellen eines berichts auf eine öffentliche URL hochladen. Sie können die Website verwenden, um sie zu visualisieren [assayo](https://assayo.online/). Geben sie im URL-parameter die adresse an, an der die daten liegen ```dump```:"
|
||
},
|
||
{
|
||
"pre": [
|
||
"https://assayo.online/demo/?dump=//you_site.com/some/log.txt"
|
||
]
|
||
},
|
||
{
|
||
"h4": "Privater server"
|
||
},
|
||
{
|
||
"li": [
|
||
"herunterladen [docker das bild](https://hub.docker.com/r/bakhirev/assayo);",
|
||
"führen Sie es im lokalen netzwerk aus;",
|
||
"um berichte anzuzeigen, verwenden sie die webschnittstelle, um die adresse anzugeben, an der sich die daten befinden, im URL-parameter ```dump```:"
|
||
]
|
||
},
|
||
{
|
||
"pre": [
|
||
"http://assayo_url/?dump=//you_url/some/log.txt",
|
||
"assayo_url - die adresse des assayo-containers, er hört auf port 80;",
|
||
"you_url - URL die adresse ihres containers mit git-logs;"
|
||
]
|
||
},
|
||
{
|
||
"p": "Standardmäßig wird das abbild an der folgenden adresse ausgeführt ```http://127.0.0.1:80/```. Wenn es nicht funktioniert, überprüfen sie, ob der port 80 frei ist."
|
||
},
|
||
{
|
||
"h4": "Aktualisieren eines Docker-Images"
|
||
},
|
||
{
|
||
"li": [
|
||
"befehl ausführen ```npm run build:docker```",
|
||
"befehl ausführen ```docker build -t assayo .```",
|
||
"ergebnis überprüfen ```docker run --name assayo -p 80:80 -d assayo```;",
|
||
"befehl ausführen ```docker tag assayo bakhirev/assayo:latest```;",
|
||
"senden sie ein containerimage an Docker Hub ```docker push bakhirev/assayo:latest```;"
|
||
]
|
||
},
|
||
{
|
||
"h3": "️ About application"
|
||
},
|
||
{
|
||
"h4": "Architecture"
|
||
},
|
||
{
|
||
"img": "<img src=\"https://raw.githubusercontent.com/bakhirev/assayo-crawler/12af4410fc93384cafb108a4429e43f9a874dbaa/schema.svg\" width=\"70%\" />"
|
||
},
|
||
{
|
||
"p": "1. [Reports showcase UI](https://github.com/bakhirev/assayo-showcase) displays a list of available reports. Each report consists of a title, description, and a list of repositories."
|
||
},
|
||
{
|
||
"p": "2. [Crawler service](https://github.com/bakhirev/assayo-crawler) collects repository logs for the report."
|
||
},
|
||
{
|
||
"p": "3. [Log visualization UI](https://github.com/bakhirev/assayo) **(you here)** displays report. Needs a log file for work."
|
||
},
|
||
{
|
||
"h4": "Veröffentlichungen, ungefähr alle sechs monate. Was weiter:"
|
||
},
|
||
{
|
||
"p": "Schau [haupt dokumentation](https://github.com/bakhirev/assayo/blob/main/documents/RU.md)"
|
||
},
|
||
{
|
||
"h4": "Wie kann ich eine übersetzung hinzufügen oder bearbeiten?"
|
||
},
|
||
{
|
||
"p": "Sie können eine neue übersetzung hinzufügen oder die aktuelle im abschnitt korrigieren ```ts/translations/```."
|
||
},
|
||
{
|
||
"p": "[Anleitung](https://github.com/firstcontributions/first-contributions)"
|
||
},
|
||
{
|
||
"h4": "Wünsche, Anregungen, Kommentare"
|
||
},
|
||
{
|
||
"li": [
|
||
"telegramm [@bakhirev](https://t.me/bakhirev) (vorrangiger kommunikationsweg)",
|
||
"[alexey-bakhirev@yandex.ru](mailto:alexey-bakhirev@yandex.ru)",
|
||
"web site [https://assayo.online/](https://assayo.online/?ref=github&lang=de)"
|
||
]
|
||
}
|
||
]
|