概要
現在の git-ssh-sync は基本的な進捗メッセージとエラーメッセージのみを出力しており、トラブルシューティッグ時に詳細な情報が不足しています。ログ出力機能(verbose/debugモード)を追加して、運用性とデバッグ効率を向上させます。
現状
あるもの:
- 基本的な進捗メッセージ(プロジェクト名、ブランチ名、同期方向)
- エラー発生時の詳細なエラーメッセージ
- Rich による整形された出力
ないもの:
- Gitコマンドの実行内容(
git fetch, git push など)
- SSH接続の詳細
- 処理の進行状況の詳細
- デバッグレベルの情報(実行コマンド、戻り値、stderr など)
コード内では verbose 引数が用意されていますが、CLIから制御する方法がありません。
提案する実装
1. ログレベルの導入
Python の logging モジュール + Rich の統合で、以下のログレベルを導入:
| レベル |
用途 |
出力内容の例 |
| DEBUG |
実行されたGit/SSHコマンド、戻り値、stderr |
Executing: git fetch origin |
| INFO |
デフォルト。処理の進捗、成功メッセージ |
Fetching from origin... |
| WARNING |
回復可能な問題 |
Branch has diverged, manual merge required |
| ERROR |
失敗、処理続行不可能 |
SSH connection failed |
2. CLIオプションの追加
# 標準出力(INFOレベル)
git-ssh-sync pull myproject
# 詳細出力(DEBUGレベル)
git-ssh-sync pull myproject --verbose
# デバッグ出力(最も詳細)
git-ssh-sync pull myproject --debug
3. 実装構成
git_ssh_sync/logger.py を新規作成
- Rich の Console と logging を統合
- グローバルな logger インスタンスを提供
- 既存の
console.print() を適宜ログ出力に置き換え
利点
-
トラブルシューティングの効率化
SSH接続エラー、Git操作失敗時の原因特定が容易になります。
-
doctor コマンドの強化
診断情報の詳細化により、問題の早期発見が可能になります。
-
複雑な同期フローの可視化
pull/push/checkout の各ステップでの進捗確認ができます。
-
運用上の可観測性向上
ユーザーが何が起きているか理解しやすくなります。
関連ファイル
src/git_ssh_sync/cli.py
src/git_ssh_sync/git.py
src/git_ssh_sync/ssh.py
src/git_ssh_sync/sync.py
src/git_ssh_sync/doctor.py
優先度
中程度 - 既存機能で問題ありませんが、運用性向上のため早期導入が望ましいです。
概要
現在の git-ssh-sync は基本的な進捗メッセージとエラーメッセージのみを出力しており、トラブルシューティッグ時に詳細な情報が不足しています。ログ出力機能(verbose/debugモード)を追加して、運用性とデバッグ効率を向上させます。
現状
あるもの:
ないもの:
git fetch,git pushなど)コード内では
verbose引数が用意されていますが、CLIから制御する方法がありません。提案する実装
1. ログレベルの導入
Python の
loggingモジュール + Rich の統合で、以下のログレベルを導入:Executing: git fetch originFetching from origin...Branch has diverged, manual merge requiredSSH connection failed2. CLIオプションの追加
3. 実装構成
git_ssh_sync/logger.pyを新規作成console.print()を適宜ログ出力に置き換え利点
トラブルシューティングの効率化
SSH接続エラー、Git操作失敗時の原因特定が容易になります。
doctorコマンドの強化診断情報の詳細化により、問題の早期発見が可能になります。
複雑な同期フローの可視化
pull/push/checkoutの各ステップでの進捗確認ができます。運用上の可観測性向上
ユーザーが何が起きているか理解しやすくなります。
関連ファイル
src/git_ssh_sync/cli.pysrc/git_ssh_sync/git.pysrc/git_ssh_sync/ssh.pysrc/git_ssh_sync/sync.pysrc/git_ssh_sync/doctor.py優先度
中程度 - 既存機能で問題ありませんが、運用性向上のため早期導入が望ましいです。