13 KiB
English | Español | Français | Português | Deutsch | 中文 | 日本語 | 한국어 | العربية | हिन्दी | Русский
Assayo
HTMLレポートを作成してコミットの統計を分析します:
- 作業のペースと残業時間の数;
- 責任の範囲、機能の数とエラー;
- 同僚の作業スタイル;
- 従業員の流れとチームの構成;
- 開発者の位置;
- リリーススケジュールと休暇スケジュール;
- 機能とプロジェクト全体のコスト;
- リファクタリングが必要な場所、削除されたファイルなど。
リンク: demo, online version, docker, reddit, habr
ビデオ: english, español, русский
目次
コミット統計レポート
📈 レポートの作成と表示方法は?
パブリックサーバーを使用
- ウェブサイトにアクセス
- 手順に従って
NodeJSライブラリを使用
npx assayoを実行./assayo/index.htmlを開く
PHPライブラリを使用
composer require bakhirev/assayoを実行vendor/bin/assayoを実行./assayo/index.htmlを開く
Pythonライブラリを使用
pipx install assayoを実行assayoを実行./assayo/index.htmlを開く
Rubyライブラリを使用
gem install assayoを実行assayoを実行./assayo/index.htmlを開く
Goライブラリを使用
go get github.com/bakhirev/assayoを実行go install github.com/bakhirev/assayoを実行assayoを実行./assayo/index.htmlを開く
ソースコードを使用
- このリポジトリをダウンロード
- ファイル
log.txtを/buildに配置 /build/index.htmlを開く- または、ファイル夹
/buildをリポジトリに配置(log.txtが存在する場所)。名前を変更できます。例えば、/buildから/reportに変更します。
この場合、ファイルlog.txtがコマンドによって生成され、オフラインで表示されることが重要です。
GitHubアクションを使用
ファイル夹.github/workflows/にスクリプトを追加またはマーケットプレイスのアクションを使用します。準備された更新されたレポートがアーティファクトに保存されます。
プライベートサーバーを使用
- dockerイメージをダウンロード;
- ローカルネットワークで実行;
- Webインターフェースでレポートを表示し、データURLパラメータ
dumpを設定:
http://assayo_url/?dump=//you_url/some/log.txt
assayo_url - コンテナassayoのURL、ポート80を監視;
you_url - GitログのコンテナURL;
デフォルトでは、イメージはhttp://127.0.0.1:80/で実行されます。機能しない場合は、ポート80が利用可能か確認してください。
🎭 著者を結合する方法は?
プロジェクトのルートディレクトリで、ファイル.mailmapを作成する必要があります。
ファイルの内容の例:
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>
このファイル形式について詳しくはこちらをご覧ください。
📤 Gitデータをtxtファイルにエクスポートする方法
オンラインで表示
プロジェクトのルートディレクトリで実行:
オフラインで表示
Gitはファイルlog.txtを作成します。このファイルには、レポートを表示するためのデータが含まれています。オンラインとオフラインの形式の違いは、文字列のラッピングです。オフライン形式は、ファイルjsとしてロードされます(/build/index.htmlのみ開く場合)
WindowsでPowerShellを使用している場合
デフォルトでは、出力エンコーディングがUTF-8と一致しない場合があり、生成されたログファイルは読み取り不能になります。ログを保存する前に、コマンドを使用してエンコーディングを変更できます。
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
または、保存されたファイルを開き、エンコーディングをUTF-8に手動で変更します。
🗃️ マイクロサービスグループのレポートの見方は?
- 各マイクロサービスファイル
log.txt(log-1.txt,log-2.txt,log-3.txtなど)を作成します。手動で行うこともできますし、Assayo Crawlerモジュールを使用して自動ログ収集を行うこともできます; - 「オンラインレポートの見方」を参照。最後のステップで、すべてのファイルを一度にブラウザウィンドウにドラッグします。
- 「オフラインレポートの見方」を参照。2番目のステップで、すべてのマイクロサービスファイル(
log-1.txt,log-2.txt,log-3.txtなど)をレポートフォルダ(/build)にドラッグします。
プロジェクトでのベストプラクティス
📝 コミットのサイン方法は?
Conventional Commits 1.0.0に従います。例:
JIRA-1234 feat(profile): Added avatar for user
- タスクトラッカーのタスク番号
(JIRA-1234) - 作業の種類
(feat, fix, style, refactor, test, docなど) - 機能
(profile - サイトの新規ページまたは新規機能、短い単語または略語の1(2)つを使用) - 解決された問題
(Added avatar for user)
👮 コミットメッセージのチェックを追加する方法
ファイルcommit-msgを使用
- フォルダ.git/hooks/にファイル
commit-msgを作成 - ファイルにこのテキストを追加:
#!/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を使用
- ファイル
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"
},
...
- コマンド
npm install pre-commitを実行
このアプリについて
🎨 インターフェースをブランディングする方法
独自のインターフェーステーマを作成できます。オプション:
- タイトル。URLパラメータ
titleでデフォルトのドキュメントタイトルを設定できます。例:?title=You Company - ビジュアルテーマ。新しいスタイルのCSSファイルを準備し、そのURLをパラメータ
themeに指定する必要があります。例:?theme=//company.com/some.css。セレクターとしてクラス名を使用できます。ほとんどは新しいバージョンで変更されません。 - 言語。URLパラメータ
langで言語を設定できます。例:?lang=es
例:デモ
🛠️ ソースコードからHTMLレポートを再構築する方法
- このリポジトリ
git clone https://github.com/bakhirev/assayo.gitをダウンロード npm installを実行npm run build:localを実行- 新しいHTMLビルドは、フォルダ
/buildにあります
🈯 翻訳を追加または編集する方法
新しい翻訳を追加したり、フォルダts/translations/にある既存の翻訳を修正できます。
指示
📐 アーキテクチャ
マイクロサービスの全体的なアーキテクチャ
- Reports showcase UIは、利用可能なレポートのリストを表示します。各レポートには、タイトル、説明、およびリポジトリのリストが含まれています。
- Crawler serviceは、レポートのためにリポジトリログを収集します。
- Log visualization UI(ここにいます)はレポートを表示します。作業にはログファイルが必要です。
