GitIntel is a command-line repository intelligence tool that helps developers understand repository history, ownership, and risk hotspots.
GitIntel analyzes commit history, contributor contributions, and file ownership to help teams make informed maintenance and review decisions.
- Analyze Git history and contributor activity across a repository
- Report file ownership by modifications, lines changed, and last touch
- Identify hotspot files with risk and contributor concentration insights
- Export reports as
table,json, ormarkdown - Support local repositories and remote GitHub URLs
- Provide a lightweight alias:
gitit
For the recommended command-line installation, use pipx:
pipx install gitintelThis makes gitintel available globally without requiring you to activate a
virtual environment.
Alternatively, install with pip:
python -m pip install gitintelgit clone git@github.com:ThePhoenix77/GitIntel.git
cd GitIntel
python -m pip install -e .For development, create a Python 3.11+ virtual environment and install the developer tools:
python -m venv .venv
source .venv/bin/activate
python -m pip install -e ".[dev]"The convenience script is also available:
make setupAnalyze a repository:
gitintel analyze .Use the alias:
gitit analyze .No account or configuration is required. Run gitintel --help to see all commands,
or pass a GitHub repository URL directly:
gitintel hotspots https://github.com/ThePhoenix77/GitIntelAnalyze repository history and summary metrics.
gitintel analyze <path> [--format table|json|markdown]Example:
gitintel analyze . --format markdownInspect file ownership and contributor activity.
gitintel ownership <path> [--all] [--file <path>] [--format table|json|markdown]Examples:
gitintel ownership .
gitintel ownership . --all
gitintel ownership . --file src/gitintel/cli.py --format markdownIdentify hotspot files that may need review.
gitintel hotspots <path> [--format table|json|markdown]Example:
gitintel hotspots . --format json--format,-f— Output format:table,json, ormarkdown--all— Include all ownership results instead of the default top files--file— Filter ownership results to a specific file path--quiet,-q— Suppress progress output
Create and activate a local virtual environment:
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e .Run tests:
python -m pytest -qsrc/gitintel/cli.py— CLI entrypoint and command definitionssrc/gitintel/git/— Git repository access, diffs, and commit resolutionsrc/gitintel/analysis/— analysis pipeline, ownership, and hotspot logicsrc/gitintel/reports/— terminal and markdown reporting
Contributions are welcome. Please:
- Fork the repository
- Create a descriptive feature branch
- Open a pull request with tests and examples
Read the full contribution guidelines in CONTRIBUTING.md.
MIT License. See LICENSE for details.