Skip to content

balyakin/git-pulse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

git-pulse

CI crates.io license

Instant health check for any git repository.

git-pulse demo

What it shows

git-pulse scans git history and builds a compact engineering-health report:

  • Churn hotspots: files changed most often, with risk hints.
  • Bus factor: ownership concentration, inactive key contributors, single-owner risks.
  • Bug clusters: files frequently touched in bug-fix commits.
  • Team velocity: monthly activity trend and sharp drop/growth anomalies.
  • Crisis patterns: revert, hotfix, emergency, rollback event density.
  • Temporal coupling: files that repeatedly change together.
  • Health score: explainable penalties + prioritized actions.

Why git-pulse

  • Built for terminal-first workflows: TUI, plain text, JSON, Markdown.
  • Deterministic JSON contract for CI integrations.
  • Fast enough for very large repositories via lazy diff loading + caching.
  • Policy mode for release gates (check --min-health, --fail-on, etc.).

Install

Cargo (recommended)

# from crates.io
cargo install git-pulse

# or from source checkout
cargo install --path .

Homebrew (HEAD formula)

brew install --HEAD ./Formula/git-pulse.rb

Nix

# run once
nix run .

# install to profile
nix profile install .

curl installer

curl -fsSL https://raw.githubusercontent.com/balyakin/git-pulse/main/scripts/install.sh | sh

Usage

# Interactive TUI
git-pulse

# Plain output
git-pulse --format plain

# JSON for CI
git-pulse --format json --no-color

# Markdown report to file
git-pulse --format markdown -o report.md

# Analyze a specific branch and period
git-pulse --branch main --period 6m

Baseline and delta

git-pulse --save-baseline .gitpulse-baseline.json
git-pulse --compare-baseline .gitpulse-baseline.json

CI gate mode

git-pulse check --fail-on critical
git-pulse check --min-health 70
git-pulse check --max-high-risk-files 3

Policy failure exits with code 2.

Comparison

Feature git-pulse git-quick-stats hercules gitinspector
Interactive TUI dashboard
Deterministic JSON contract ⚠️ partial
CI policy gate mode
Explainable health score
Temporal coupling analyzer
Crisis-pattern detection

Config

Optional .gitpulse.toml in repository root:

[ignore]
patterns = ["*.generated.ts", "vendor/*"]

[analysis]
period = "12m"
top = 20
include_merges = false
detect_squash = true

[authors.aliases]
"john@company.com" = ["john.doe@company.com"]

[thresholds]
bus_factor_critical = 0.60
bus_factor_warning = 0.40
crisis_rate_warning = 2
crisis_rate_critical = 4
velocity_drop_warning = 0.50

[bugs]
extra_keywords = ["patch", "workaround", "hack"]

License

MIT

Releases

No releases published

Packages

 
 
 

Contributors

Languages