DatriseAI-first ETL

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.

Incremental syncSchema-aware mapping43 destinations available

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.

ObjectLanding tableSync mode
repositoriesgithub_repositoriesUpsert by primary key, incremental on updated-at
issuesgithub_issuesUpsert by primary key, incremental on updated-at
pull requestsgithub_pull_requestsUpsert by primary key, incremental on updated-at
commitsgithub_commitsUpsert by primary key, incremental on updated-at
workflow runsgithub_workflow_runsAppend-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.

APIGitHub REST API (version `2022-11-28`) + GitHub GraphQL API v4
AuthenticationOAuth 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.
Paginationlink_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 limitREST: 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 cursorupdated_at (returned on issues, pull requests, and most list endpoints; usable as a `since` query parameter on several REST list endpoints)
WebhooksYes — GitHub Webhooks (repository, organization, and GitHub App webhooks; payloads signed with HMAC-SHA256 in `X-Hub-Signature-256`)
Bulk exportNo
Deletes detectableYes — 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.

Official API reference

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`.

Compare this against every other documented API

Popular destinations for GitHub

Choose a destination below to open the ready pipeline page.

  • A
    Airtable

    Relational spreadsheet destination for ops and go-to-market teams.

    View pipeline
  • A
    Amazon Athena

    Serverless SQL over S3 data lake tables.

    View pipeline
  • A
    Amazon DynamoDB

    Serverless key-value and document store on AWS.

    View pipeline
  • A
    Amazon QuickSight

    AWS serverless BI with SPICE and embedded analytics.

    View pipeline
  • A
    Amazon Redshift

    AWS petabyte-scale warehouse with Spectrum.

    View pipeline
  • A
    Amazon S3 Data Lake

    Object storage landing zone for parquet and snapshots.

    View pipeline
  • A
    Apache Superset

    Open-source BI for SQL exploration, charts, and dashboard publishing.

    View pipeline
  • A
    Azure Data Lake Storage

    ADLS Gen2 object storage for analytics workloads.

    View pipeline
  • A
    Azure 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.