Skip to main content

Git repository statistics and commit analysis

Project description

philiprehberger-git-analyzer

Tests PyPI version Last updated

Git repository statistics and commit analysis.

Installation

pip install philiprehberger-git-analyzer

Usage

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}}

Top authors and hotspots

from philiprehberger_git_analyzer import analyze

report = analyze(".")

# Top 5 most active contributors
for author in report.top_authors(5):
    print(f"{author.name}: {author.commits} commits")

# Top 5 most frequently changed files
for file in report.top_hotspots(5):
    print(f"{file.path}: {file.change_count} changes")

API

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
top_authors(n=10) Top N authors by commit count, descending
top_hotspots(n=10) Top N files by change frequency, descending

Development

pip install -e .
python -m pytest tests/ -v

Support

If you find this project useful:

Star the repo

🐛 Report issues

💡 Suggest features

❤️ Sponsor development

🌐 All Open Source Projects

💻 GitHub Profile

🔗 LinkedIn Profile

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

philiprehberger_git_analyzer-0.2.0.tar.gz (175.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

philiprehberger_git_analyzer-0.2.0-py3-none-any.whl (5.9 kB view details)

Uploaded Python 3

File details

Details for the file philiprehberger_git_analyzer-0.2.0.tar.gz.

File metadata

File hashes

Hashes for philiprehberger_git_analyzer-0.2.0.tar.gz
Algorithm Hash digest
SHA256 6900af9ee69954e1c66102e75f044d55b219bdf988a20e240d54b20030ac15e9
MD5 3aae58d3a8f97cd0943362b2ae14a31c
BLAKE2b-256 f5549d104eebb0ac8404a265ede8c114b33455236ded636d9c1535cc4dfa2865

See more details on using hashes here.

File details

Details for the file philiprehberger_git_analyzer-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for philiprehberger_git_analyzer-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e24c4f252de148a06d2b57a04f6d86126c4a169d4e579ff8aee2c0e54b7a49a7
MD5 3f565892746407aca972417ace98b065
BLAKE2b-256 1e5ed176e809b3fb8b0fe8203ab1b14d32746f1cac1fac1d18a905b4b0a3a690

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page