GitIntel
GitIntel is a command-line repository intelligence tool that helps developers understand repository history, ownership, and risk hotspots.
Overview
GitIntel analyzes commit history, contributor contributions, and file ownership to help teams make informed maintenance and review decisions.
Key Features
- 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
Installation
From PyPI
For the recommended command-line installation, use pipx:
pipx install gitintel
This makes gitintel available globally without requiring you to activate a
virtual environment.
Alternatively, install with pip:
python -m pip install gitintel
From source
git clone git@github.com:ThePhoenix77/GitIntel.git
cd GitIntel
python -m pip install -e .
Quick setup
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 setup
Quick Start
Analyze 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/GitIntel
CLI Reference
analyze
Analyze repository history and summary metrics.
gitintel analyze <path> [--format table|json|markdown]
Example:
gitintel analyze . --format markdown
ownership
Inspect 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 markdown
hotspots
Identify hotspot files that may need review.
gitintel hotspots <path> [--format table|json|markdown]
Example:
gitintel hotspots . --format json
Options
--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
Development
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 -q
Project Structure
src/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
Contributing
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.
License
MIT License. See LICENSE for details.
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 gitintel-0.1.0.tar.gz.
File metadata
- Download URL: gitintel-0.1.0.tar.gz
- Upload date:
- Size: 19.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1d1e976f4ae46776df08855985b78ff95ce31642b80907df255f0399d02f6105
|
|
| MD5 |
9314454c25ecd61e2c748d935d1740f5
|
|
| BLAKE2b-256 |
d8657a2058fa5635a35afab3449adcd0a8407e77935f92b0ada1e4b6a77ca37d
|
File details
Details for the file gitintel-0.1.0-py3-none-any.whl.
File metadata
- Download URL: gitintel-0.1.0-py3-none-any.whl
- Upload date:
- Size: 21.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e870535583e2e93eda6b6066e794b72363e2b928ecc61704e2a8e6f2025027e4
|
|
| MD5 |
d32c6abf4fb900e9850c65c208864ac3
|
|
| BLAKE2b-256 |
e72ec3307b3c7b567326bdca9a7b15f7c1ff6082f13613fe95f224d2ed6ad29e
|