Skip to main content

Infer CODEOWNERS from git history with confidence scoring, knowledge graphs, expertise decay detection, bus factor analysis, and team topology inference. CI-native.

Project description

checkowners

CI PyPI PyPI downloads Python versions License: MIT

Infer CODEOWNERS from git history with confidence scoring, a knowledge graph, expertise decay detection, bus factor analysis, team topology inference, review load balancing, and onboarding paths. Pure git, no LLMs. CI-native: structured JSON output, GITHUB_OUTPUT integration, composite GitHub Action.

Ownership is not binary. checkOwners is the first CODEOWNERS tool that treats it as a confidence-scored spectrum and surfaces the second-order risks (bus factor, expertise decay, team topology) that come with it.

How it works

checkowners analyze reads git log and git blame into a confidence-scored ownership map cached at ~/.checkowners/state.json. From that map, generate writes a CODEOWNERS file and drift compares it against the committed one, while bus-factor, decay, topology, balance, onboard, and trends emit their own reports. In CI, the composite GitHub Action runs the same flow and writes structured GITHUB_OUTPUT. See docs/USAGE.md for the full pipeline and a diagram.

Installation

pip install checkowners               # core CLI
pip install "checkowners[graph]"      # adds networkx-backed graph / topology / onboard

Quick start

# Confidence-scored ownership inference
checkowners analyze

# Write CODEOWNERS with owners ranked by expertise confidence
checkowners generate

# Compare inferred vs current CODEOWNERS, ranked by confidence delta
checkowners drift

# Validate syntax (no git access)
checkowners validate

All commands accept --json and persist their results to ~/.checkowners/state.json so downstream commands can reuse the analysis.

Commands

Command What it does
checkowners analyze Infer ownership with confidence scores, bus factor, decay warnings
checkowners generate Write CODEOWNERS, ordered by confidence; optional inline annotations
checkowners print Print inferred ownership to stdout
checkowners validate Validate existing CODEOWNERS syntax
checkowners drift Compare inferred vs current; severity + max confidence delta
checkowners notify POST drift to a webhook gated by severity_threshold
checkowners sync Generate CODEOWNERS and commit the result
checkowners expertise <path> Per-path expertise ranking
checkowners decay Detect dormant owners; recommend transfers
checkowners graph [--export dot] Render the contributor / file / team graph
checkowners bus-factor [<path>] [--all] Per-path bus factor with backup-reviewer suggestions
checkowners topology Infer team boundaries from commit co-occurrence
checkowners balance Detect overloaded reviewers and propose rebalancing
checkowners onboard <path> Generate a learning path from broad-ownership to deep-expertise files
checkowners trends [--periods N] [--period-days D] Show how ownership confidence and bus factor have evolved over time
checkowners github-action Run the full CI flow and write GITHUB_OUTPUT; used by the composite Action

Documentation

  • docs/USAGE.md: full configuration reference, confidence scoring formula, drift severity tiers, GitHub Actions integration, comparison table.
  • docs/FAQ.md: identity (usernames vs emails, teams + subteams), GitHub API access, file locations, tuning, troubleshooting.
  • docs/CONTRIBUTING.md: dev setup, commands, conventional commits, code conventions, PR workflow.
  • docs/CHANGELOG.md: release history.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

checkowners-0.4.0.tar.gz (73.0 kB view details)

Uploaded Source

Built Distribution

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

checkowners-0.4.0-py3-none-any.whl (43.9 kB view details)

Uploaded Python 3

File details

Details for the file checkowners-0.4.0.tar.gz.

File metadata

  • Download URL: checkowners-0.4.0.tar.gz
  • Upload date:
  • Size: 73.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for checkowners-0.4.0.tar.gz
Algorithm Hash digest
SHA256 ed3fe2d62038d6a05e638209337c2e7b0f8390a1bfcf69f10646405dcead5104
MD5 095653b002c77dc7ec26816d4aa6755a
BLAKE2b-256 9808bb23a43f286299ef9f8a2ed0c4c16ae4159313e75b50b082d0fa93ef2759

See more details on using hashes here.

Provenance

The following attestation bundles were made for checkowners-0.4.0.tar.gz:

Publisher: publish.yml on fortyOneTech/checkOwners

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file checkowners-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: checkowners-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 43.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for checkowners-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fe2ffc167dded89ce6f49eade0d569ea3e55cca670d0ce24badb01836f1f09b9
MD5 18a78f2c51969bbd1aed5bd65f98bb4a
BLAKE2b-256 6ece1f47bef8b818e2a3c91ba76334338ebb6d1de3ed0ade5eff306673db0278

See more details on using hashes here.

Provenance

The following attestation bundles were made for checkowners-0.4.0-py3-none-any.whl:

Publisher: publish.yml on fortyOneTech/checkOwners

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page