This integration is powered by Singer's GitHub tap and certified by Stitch. Check out and contribute to the repo on GitHub.
For support, contact Stitch support.
GitHub integration summary
Stitch’s GitHub integration replicates data using the GitHub REST API v3. Refer to the Schema section for a list of objects available for replication.
GitHub feature snapshot
A high-level look at Stitch's GitHub (v2) integration, including release status, useful links, and the features supported in Stitch.
STITCH | |||
Release status |
Released on September 29, 2022 |
Supported by | |
Stitch plan |
Standard |
API availability |
Available |
Singer GitHub repository | |||
REPLICATION SETTINGS | |||
Anchor Scheduling |
Supported |
Advanced Scheduling |
Supported |
Table-level reset |
Unsupported |
Configurable Replication Methods |
Unsupported |
DATA SELECTION | |||
Table selection |
Supported |
Column selection |
Supported |
Select all |
Supported |
||
TRANSPARENCY | |||
Extraction Logs |
Supported |
Loading Reports |
Supported |
Connecting GitHub
GitHub setup requirements
To set up GitHub in Stitch, you need:
-
Access to the projects you want to replicate data from. Stitch will only be able to access the same projects as the user who authorizes the connection in Stitch.
Step 1: Add GitHub as a Stitch data source
- Sign into your Stitch account.
-
On the Stitch Dashboard page, click the Add Integration button.
-
Click the GitHub icon.
-
Enter a name for the integration. This is the name that will display on the Stitch Dashboard for the integration; it’ll also be used to create the schema in your destination.
For example, the name “Stitch GitHub” would create a schema called
stitch_github
in the destination. Note: Schema names cannot be changed after you save the integration. - In the Base Url field, enter the GitHub URL to use. This is required only if you are using a custom base URL, such as
https://git.your-company.example.com
. The default value ishttps://github.com
. -
In the GitHub Repository Name field, enter the paths of the repositories you want to track. The path is relative to the base URL. For example: The path for the Stitch Docs repository is
stitchdata/docs
.- To track multiple repositories, enter a space delimited list of the repository paths. For example:
stitchdata/docs stitchdata/docs-about-docs
- To track all repositories in an organization, use
*
to replace the repository name in the path. For example:singer-io/*
- To track multiple repositories, enter a space delimited list of the repository paths. For example:
Step 2: Define the historical replication start date
The Sync Historical Data setting defines the starting date for your GitHub integration. This means that:
- For tables using Key-based Incremental Replication, data equal to or newer than this date will be replicated to your destination.
- For tables using Full Table Replication, all data - including records that are older, equal to, or newer than this date - will be replicated to your destination.
Change this setting if you want to replicate data beyond GitHub’s default setting of 1 year. For a detailed look at historical replication jobs, check out the Syncing Historical SaaS Data guide.
Step 3: Create a replication schedule
In the Replication Frequency section, you’ll create the integration’s replication schedule. An integration’s replication schedule determines how often Stitch runs a replication job, and the time that job begins.
GitHub integrations support the following replication scheduling methods:
-
Advanced Scheduling using Cron (Advanced or Premium plans only)
To keep your row usage low, consider setting the integration to replicate less frequently. See the Understanding and Reducing Your Row Usage guide for tips on reducing your usage.
Step 4: Authorize Stitch to access GitHub
- Once you’ve configured the integration parameters, click Authorize. You will be prompted to grant Stitch access to your GitHub account.
- Sign in to GitHub.
-
If you want to replicate data from private repositories, click Request next to the name of the relevant GitHub organization, then click Request approval from owners. The owners of the repository will then receive an email prompting them to approve or deny the request.
Note: This step is not needed if you only want to access public repositories. Any public repository, even within your work organization, should be available without approval from the owners.
- Click Authorize singer-bot.
Once the authorization process is completed, you will be redirected to Stitch. You will be able to start replicating data from public repositories. The extraction from private repositories will fail until the owner has approved the access request.
Initial and historical replication jobs
After you finish setting up GitHub, its Sync Status may show as Pending on either the Stitch Dashboard or in the Integration Details page.
For a new integration, a Pending status indicates that Stitch is in the process of scheduling the initial replication job for the integration. This may take some time to complete.
Initial replication jobs with Anchor Scheduling
If using Anchor Scheduling, an initial replication job may not kick off immediately. This depends on the selected Replication Frequency and Anchor Time. Refer to the Anchor Scheduling documentation for more information.
Free historical data loads
The first seven days of replication, beginning when data is first replicated, are free. Rows replicated from the new integration during this time won’t count towards your quota. Stitch offers this as a way of testing new integrations, measuring usage, and ensuring historical data volumes don’t quickly consume your quota.
GitHub table reference
Schemas and versioning
Schemas and naming conventions can change from version to version, so we recommend verifying your integration’s version before continuing.
The schema and info displayed below is for version 2 of this integration.
This is the latest version of the GitHub integration.
Table and column names in your destination
Depending on your destination, table and column names may not appear as they are outlined below.
For example: Object names are lowercased in Redshift (CusTomERs
> customers
), while case is maintained in PostgreSQL destinations (CusTomERs
> CusTomERs
). Refer to the Loading Guide for your destination for more info.
assignees
Replication Method : |
Full Table |
Primary Key |
id |
API endpoint : |
The assignees
table contains info about the available assignees for issues in the repositories specified for the integration.
id
The assignee ID. |
login
The user’s username. |
_sdc_repository
|
type
The user’s type. |
url
The profile URL associated with the user. |
name
The user’s name. |
email
The user’s email address. |
node_id
|
avatar_url
|
gravatar_id
|
html_url
|
followers_url
|
following_url
|
gists_url
|
starred_url
|
subscriptions_url
|
organizations_url
|
repos_url
|
events_url
|
received_events_url
|
site_admin
|
starred_at
|
collaborators
Replication Method : |
Full Table |
Primary Key |
id |
API endpoint : |
The collaborators
table contains info about the users who contribute to the repositories specified for the integration.
For organization-owned repositories, this will include outside collaborators, organization owners, organization members that are direct collaborators, who have access through team memberships, or have access through default organization permissions.
id
The collaborator’s ID. Reference: |
|||||
login
The collaborator’s username. |
|||||
_sdc_repository
|
|||||
name
The collaborator’s type. |
|||||
email
The collaborator’s name. |
|||||
type
The collaborator’s email address. |
|||||
url
The profile URL associated with the collaborator. |
|||||
node_id
|
|||||
avatar_url
|
|||||
gravatar_id
|
|||||
html_url
|
|||||
followers_url
|
|||||
following_url
|
|||||
gists_url
|
|||||
starred_url
|
|||||
subscriptions_url
|
|||||
organizations_url
|
|||||
repos_url
|
|||||
events_url
|
|||||
received_events_url
|
|||||
site_admin
|
|||||
permissions
|
|||||
role_name
|
comments
Replication Method : |
Key-based Incremental |
Replication Key |
since |
Primary Key |
id |
API endpoint : |
The comments
table contains info about comments made on issues in the repositories specified for the integration.
id
The comment ID. |
|||||||||||||||||||||||||||||||||||||||||||
author_association
|
|||||||||||||||||||||||||||||||||||||||||||
body
The body of the comment. |
|||||||||||||||||||||||||||||||||||||||||||
body_text
|
|||||||||||||||||||||||||||||||||||||||||||
body_html
|
|||||||||||||||||||||||||||||||||||||||||||
created_at
The time the comment was created. |
|||||||||||||||||||||||||||||||||||||||||||
home_url
The home URL of the comment. |
|||||||||||||||||||||||||||||||||||||||||||
html_url
The HTML URL of the comment. |
|||||||||||||||||||||||||||||||||||||||||||
issue_url
The URL of the issue associated with the comment. |
|||||||||||||||||||||||||||||||||||||||||||
node_id
The node ID. |
|||||||||||||||||||||||||||||||||||||||||||
_sdc_repository
|
|||||||||||||||||||||||||||||||||||||||||||
updated_at
The time the comment was last updated. |
|||||||||||||||||||||||||||||||||||||||||||
url
The GitHub URL of the comment. |
|||||||||||||||||||||||||||||||||||||||||||
user
Details about the user who created the comment.
|
|||||||||||||||||||||||||||||||||||||||||||
performed_via_github_app
|
|||||||||||||||||||||||||||||||||||||||||||
reactions
|
commits
Replication Method : |
Key-based Incremental |
Replication Key |
since |
Primary Key |
sha |
API endpoint : |
The commits
table contains info about repository commits in a project.
_sdc_repository
|
||||||||||||||||||||||||||||
node_id
|
||||||||||||||||||||||||||||
pr_id
|
||||||||||||||||||||||||||||
pr_number
|
||||||||||||||||||||||||||||
id
|
||||||||||||||||||||||||||||
updated_at
|
||||||||||||||||||||||||||||
sha
|
||||||||||||||||||||||||||||
url
|
||||||||||||||||||||||||||||
parents
|
||||||||||||||||||||||||||||
html_url
|
||||||||||||||||||||||||||||
comments_url
|
||||||||||||||||||||||||||||
commit
|
||||||||||||||||||||||||||||
committer
Details about the user who committed the change.
|
||||||||||||||||||||||||||||
author
Details about the author of the commit.
commits (table), author (attribute)
|
commit_comments
Replication Method : |
Key-based Incremental |
Replication Key |
since |
Primary Key |
id |
API endpoint : |
The commit_comments
table contains info about the commit comments in the repositories specified for the integration.
id
The commit comment ID. Reference: |
|||||||||||||||||||||
updated_at
|
|||||||||||||||||||||
body
|
|||||||||||||||||||||
commit_id
Reference: |
|||||||||||||||||||||
created_at
|
|||||||||||||||||||||
html_url
|
|||||||||||||||||||||
line
|
|||||||||||||||||||||
node_id
|
|||||||||||||||||||||
path
|
|||||||||||||||||||||
position
|
|||||||||||||||||||||
url
|
|||||||||||||||||||||
user
Details about the user who created the comment.
|
|||||||||||||||||||||
author_association
|
|||||||||||||||||||||
reactions
|
events
Replication Method : |
Key-based Incremental |
Replication Key |
since |
Primary Key |
id |
API endpoint : |
The events
table contains information about events in the repositories specified for the integration.
id
The event ID. |
|||||||||||||||
actor
Information about the user that triggered an event.
|
|||||||||||||||
created_at
The date the event was created. |
|||||||||||||||
distinct_size
The number of distinct commits in a push. |
|||||||||||||||
head
The SHA of the most recent commit on |
|||||||||||||||
org
Information about the organization.
|
|||||||||||||||
payload
Information about the events payload.
|
|||||||||||||||
public
When a private repository becomes public. |
|||||||||||||||
push_id
The push ID. |
|||||||||||||||
ref
The full |
|||||||||||||||
repo
Information about the repository where the event occurred. |
|||||||||||||||
_sdc_repository
|
|||||||||||||||
size
The number of commits in the push. |
|||||||||||||||
type
The event type. |
issues
Replication Method : |
Key-based Incremental |
Replication Key |
since |
Primary Key |
id |
API endpoint : |
The issues
table contains info about issues in the repositories specified for the integration.
Issues and pull requests
GitHub’s API considers every pull request an issue, but not every issue may be a pull request. Therefore, this table may contain both issues and pull requests.
id
The issue ID. Reference: |
|||||||||||||||||||||||||||||||||||||||||||
_sdc_repository
|
|||||||||||||||||||||||||||||||||||||||||||
assignee
|
|||||||||||||||||||||||||||||||||||||||||||
author_association
|
|||||||||||||||||||||||||||||||||||||||||||
body
|
|||||||||||||||||||||||||||||||||||||||||||
closed_at
|
|||||||||||||||||||||||||||||||||||||||||||
comments
|
|||||||||||||||||||||||||||||||||||||||||||
comments_url
|
|||||||||||||||||||||||||||||||||||||||||||
created_at
|
|||||||||||||||||||||||||||||||||||||||||||
events_url
|
|||||||||||||||||||||||||||||||||||||||||||
html_url
|
|||||||||||||||||||||||||||||||||||||||||||
labels
|
|||||||||||||||||||||||||||||||||||||||||||
labels_url
|
|||||||||||||||||||||||||||||||||||||||||||
locked
|
|||||||||||||||||||||||||||||||||||||||||||
node_id
|
|||||||||||||||||||||||||||||||||||||||||||
number
|
|||||||||||||||||||||||||||||||||||||||||||
pull_request
|
|||||||||||||||||||||||||||||||||||||||||||
repository_url
|
|||||||||||||||||||||||||||||||||||||||||||
state
|
|||||||||||||||||||||||||||||||||||||||||||
state_reason
|
|||||||||||||||||||||||||||||||||||||||||||
title
|
|||||||||||||||||||||||||||||||||||||||||||
updated_at
The last time the issue was updated. |
|||||||||||||||||||||||||||||||||||||||||||
url
|
|||||||||||||||||||||||||||||||||||||||||||
user
|
|||||||||||||||||||||||||||||||||||||||||||
assignees
|
|||||||||||||||||||||||||||||||||||||||||||
milestone
|
|||||||||||||||||||||||||||||||||||||||||||
reactions
|
|||||||||||||||||||||||||||||||||||||||||||
active_lock_reason
|
|||||||||||||||||||||||||||||||||||||||||||
body_html
|
|||||||||||||||||||||||||||||||||||||||||||
performed_via_github_app
|
|||||||||||||||||||||||||||||||||||||||||||
timeline_url
|
|||||||||||||||||||||||||||||||||||||||||||
closed_by
|
|||||||||||||||||||||||||||||||||||||||||||
body_text
|
|||||||||||||||||||||||||||||||||||||||||||
draft
|
issue_events
Replication Method : |
Key-based Incremental |
Replication Key |
since |
Primary Key |
id |
API endpoint : |
The issue_events
table contains info about issue events in the repositories specified for the integration.
id
The issue event ID. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
_sdc_repository
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
actor
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
assignee
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
assigner
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
commit_id
Reference: |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
commit_url
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
created_at
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
event
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
issue
|