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
Use cases
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.
Connector data
Available streams
| Stream | Description | Sync mode |
|---|---|---|
repository_labels | Fields include id, repository_id, _singular_extract_timestamp, color. | Full refresh |
security_cwes | Fields include security_advisory_id, _singular_extract_timestamp, patched_versions. | Incremental |
commit_files | Fields include commit_id, sha, _singular_extract_timestamp, additions. | Full refresh |
repository_team | Fields include id, repository_id, _singular_extract_timestamp, description. | Full refresh |
issues | Fields include repository_id, id, assignee.id, user.id. | Incremental |
milestones | Fields include repository_id, id, creator.id, _singular_extract_timestamp. | Incremental |
pull_request_reviews | Fields include pull_request_id, id, user.id, _links.html.href. | Incremental |
projects | Fields include id, organization_id, _singular_extract_timestamp, body. | Incremental |
deployment_statuses | Fields include deployment_id, id, creator.id, _singular_extract_timestamp. | Full refresh |
cards | Fields include column_id, id, creator.id, _singular_extract_timestamp. | Full refresh |
users | Fields include id, organization_id, _singular_extract_timestamp, avatar_url. | Full refresh |
deployments | Fields include repository_id, id, creator.id, _singular_extract_timestamp. | Full refresh |
pull_request_requested_reviewers | Fields include pull_request_id, _singular_extract_timestamp, avatar_url, email. | Incremental |
pull_request_review_comments | Fields include repository_id, id, _links.html.href, _links.pull_request.href. | Incremental |
assets | Fields include release_id, id, uploader.id, _singular_extract_timestamp. | Full refresh |
team_membership | Fields include team_id, user_id, _singular_extract_timestamp, role. | Full refresh |
security_advisory | Fields include ghsa_id, organization_id, _singular_extract_timestamp, author.avatar_url. | Incremental |
security_vulnerabilities | Fields include security_advisory_id, _singular_extract_timestamp, package.ecosystem, package.name. | Incremental |
branches | Fields include repository_id, name, _singular_extract_timestamp, commit.sha. | Full refresh |
teams | Fields include id, organization_id, _singular_extract_timestamp, description. | Full refresh |
issue_labels | Fields include issue_id, id, _singular_extract_timestamp, color. | Incremental |
dependabot_alerts | Fields include repository_id, number, _singular_extract_timestamp, auto_dismissed_at. | Incremental |
columns | Fields include project_id, id, _singular_extract_timestamp, cards_url. | Full refresh |
releases | Fields include repository_id, id, author.id, _singular_extract_timestamp. | Full refresh |
issue_comments | Fields include repository_id, id, issue_url, user.id. | Incremental |
issue_assignees | Fields include issue_id, id, _singular_extract_timestamp, avatar_url. | Incremental |
commits | Fields include repository_id, sha, author.id, committer.id. | Full refresh |
repositories | Fields include id, organization_id, owner.id, _singular_extract_timestamp. | Incremental |
pull_requests | Fields include _links.comments.href, _links.commits.href, _links.html.href, _links.issue.href. | Incremental |
Schema
Data model at a glance
repository_labels
idstringrepository_idstring_singular_extract_timestampstringcolorstringdescriptionstringnamestringnode_idstringurlstring
teams
idstringorganization_idstring_singular_extract_timestampstringdescriptionstringhtml_urlstringmembers_urlstringnamestringnode_idstring
+24 more fields
security_cwes
security_advisory_idstring_singular_extract_timestampstringpatched_versionsstring
commit_files
commit_idstringshastring_singular_extract_timestampstringadditionsintegerblob_urlstringchangesintegercontents_urlstringdeletionsinteger
+5 more fields
repository_team
idstringrepository_idstring_singular_extract_timestampstringdescriptionstringhtml_urlstringmembers_urlstringnamestringnode_idstring
+24 more fields
issues
repository_idstringidstringassignee.idstringuser.idstring_singular_extract_timestampstringassignee.avatar_urlstringassignee.html_urlstringassignee.loginstring
+33 more fields
Verified relationships
repository_labels.idreferencesteams.idrepository_team.idreferencesteams.id
Solid lines show field references; dashed lines show parent–child relationships.
47 additional verified relationships are outside this preview.
Connector pairings
Popular destinations
Commonly paired with GitHub in Extract workflows.
Why Extract
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.
FAQ
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.