Git repository statistics and commit analysis
pip install philiprehberger-git-analyzerGit repository statistics and commit analysis.
pip install philiprehberger-git-analyzer
from philiprehberger_git_analyzer import analyze
report = analyze(".")
print(f"Total commits: {report.total_commits}")
print(f"Contributors: {report.contributor_count}")
print(f"Most active file: {report.most_changed_file}")
print(f"Commits/week: {report.commits_per_week}")
# Per-author stats
for author in report.authors:
print(f"{author.name}: {author.commits} commits")
# File hotspots (most changed files)
for file in report.hotspots(limit=10):
print(f"{file.path}: {file.change_count} changes")
# Language breakdown
for ext, count in report.file_extensions.items():
print(f"{ext}: {count} files")
# Activity patterns
print(report.commits_by_hour) # {9: 42, 10: 38, ...}
print(report.commits_by_weekday) # {0: 120, 1: 115, ...} (0=Mon)
print(report.activity_heatmap()) # {weekday: {hour: count}}
analyze(repo_path, branch?, max_commits?) -> RepoReport| Field | Description |
|---|---|
total_commits | Total number of commits |
contributor_count | Number of unique authors |
first_commit_date | Date of earliest commit |
last_commit_date | Date of latest commit |
commits_per_week | Average commits per week |
most_changed_file | File with most changes |
authors | List of AuthorStats |
file_extensions | Extension → file count |
commits_by_day | Date → commit count |
commits_by_hour | Hour → commit count |
commits_by_weekday | Weekday → commit count |
hotspots(limit) | Most frequently changed files |
activity_heatmap() | Weekday × hour activity matrix |
pip install -e .
python -m pytest tests/ -v
If you find this project useful: