Generate comprehensive reports from Git repositories
Project description
RepoFacts
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
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
-
Clone the repository:
git clone https://github.com/wronai/repofacts.git cd repofacts
-
Create and activate a virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bafd314192a8fed1a38791afcdc324dcb82a10f93a4589c5170f96fb1db2b3ae
|
|
| MD5 |
6230c49b35191b99f2cb496c3dcb48bd
|
|
| BLAKE2b-256 |
3138660f75e07974c53d45148853137655306d4279cbbdde1511a63ad99c9430
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
81f79cc4bc9737c2ccf4c67c7857b11ccc6f39442e10b8316761a7cd1ec9e456
|
|
| MD5 |
844f694d012fad1222511d8cf426c451
|
|
| BLAKE2b-256 |
f63303d4bf881c59b370c6a44aa65d82f3087a9fd85032b7c27654ae18a847f2
|