Git Commit History Ingest

Import local Git commit history into the Git Commits Dotabase and link commits to repository files and conversations.

Overview

Description

Git Commit History Ingest imports the history already available in a local Git checkout into the Git Commits Dotabase. It reads commits newest-first, shapes stable commit records with author, message, timestamp, changed-file information, repository identity, and a GitHub URL when the remote supports one, then uploads those records through the authenticated API.

The ingest also supplies provenance for the code graph. Full checkout history identifies which commits touched each repository file, and downstream matchers can connect Conversations that mention commit SHAs. These typed endpoints allow traversal from a code symbol through its file and commit to the discussion or plan that produced it.

Selling Points

  • Uses local Git history without requiring a GitHub credential.
  • Preserves full commit SHAs as stable idempotency keys.
  • Connects code structure to delivery history and agent conversations.
  • Adds repository-aware URLs when a checkout points to GitHub.
  • Supports repeatable CLI automation with inserted, updated, skipped, and failed counts.

User Story

As an engineer ingesting a repository, I run the commit-history command against my checkout and receive a durable Git Commits collection. Later I can trace a file or symbol to the commits that changed it and onward to conversations that referenced those SHAs.

Extension Surface

The rating is automatable because packages/cli/src/commands/git.ts exposes a scriptable command and packages/ingestion/src/repo/provenance/git-history.ts accepts a Git runner seam. packages/ingestion/src/repo/provenance/git-commits.ts provides DB-free parsing and identity helpers. Callers can automate inputs and batching, but commit mapping and graph endpoint semantics remain governed.

Capabilities & Limits

Capabilities include local history enumeration, newest-first parsing, stable repository and commit identities, changed-file capture, optional GitHub commit URLs, API batching, commit-to-file provenance, and conversation-SHA linking. Limits are clear: a shallow checkout exposes only its available history, author identity is not guessed into a GitHub login, and the checkout-free provenance sweep cannot recreate full commit-to-file history without a future ingest.

Implementation Map

  • packages/ingestion/src/repo/provenance/git-history.ts
  • packages/ingestion/src/repo/provenance/git-commits.ts
  • packages/ingestion/src/repo/provenance/commit-files.ts
  • packages/cli/src/commands/git.ts

Properties

Property
Value
product
dots-platform
extensibility
automatable
module
Repo Graph, CLI, Importers
packages
ingestion, cli, api, dotabases
status
shipped
surface
cli
summary
Import local Git commit history into the Git Commits Dotabase and link commits to repository files and conversations.

Connections

Git Commit History Ingest · Explore connections

  • complementstoBudgeted Graph Traversal
  • complementstoGitHub Pull Request Ingest
  • implemented bytopackages/ingestion/src/repo/provenance/git-history.ts
  • implemented bytopackages/ingestion/src/repo/provenance/git-commits.ts
  • implemented bytopackages/cli/src/commands/git.ts
  • implemented bytolistCommitFiles
  • implemented bytoparseGitCommits
  • implemented bytoresolveRepoCommitIdentity
  • complementsfromGitHub Pull Request Ingest

Connected Records9

Complements
Implemented by
listCommitFiles
packages/cli/src/commands/git.ts
packages/ingestion/src/repo/provenance/git-commits.ts
packages/ingestion/src/repo/provenance/git-history.ts
parseGitCommits
resolveRepoCommitIdentity
9 connections.