12 KiB
English | Español | Français | Português | Deutsch | 中文 | 日本語 | 한국어 | العربية | हिन्दी | Русский
Assayo
Erstellt einen HTML-Bericht mit Analyse der Commit-Statistiken:
- Arbeitstempo und Anzahl der Überstunden;
- Verantwortungsbereiche, Anzahl der Features und Bugs;
- Arbeitsstil der Kollegen;
- Fluktuationsrate der Mitarbeiter und Teamzusammensetzung;
- Standort der Entwickler;
- Release-Zeitplan und Urlaubskalender;
- Kosten von Features und des gesamten Projekts;
- Stellen für Refactoring, gelöschte Dateien usw.
Links: demo, online version, docker, reddit, habr
Video: english, español, русский
Inhaltsverzeichnis
COMMIT-STATISTIKBERICHT
📈 Wie erstellt und betrachtet man den Bericht?
Öffentlichen Server verwenden
- Gehen Sie zur Website
- Folgen Sie den Anweisungen
NodeJS-Bibliothek verwenden
- Führen Sie
npx assayoaus - Öffnen Sie
./assayo/index.html
PHP-Bibliothek verwenden
- Führen Sie
composer require bakhirev/assayoaus - Führen Sie
vendor/bin/assayoaus - Öffnen Sie
./assayo/index.html
Python-Bibliothek verwenden
- Führen Sie
pipx install assayoaus - Führen Sie
assayoaus - Öffnen Sie
./assayo/index.html
Ruby-Bibliothek verwenden
- Führen Sie
gem install assayoaus - Führen Sie
assayoaus - Öffnen Sie
./assayo/index.html
Go-Bibliothek verwenden
- Führen Sie
go get github.com/bakhirev/assayoaus - Führen Sie
go install github.com/bakhirev/assayoaus - Führen Sie
assayoaus - Öffnen Sie
./assayo/index.html
Quellcode verwenden
- Dieses Repository herunterladen
- Legen Sie die Datei
log.txtim Ordner/buildab - Öffnen Sie
/build/index.html - Oder legen Sie den Ordner
/buildin Ihr Repository (wo sichlog.txtbefindet). Sie können den Namen ändern. Zum Beispiel von/buildzu/report.
In diesem Fall ist es wichtig, dass die Datei log.txt durch den Befehl für die Offline-Ansicht erzeugt wird.
GitHub Actions verwenden
Fügen Sie das script im Ordner .github/workflows/ hinzu oder verwenden Sie diese action aus dem Marketplace. Ein fertiger, aktueller Bericht wird in den Artefakten gespeichert.
Privaten Server verwenden
- Laden Sie das Docker-Image herunter;
- Führen Sie es in Ihrem lokalen Netzwerk aus;
- Verwenden Sie die Weboberfläche, um die Berichte anzuzeigen, und setzen Sie die Daten-URL im URL-Parameter
dump:
http://assayo_url/?dump=//you_url/some/log.txt
assayo_url - URL des Assayo-Containers, er hört auf Port 80;
you_url - URL Ihres Containers mit Git-Logs;
Standardmäßig wird das Image unter http://127.0.0.1:80/ ausgeführt. Falls es nicht funktioniert, prüfen Sie, ob Port 80 frei ist.
🎭 Wie führt man Autoren zusammen?
Im Stammverzeichnis Ihres Projekts müssen Sie eine Datei .mailmap erstellen.
Beispiel für den Inhalt der Datei:
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>
Mehr über das Format dieser Datei erfahren Sie hier.
📤 Wie exportiert man Daten aus Git in eine TXT-Datei?
Für die Online-Ansicht
Führen Sie im Stammverzeichnis Ihres Projekts aus:
Für die Offline-Ansicht
Git erstellt eine Datei log.txt. Diese Datei enthält Daten zur Anzeige eines Berichts. Der Unterschied zwischen dem Online- und dem Offline-Format besteht in der vorhandenen String-Hülle. Das Offline-Format wird wie eine js-Datei geladen, wenn Sie /build/index.html einfach öffnen.
Wenn Sie PowerShell unter Windows verwenden
Standardmäßig kann die Ausgabe-Codierung nicht mit UTF-8 übereinstimmen, und die resultierende Log-Datei ist möglicherweise unlesbar. Bevor Sie das Log speichern, können Sie die Codierung mit dem Befehl ändern.
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
Oder öffnen Sie eine gespeicherte Datei und ändern Sie die Codierung manuell auf UTF-8.
🗃️ Wie zeigt man einen Bericht über eine Gruppe von Microservices an?
- Erstellen Sie für jeden Microservice eine Datei
log.txt(log-1.txt,log-2.txt,log-3.txtusw.). Dies können Sie manuell tun oder das Modul Assayo Crawler zur automatischen Log-Sammlung verwenden; - Siehe „Wie zeigt man einen Online-Bericht an?“. Ziehen Sie im letzten Schritt alle Dateien gleichzeitig in das Browserfenster.
- Siehe „Wie zeigt man einen Offline-Bericht an?“. Ziehen Sie im zweiten Schritt alle Microservice-Dateien (
log-1.txt,log-2.txt,log-3.txtusw.) in den Berichtsordner (/build).
BEST PRACTICES IM PROJEKT
📝 Wie signiert man Commits?
Folgen Sie den Conventional Commits 1.0.0. Beispiel:
JIRA-1234 feat(profile): Added avatar for user
- Aufgabennummer im Task-Tracker
(JIRA-1234) - Art der Arbeit
(feat, fix, style, refactor, test, doc usw.) - Feature
(profile – neue Seite auf der Website oder neue Funktion, ein oder zwei kurze Wörter oder eine Abkürzung verwenden) - Welche Probleme gelöst wurden
(Added avatar for user)
👮 Wie fügt man eine Prüfung für Commit-Nachrichten hinzu?
Datei commit-msg verwenden
- Datei
commit-msgim Ordner.git/hooks/erstellen - Fügen Sie diesen Text in die Datei ein:
#!/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
Paket pre-commit verwenden
- Fügen Sie in der Datei
package.jsondie Eigenschaftcommit-msghinzu:
...
"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"
},
...
- Führen Sie den Befehl
npm install pre-commitaus
ÜBER DIESE APP
🎨 Wie brandet man die Benutzeroberfläche?
Sie können Ihr eigenes Interface-Theme erstellen. Optionen:
- Titel. Sie können den Standard-Dokumenttitel im URL-Parameter
titlefestlegen. Beispiel:?title=You Company - Visuelles Theme. Dazu müssen Sie eine CSS-Datei mit neuen Styles vorbereiten und deren URL im Parameter
themeangeben. Beispiel:?theme=//company.com/some.css. Die meisten Klassennamen ändern sich in neuen Versionen nicht. - Sprache. Sie können die Sprache im URL-Parameter
langfestlegen. Beispiel:?lang=es
Beispiel: Demo
🛠️ Wie baut man den HTML-Bericht aus dem Quellcode neu?
- Dieses Repository
git clone https://github.com/bakhirev/assayo.githerunterladen - Führen Sie
npm installaus - Führen Sie
npm run build:localaus - Der neue HTML-Build befindet sich im Ordner
/build
🈯 Wie fügt man eine Übersetzung hinzu oder bearbeitet sie?
Sie können im Ordner ts/translations/ eine neue Übersetzung hinzufügen oder eine bestehende korrigieren.
Anleitung
📐 Architektur
Allgemeine Architektur von Microservices
- Reports showcase UI zeigt eine Liste verfügbarer Berichte an. Jeder Bericht besteht aus einem Titel, einer Beschreibung und einer Liste von Repositories.
- Crawler service sammelt Repository-Logs für den Bericht.
- Log visualization UI (Sie sind hier) zeigt den Bericht an. Benötigt eine Log-Datei zur Funktion.
📧 Feedback, Kommentare
- 📱 https://t.me/bakhirev (Bevorzugte Kommunikationsmethode)
- 📧 alexey-bakhirev@yandex.ru
- 🌐 https://bakhirev.github.io/
