Skip to main content

Generate comprehensive reports from Git repositories

Project description

RepoFacts

PyPI License: MIT Python Versions

RepoFacts is a powerful command-line tool for generating comprehensive reports from Git repositories. It analyzes repository history, contributors, file changes, and more, then generates beautiful HTML, Markdown, and JSON reports.

Features

  • 📊 Complete Repository Analysis: Get insights into commits, contributors, and file changes
  • 📝 Multiple Output Formats: Generate reports in HTML, Markdown, and JSON
  • 🔍 Deep Git History: Analyze complete commit history with detailed statistics
  • 🎨 Beautiful Reports: Clean, responsive HTML reports with download options
  • 🚀 CLI Interface: Easy-to-use command line interface
  • 📦 Python Package: Integrate with your own Python projects

Installation

pip install repofacts

For development:

git clone https://github.com/wronai/repofacts.git
cd repofacts
pip install -e .[dev]

Usage

Analyze a single repository

repofacts analyze /path/to/repo

Analyze all repositories in a directory

repofacts analyze-org /path/to/organization/dir

Options

Options:
  -o, --output PATH  Output directory for reports (default: ./reports)
  --help             Show this message and exit.

Output Structure

For each repository, RepoFacts generates the following files:

reports/
└── repository-name/
    ├── status.json    # Complete repository data including full commit history
    ├── status.md       # Markdown report
    └── index.html      # HTML report with download option

Example Reports

HTML Report

HTML Report

Markdown Report

# repository-name

**Repository description**

## 📊 Project Overview

- **Created:** 2023-01-01
- **Last Updated:** 2023-05-15
- **Total Commits:** 42
- **Contributors:** 3

### Top Contributors

- Alice: 25 commits
- Bob: 15 commits
- Charlie: 2 commits

### Most Active Files

- `src/main.py`: 12 changes
- `tests/test_main.py`: 8 changes
- `README.md`: 5 changes

### Languages Used

- `.py`: 15 files
- `.md`: 3 files
- `.json`: 2 files

## 📋 Next Steps

- [ ] Add tests for recent changes
- [ ] Refactor large files: src/utils.py, src/processor.py...

## 📜 Recent Commits

- `a1b2c3d` Fix bug in data processing (2023-05-15)
- `f4e5d6a` Add new feature X (2023-05-14)
- `b3c4d5e` Update documentation (2023-05-13)
- `c6d7e8f` Refactor module Y (2023-05-12)
- `d9e0f1a` Initial commit (2023-05-10)

*[View full history in the JSON file]*

Development

Setup

  1. Clone the repository:

    git clone https://github.com/wronai/repofacts.git
    cd repofacts
    
  2. Create and activate a virtual environment:

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    
  3. Install development dependencies:

    pip install -e .[dev]
    

Running Tests

pytest

Code Style

This project uses:

  • Black for code formatting
  • isort for import sorting
  • flake8 for linting
  • mypy for type checking

Run all checks:

black .
isort .
flake8
mypy .

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • Built with ❤️ by the WronAI team
  • Inspired by various Git analysis tools

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

weekly-0.1.0.tar.gz (13.6 kB view details)

Uploaded Source

Built Distribution

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

weekly-0.1.0-py3-none-any.whl (10.1 kB view details)

Uploaded Python 3

File details

Details for the file weekly-0.1.0.tar.gz.

File metadata

  • Download URL: weekly-0.1.0.tar.gz
  • Upload date:
  • Size: 13.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.12.4 Linux/6.14.9-300.fc42.x86_64

File hashes

Hashes for weekly-0.1.0.tar.gz
Algorithm Hash digest
SHA256 bafd314192a8fed1a38791afcdc324dcb82a10f93a4589c5170f96fb1db2b3ae
MD5 6230c49b35191b99f2cb496c3dcb48bd
BLAKE2b-256 3138660f75e07974c53d45148853137655306d4279cbbdde1511a63ad99c9430

See more details on using hashes here.

File details

Details for the file weekly-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: weekly-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 10.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.12.4 Linux/6.14.9-300.fc42.x86_64

File hashes

Hashes for weekly-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 81f79cc4bc9737c2ccf4c67c7857b11ccc6f39442e10b8316761a7cd1ec9e456
MD5 844f694d012fad1222511d8cf426c451
BLAKE2b-256 f63303d4bf881c59b370c6a44aa65d82f3087a9fd85032b7c27654ae18a847f2

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