Skip to main content

Git Repo Insights

ADO Git Repo Insights

CI Release AI Review Maintained Last Commit

PyPI version Python Python Coverage Python Tests

TypeScript TypeScript Coverage TypeScript Tests

Node.js pnpm Code Style: Prettier Conventional Commits

License Platform PRs Welcome Live Demo

Extract Azure DevOps Pull Request metrics to SQLite and generate PowerBI-compatible CSVs.


🚀 Quick Start

Choose your path:

I want to... Use
Analyze PRs for my team via Azure DevOps pipelines ADO Extension
Run analysis locally or integrate into custom CI/CD Python CLI

☁️ Azure DevOps Extension

The ADO Extension provides a self-contained pipeline task with a built-in PR Insights Dashboard directly in your Azure DevOps project.

Git Repo Insights Install from Marketplace

What you get:

  • Pipeline task that extracts PR metrics automatically
  • Interactive dashboard in your ADO project navigation
  • No Python installation required
  • PowerBI-compatible CSV exports

Get started: Extension User Guide

Minimal Pipeline Example

variables:
    - group: ado-insights-secrets # Contains PAT_SECRET

steps:
    - task: ExtractPullRequests@3
      inputs:
          organization: "MyOrg"
          projects: "Project1,Project2"
          pat: "$(PAT_SECRET)"

    - publish: $(Pipeline.Workspace)/aggregates
      artifact: aggregates

ExtractPullRequests pipeline task configuration in Azure DevOps


🐍 Python CLI

The Python CLI provides full control for local analysis, custom scripts, and non-ADO CI/CD systems.

# Install (recommended)
pipx install ado-git-repo-insights

# Extract → CSV → dashboard
ado-insights extract --organization MyOrg --projects "Project1,Project2" --pat $ADO_PAT --database ./ado-insights.sqlite
ado-insights generate-csv --database ./ado-insights.sqlite --output ./csv_output
ado-insights build-aggregates --db ./ado-insights.sqlite --out ./dataset
ado-insights dashboard --dataset ./dataset --open

Get started: CLI User Guide — covers uv and pip install paths, configuration files, and CI/CD integration.


📚 Documentation

👤 For End Users

Document Description
Extension User Guide Complete setup for ADO Extension users
CLI User Guide Complete setup for Python CLI users
Troubleshooting Common issues and solutions

📖 Reference

Document Description
CLI Command Reference All CLI commands and options
Task Input Reference Extension task configuration
CSV Schema PowerBI-compatible output format
Dataset Contract Dashboard data format specification
Architecture System design and data flow diagrams

⚙️ Operations

Document Description
Runbook Monitoring, recovery, and operational procedures
Data Retention Storage model and security posture

🛠️ For Developers

Document Description
Contributing Guide How to contribute to this project
Development Setup Setting up the development environment
Testing Guide Running and writing tests
Demo Data Versioning Canonical demo build and parity policy
UI Bundle Sync Dashboard UI synchronization process
Changelog Version history and release notes

📋 Governance

Document Description
Invariants Non-negotiable system invariants
Definition of Done Completion criteria for features
Verification Gates Verification checkpoints

⚖️ Feature Comparison

Feature CLI Extension
Installation pip install ADO Marketplace
Requires Python Yes No (bundled)
Pipeline syntax Script steps Task step
Works outside ADO Yes No
PR Insights Dashboard Local server Built into ADO
Configuration YAML file or CLI args Task inputs
Flexibility Higher Standard

⚡ How It Works

  1. Extract — Fetches completed PRs from Azure DevOps REST API
  2. Store — Persists data in SQLite with UPSERT semantics
  3. Generate — Produces PowerBI-compatible CSVs and dashboard aggregates
  4. Visualize — View metrics in the PR Insights Dashboard

The system uses incremental extraction by default (daily) with optional backfill mode to catch late changes (reviewer votes, status updates).

Comment extraction is opt-in via --include-comments on extract; to cover PR comments for history that predates enabling it, run the one-time backfill-comments subcommand — see the extension guide or CLI guide.

PR Insights Dashboard showing cycle time trends, throughput charts, and reviewer activity


🤖 ML Features (Optional)

