Description
GitHub Commit Import collects the connected user’s authored commit history across repositories they can access and writes each commit as a row in a Git Commits Dotabase. The adapter discovers a profile resource, enumerates repositories and commits through the managed GitHub transport, maps commit metadata into a stable schema, and uses the full commit SHA as the external identity for safe re-runs.
Incremental pulls maintain a high-water cursor over commit time while deliberately overlapping the boundary. That overlap protects against same-instant or late-visible changes; the connector engine’s binding-and-SHA upsert turns repeated observations into updates rather than duplicates. The result is a durable activity corpus that can be searched, related, enriched, and combined with pull-request data inside Dots.
Selling Points
- Unify work history across repositories. One connection captures authored commits without requiring a binding per repository.
- Preserve durable technical identity. Full SHAs provide a stable key across backfills and incremental refreshes.
- Turn activity into queryable knowledge. Commit messages, authorship, repository, timestamps, and links become structured Dotabase fields.
- Refresh safely without duplicate rows. Inclusive cursor overlap favors completeness while provenance-keyed upserts maintain one row per commit.
- Create a foundation for code-work relationships. Imported SHAs can be matched with pull-request commit sets and repo-graph knowledge.
User Story
An engineering lead wants a longitudinal view of what shipped across dozens of repositories. They connect GitHub, bind the profile resource to a Git Commits Dotabase, and run the initial backfill. Dots produces one row per authored commit with repository and timestamp context, then scheduled pulls add new activity while preserving the rows already reviewed and enriched.
Extension Surface
This connector is configurable: users select the GitHub connection, the profile resource, destination, schema strategy, mappings, cadence, and enrichment choices. Provider-specific behavior lives in packages/connectors/src/github/index.ts, and packages/connectors/src/github/schema-map.ts defines the emitted commit schema. The broader framework is pluggable, but the GitHub commit capability itself exposes binding configuration rather than a runtime registration point.
Capabilities & Limits
Capabilities include cross-repository discovery, authored-commit filtering, full-SHA identity, typed schema mapping, resumable incremental pulls, and source provenance. The same GitHub connection can separately expose pull requests through another resource kind.
The importer is one-way and scoped to activity visible through the connected account. API permissions, repository accessibility, provider pagination, and rate limits bound what can be collected. It is not a complete repository mirror and does not replace repo ingest: source files, symbols, imports, and call edges belong to the Repo Graph feature, while this importer represents commit activity.
Implementation Map
packages/connectors/src/github/index.tspackages/connectors/src/github/client.tspackages/connectors/src/github/schema-map.tspackages/connectors/src/github/map-row.tsapps/web/src/composition/connector-wiring.ts