Source connector
GitHub connector
GitHub integration for databases, warehouses and BI tools
Developer platform for repos, issues, and delivery workflows. Datrise captures GitHub entities such as repositories, issues, pull requests, commits, and workflow runs, then lands normalized and typed models for warehouse reporting, attribution, and AI workflows.
The GitHub REST API (version `2022-11-28`) + GitHub GraphQL API v4 authenticates with OAuth 2.0, personal access token, JWT, incremental runs key on updated_at (returned on issues, pull requests, and most list endpoints; usable as a `since` query parameter on several REST list endpoints), and GitHub caps calls at REST: 5,000 requests/hour per authenticated user (15,000 for GitHub Enterprise Cloud orgs), 60/hour unauthenticated, 1,000/hour per repository for the Actions `GITHUB_TOKEN`; GraphQL: 5,000 points/hour; secondary limits cap at 100 concurrent requests, 900 points/minute for REST or 2,000 points/minute for GraphQL, and 80 content-generating requests/minute.
Of the 5 objects, 4 sync as upserts keyed on the primary key and 1 as append-only streams, so each incremental run moves only what changed since the last watermark. Every object lands in its own table (for example `github_repositories`) with a schema derived from the GitHub API rather than a flattened CSV, in any of the 43 supported destinations.
Datrise is in early access: pick a destination below to open the GitHub pipeline page, and join the waitlist to get the GitHub connector (Product analytics) with guided onboarding.
What GitHub data Datrise extracts
Each object lands in its own typed table. Sync mode is derived from the object: history-style objects append, everything else upserts.
| Object | Landing table | Sync mode |
|---|---|---|
| repositories | github_repositories | Upsert by primary key, incremental on updated-at |
| issues | github_issues | Upsert by primary key, incremental on updated-at |
| pull requests | github_pull_requests | Upsert by primary key, incremental on updated-at |
| commits | github_commits | Upsert by primary key, incremental on updated-at |
| workflow runs | github_workflow_runs | Append-only, incremental by timestamp |
GitHub API: setup facts for the connector
Verified against the vendor documentation on 2026-09-02. Unknown values are left blank rather than guessed.
| API | GitHub REST API (version `2022-11-28`) + GitHub GraphQL API v4 |
|---|---|
| Authentication | OAuth 2.0, personal access token, JWT — Personal Access Tokens or OAuth App tokens authenticate as a user; GitHub Apps authenticate installation calls with a short-lived JWT exchanged for an installation access token. |
| Pagination | link_header — REST list endpoints paginate via the `Link` response header (`rel="next"`) plus a `per_page` parameter; GraphQL uses cursor-based `first`/`after` connections instead. |
| Rate limit | REST: 5,000 requests/hour per authenticated user (15,000 for GitHub Enterprise Cloud orgs), 60/hour unauthenticated, 1,000/hour per repository for the Actions `GITHUB_TOKEN`; GraphQL: 5,000 points/hour; secondary limits cap at 100 concurrent requests, 900 points/minute for REST or 2,000 points/minute for GraphQL, and 80 content-generating requests/minute |
| Incremental cursor | updated_at (returned on issues, pull requests, and most list endpoints; usable as a `since` query parameter on several REST list endpoints) |
| Webhooks | Yes — GitHub Webhooks (repository, organization, and GitHub App webhooks; payloads signed with HMAC-SHA256 in `X-Hub-Signature-256`) |
| Bulk export | No |
| Deletes detectable | Yes — A deleted issue/PR returns HTTP `410 Gone` (or `404` if you lack access) on re-fetch, and the `issues` webhook fires a `deleted` action; there is no bulk deleted-records feed. |
What bites when replicating GitHub
- REST and GraphQL secondary limits are shared: no more than 100 concurrent requests across both APIs, plus a 900-points/minute REST ceiling (`GET`=1pt, mutating verbs=5pt) and a separate 2,000-points/minute GraphQL ceiling.
- GraphQL also enforces a 500,000-node cap per call and requires a `first`/`last` argument between 1 and 100 on every connection, so deeply nested queries (repo -> issues -> comments) can hit the node limit before the points limit.
- The Actions `GITHUB_TOKEN` is capped at 1,000 requests/hour per repository, far below the 5,000/hour personal-token limit, which silently throttles CI-driven extraction jobs.
- REST pagination must follow the `Link: rel="next"` header rather than incrementing a `page` parameter yourself, since some endpoints (e.g. `/events`) cap total pages regardless of `per_page`.
Popular destinations for GitHub
Choose a destination below to open the ready pipeline page.
- AAirtable
Relational spreadsheet destination for ops and go-to-market teams.
View pipeline - AAmazon Athena
Serverless SQL over S3 data lake tables.
View pipeline - AAmazon DynamoDB
Serverless key-value and document store on AWS.
View pipeline - AAmazon QuickSight
AWS serverless BI with SPICE and embedded analytics.
View pipeline - AAmazon Redshift
AWS petabyte-scale warehouse with Spectrum.
View pipeline - AAmazon S3 Data Lake
Object storage landing zone for parquet and snapshots.
View pipeline - AApache Superset
Open-source BI for SQL exploration, charts, and dashboard publishing.
View pipeline - AAzure Data Lake Storage
ADLS Gen2 object storage for analytics workloads.
View pipeline - AAzure Synapse
Microsoft analytics workspace with SQL pools.
View pipeline
GitHub connector FAQ
- What GitHub data does the connector extract?
- 5 objects: repositories, issues, pull requests, commits and workflow runs. Each lands in its own table with types preserved; history-style objects (1: workflow runs) load as append-only streams.
- Is the GitHub integration incremental?
- Yes. After the initial full load, every run reads only records changed since the last watermark (updated-at or event timestamp) and applies an upsert or an append depending on the object.
- Where can I load GitHub data?
- Into 43 destinations: relational databases, cloud warehouses, data lakes, spreadsheets and BI tools. Each GitHub → destination pair has its own page with the object-to-table mapping.
Related Product analytics sources
Other sources in the same category, each with its own connector page.
Early access
Launch your GitHub pipeline with guided onboarding
Join the waitlist to get priority access for GitHub integrations with guided setup, schema-aware mapping, and production-grade incremental sync.