← All connectors

Business Applications · Source connector

GitHub ELT Connector

Extract brings GitHub business applications data into data warehouses and databases for analysis with the rest of your business data. Teams use it to analyze operational activity, account changes, and business-process performance. Flexible scheduling keeps reporting current for routine analysis and time-sensitive decisions.

View setup guide
GitHub logo

What teams use this connector for

Operational reporting

Analyze GitHub activity alongside account, finance, and process data to monitor business operations.

Record reconciliation

Compare GitHub records with internal systems to identify missing, stale, or inconsistent business data.

Workflow prioritization

Use GitHub data to prioritize accounts, tasks, and operational follow-up based on modeled business rules.

Flexible reporting cadence

Refresh GitHub reporting every 15 minutes, hourly, daily, or on a custom schedule as business needs change.

Warehouse and database analysis

Use Extract to make GitHub business applications data available in data warehouses and databases such as Snowflake, BigQuery, Redshift, and PostgreSQL for governed analysis.

Available streams

StreamDescriptionSync mode
repository_labelsFields include id, repository_id, _singular_extract_timestamp, color.Full refresh
security_cwesFields include security_advisory_id, _singular_extract_timestamp, patched_versions.Incremental
commit_filesFields include commit_id, sha, _singular_extract_timestamp, additions.Full refresh
repository_teamFields include id, repository_id, _singular_extract_timestamp, description.Full refresh
issuesFields include repository_id, id, assignee.id, user.id.Incremental
milestonesFields include repository_id, id, creator.id, _singular_extract_timestamp.Incremental
pull_request_reviewsFields include pull_request_id, id, user.id, _links.html.href.Incremental
projectsFields include id, organization_id, _singular_extract_timestamp, body.Incremental
deployment_statusesFields include deployment_id, id, creator.id, _singular_extract_timestamp.Full refresh
cardsFields include column_id, id, creator.id, _singular_extract_timestamp.Full refresh
usersFields include id, organization_id, _singular_extract_timestamp, avatar_url.Full refresh
deploymentsFields include repository_id, id, creator.id, _singular_extract_timestamp.Full refresh
pull_request_requested_reviewersFields include pull_request_id, _singular_extract_timestamp, avatar_url, email.Incremental
pull_request_review_commentsFields include repository_id, id, _links.html.href, _links.pull_request.href.Incremental
assetsFields include release_id, id, uploader.id, _singular_extract_timestamp.Full refresh
team_membershipFields include team_id, user_id, _singular_extract_timestamp, role.Full refresh
security_advisoryFields include ghsa_id, organization_id, _singular_extract_timestamp, author.avatar_url.Incremental
security_vulnerabilitiesFields include security_advisory_id, _singular_extract_timestamp, package.ecosystem, package.name.Incremental
branchesFields include repository_id, name, _singular_extract_timestamp, commit.sha.Full refresh
teamsFields include id, organization_id, _singular_extract_timestamp, description.Full refresh
issue_labelsFields include issue_id, id, _singular_extract_timestamp, color.Incremental
dependabot_alertsFields include repository_id, number, _singular_extract_timestamp, auto_dismissed_at.Incremental
columnsFields include project_id, id, _singular_extract_timestamp, cards_url.Full refresh
releasesFields include repository_id, id, author.id, _singular_extract_timestamp.Full refresh
issue_commentsFields include repository_id, id, issue_url, user.id.Incremental
issue_assigneesFields include issue_id, id, _singular_extract_timestamp, avatar_url.Incremental
commitsFields include repository_id, sha, author.id, committer.id.Full refresh
repositoriesFields include id, organization_id, owner.id, _singular_extract_timestamp.Incremental
pull_requestsFields include _links.comments.href, _links.commits.href, _links.html.href, _links.issue.href.Incremental

Data model at a glance

Preview the exported entities and fields for GitHub.

Open full ERD

repository_labels

  • idstring
  • repository_idstring
  • _singular_extract_timestampstring
  • colorstring
  • descriptionstring
  • namestring
  • node_idstring
  • urlstring

teams

  • idstring
  • organization_idstring
  • _singular_extract_timestampstring
  • descriptionstring
  • html_urlstring
  • members_urlstring
  • namestring
  • node_idstring

+24 more fields

security_cwes

  • security_advisory_idstring
  • _singular_extract_timestampstring
  • patched_versionsstring

commit_files

  • commit_idstring
  • shastring
  • _singular_extract_timestampstring
  • additionsinteger
  • blob_urlstring
  • changesinteger
  • contents_urlstring
  • deletionsinteger

+5 more fields

repository_team

  • idstring
  • repository_idstring
  • _singular_extract_timestampstring
  • descriptionstring
  • html_urlstring
  • members_urlstring
  • namestring
  • node_idstring

+24 more fields

issues

  • repository_idstring
  • idstring
  • assignee.idstring
  • user.idstring
  • _singular_extract_timestampstring
  • assignee.avatar_urlstring
  • assignee.html_urlstring
  • assignee.loginstring

+33 more fields

+23 more

Verified relationships

  • repository_labels.id references teams.id
  • repository_team.id references teams.id

Solid lines show field references; dashed lines show parent–child relationships.

47 additional verified relationships are outside this preview.

Popular destinations

Commonly paired with GitHub in Extract workflows.

Why Extract for GitHub

  • Rust-native performanceUse Rust-native data movement to refresh GitHub reporting every 15 minutes, hourly, daily, or on a custom schedule as volume grows.
  • Full run transparencyInspect GitHub API activity, execution steps, and timing in Extract's run-level logs when data needs review.
  • ELT + Reverse ETL in oneCombine GitHub data with customer and finance models, then send approved outputs through a separately configured Reverse ETL destination.

Frequently asked questions

How does Extract handle incremental and full GitHub syncs?

An incremental sync processes only new or changed data since a stored checkpoint or new date partition, while a full sync processes the complete selected dataset or date range again. By avoiding repeated processing and writes for the full dataset, incremental syncs can reduce destination database updates and warehouse compute costs. Stream schemas define full refresh, incremental changes, partition-based extraction. Behavior varies by stream and configuration. Extract records run details so teams can verify each sync.

Can I backfill historical GitHub data with Extract?

Historical coverage for GitHub: Backfill (Days) (backfill): The backfill setting pulls commits that were updated in the last X days, ensuring the most recent commits are included in the data sync. Use the setup guide and run details to confirm the available source records and selected settings.

How can teams monitor GitHub data quality and freshness?

Compare expected reporting periods and record totals in your models, then use Extract's run-level logs to inspect GitHub API activity, execution steps, and timing. This helps teams distinguish a source-data delay from a failed or incomplete run.

How often can Extract sync data from GitHub?

Extract supports schedules every 15 minutes, hourly, daily, or on a custom cadence. Teams can choose a frequency that matches routine reporting, time-sensitive monitoring, or operational activation needs.

What does the GitHub data model look like in the destination?

The Available streams table describes the datasets Extract can read from GitHub. The inline schema previews entities and fields. Only relationships verified from the exported schema are shown. Use the full schema link for more details.