Skip to main content

GitIntel

CI PyPI Python Version License

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, or markdown
  • 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, or markdown
  • --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 definitions
  • src/gitintel/git/ — Git repository access, diffs, and commit resolution
  • src/gitintel/analysis/ — analysis pipeline, ownership, and hotspot logic
  • src/gitintel/reports/ — terminal and markdown reporting

Contributing

Contributions are welcome. Please:

  1. Fork the repository
  2. Create a descriptive feature branch
  3. 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

gitintel-0.1.0.tar.gz (19.4 kB view details)

Uploaded Source

Built Distribution

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

gitintel-0.1.0-py3-none-any.whl (21.3 kB view details)

Uploaded Python 3

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

Hashes for gitintel-0.1.0.tar.gz
Algorithm Hash digest
SHA256 1d1e976f4ae46776df08855985b78ff95ce31642b80907df255f0399d02f6105
MD5 9314454c25ecd61e2c748d935d1740f5
BLAKE2b-256 d8657a2058fa5635a35afab3449adcd0a8407e77935f92b0ada1e4b6a77ca37d

See more details on using hashes here.

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

Hashes for gitintel-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e870535583e2e93eda6b6066e794b72363e2b928ecc61704e2a8e6f2025027e4
MD5 d32c6abf4fb900e9850c65c208864ac3
BLAKE2b-256 e72ec3307b3c7b567326bdca9a7b15f7c1ff6082f13613fe95f224d2ed6ad29e

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 Sentry Error logging StatusPage Status page