The dashboard supports optional ML-powered features: time-series forecasting for cycle time and throughput (zero-config, no API key) and AI insights for bottleneck analysis (requires an OpenAI API key, ~$0.001–0.01 per pipeline run, only aggregated metrics sent — never PR content, identities, or code).

Setup and troubleshooting: Enable ML Features


🛠️ Developer Setup


🔒 Security

PATs use minimum Code (Read) scope, are never logged, and are never persisted at rest. Full posture: docs/SECURITY.md.


💬 Support


📄 License

MIT

Metadata

Release files for ado-git-repo-insights 101.28.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ado-git-repo-insights 101.28.5
File Size Uploaded
ado_git_repo_insights-101.28.5.tar.gz 9.1 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for ado-git-repo-insights 101.28.5
File Interpreter ABI Platform
ado_git_repo_insights-101.28.5-py3-none-any.whl Python 3 none any Details

Total release size: 9.4 MB

Release files / ado_git_repo_insights-101.28.5.tar.gz

Download URL ado_git_repo_insights-101.28.5.tar.gz
Size 9.1 MB
Tags Source
SHA-256 checksum
How to use checksums
33aa575fccd97b58601eeddaf4a58bf09c6974ce4d13b9956b3ec1835a63b63d
BLAKE2b-256 checksum
How to use checksums
f8788fc9edac69571b38afc8130f070b17f41605f9a55f7ee22791889ebdb36e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / ado_git_repo_insights-101.28.5-py3-none-any.whl

Download URL ado_git_repo_insights-101.28.5-py3-none-any.whl
Size 358.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e724f30f4a09ab399f56b86525a66eb308435247e58f413c2484c255a0d932a0
BLAKE2b-256 checksum
How to use checksums
5da6eda5bd5de84532beb449261529c271cbc8f2ef3b0b18bb667d6c95384ef6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

101.28.5 This release

2 release files

5.33.2

2 release files

5.33.1

2 release files

5.33.0

2 release files

5.32.0

2 release files

5.31.0

2 release files

5.30.1

2 release files

5.30.0

2 release files

5.29.0

2 release files

5.28.3

2 release files

5.28.2

2 release files

5.28.1

2 release files

5.28.0

2 release files

5.27.3

2 release files

5.27.2

2 release files

5.27.1

2 release files

5.27.0

2 release files

5.26.0

2 release files

5.25.0

2 release files

5.24.0

2 release files

5.18.1

2 release files

5.18.0

2 release files

5.17.0

2 release files

5.16.0

2 release files

5.15.2

2 release files

5.15.1

2 release files

5.15.0

2 release files

5.14.0

2 release files

5.13.0

2 release files

5.12.0

2 release files

5.11.0

2 release files

5.10.0

2 release files

5.9.0

2 release files

5.8.0

2 release files

5.7.0

2 release files

5.6.0

2 release files

5.5.0

2 release files

5.4.0

2 release files

5.3.0

2 release files

5.2.0

2 release files

5.1.0

2 release files

5.0.0

2 release files

4.2.3

2 release files

4.2.2

2 release files

4.2.1

2 release files

4.1.0

2 release files

4.0.2

2 release files

4.0.1

2 release files

4.0.0

2 release files

3.8.3

2 release files

3.8.2

2 release files

3.8.1

2 release files

3.8.0

2 release files

3.7.1

2 release files

3.7.0

2 release files

3.6.0

2 release files

3.5.1

2 release files

3.5.0

2 release files

3.4.0

2 release files

3.3.0

2 release files

3.2.0

2 release files

3.1.0

2 release files

3.0.4

2 release files

3.0.3

2 release files

3.0.2

2 release files

3.0.1

2 release files

3.0.0

2 release files

2.8.2

2 release files

2.8.1

2 release files

2.8.0

2 release files

2.7.6

2 release files

2.7.5

2 release files

2.7.4

2 release files

2.7.3

2 release files

2.7.2

2 release files

2.7.1

2 release files

2.7.0

2 release files

2.6.0

2 release files

2.5.0

2 release files

2.4.0

2 release files

2.3.0

2 release files

2.2.0

2 release files

2.1.3

2 release files

2.1.2

2 release files

2.1.1

2 release files

2.1.0

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.3.0

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.6

2 release files

1.0.5

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page