GitHub Pull Request Sync

Sync pull requests across accessible GitHub repositories into a Pull Requests Dotabase, including bounded member-commit identities for cross-linking.

Overview

Description

GitHub Pull Request Sync imports pull requests from every repository visible to the connected account into a dedicated Pull Requests Dotabase. It is a distinct resource workflow within the multi-entity GitHub connector: pull requests have their own discovery branch, schema, row mapping, update watermark, and immutable provider identity. Each row carries review and repository context plus a bounded set of member commit SHAs.

The importer tracks pull-request updated_at values rather than commit time, so later edits and state changes remain eligible for incremental refresh. For each pull request it also fetches up to the provider’s bounded commit-listing limit and stores full SHAs in a structured property. That identity bridge lets knowledge-graph behavior join pull requests to rows created by GitHub Commit Import.

Selling Points

  • See review work across repositories in one place. Pull requests become a consistent corpus instead of remaining fragmented by repo.
  • Capture evolving workflow state. Incremental pulls follow update time, so titles, bodies, reviews, merges, and closure state can refresh.
  • Connect proposals to implementation. Member commit SHAs provide deterministic material for PR-to-commit relationships.
  • Avoid duplicates during repeated pulls. Immutable GitHub node ids serve as binding-scoped external identities.
  • Keep GitHub-specific complexity out of the core. The shared engine still supplies scheduling, retries, persistence, and enrichment.

User Story

A product and engineering team wants to review shipped decisions across many repositories. They connect GitHub, bind the pull-request resource to a Pull Requests Dotabase, and backfill the account. Dots gives them one searchable row per pull request with state, repository, participants, narrative, and member commit identities; later runs update active pull requests without replacing their Dots identity.

Extension Surface

This feature is configurable: a user chooses the connection, pull_requests resource, target, schema mapping, cadence, and optional behavior skips. The resource dispatch and update cursor are implemented in packages/connectors/src/github/index.ts; packages/connectors/src/github/pr-schema-map.ts defines the pull-request-specific field set. The extension does not expose a separate plugin API from GitHub Commit Import, but it is separately selectable and usable as a binding resource.

Capabilities & Limits

Capabilities include account-wide repository coverage, immutable node-id deduplication, update-time incremental sync, structured pull-request mapping, and commit-membership capture for relationship inference. The pull and commit resource kinds share one authorized GitHub account while remaining separately bindable.

The member-commit fetch is intentionally bounded: GitHub caps the listing, and the adapter requests at most three pages of one hundred while the provider returns at most 250. The capability is one-way and limited to repositories and fields visible to the connected account. It does not import code review comments as their own entities, and relationship creation depends on corresponding commit rows being present.

Implementation Map

  • packages/connectors/src/github/index.ts
  • packages/connectors/src/github/pr-schema-map.ts
  • packages/connectors/src/github/pr-map-row.ts
  • packages/connectors/src/github/pr-fixtures.ts
  • apps/web/src/composition/connector-wiring.ts

Properties

Property
Value
product
dots-platform
extensibility
configurable
module
Importers, Dotabases
packages
connectors, apps-web
status
shipped
surface
background
summary
Sync pull requests across accessible GitHub repositories into a Pull Requests Dotabase, including bounded member-commit identities for cross-linking.

Connections

GitHub Pull Request Sync · Explore connections

  • requirestoSync Binding Management
  • requirestoConnected Importer Accounts
  • implemented bytoapps/web/src/composition/connector-wiring.ts
  • implemented bytopackages/connectors/src/github/index.ts
  • implemented bytopackages/connectors/src/github/pr-schema-map.ts
  • implemented bytopackages/connectors/src/github/pr-map-row.ts
  • implemented bytopackages/connectors/src/github/pr-fixtures.ts
  • extendstoSource Connector Framework
  • complementstoGitHub Commit Import
  • implementstoImporter Spec — `github` (GitHub) — Commits
  • complementsfromGitHub Commit Import

Connected Records11

Complements
Extends
Implemented by
apps/web/src/composition/connector-wiring.ts
packages/connectors/src/github/index.ts
packages/connectors/src/github/pr-fixtures.ts
packages/connectors/src/github/pr-map-row.ts
packages/connectors/src/github/pr-schema-map.ts
Implements
Importer Spec — `github` (GitHub) — Commits
Requires
11 connections.