This integration is powered by Singer's GitHub tap. For support, visit the GitHub repo or join the Singer Slack.
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 (v1) integration, including release status, useful links, and the features supported in Stitch.
STITCH | |||
Release status |
Deprecated on September 29, 2022 |
Supported by | |
Stitch plan |
Standard |
API availability |
Not 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 GitHub Repository Name field, enter the paths of the repositories you want to track. The path is relative to
https://github.com
. For example: The path for the Stitch Docs repository isstitchdata/docs
To track multiple repositories, enter a space delimited list of the repository paths. For example:
stitchdata/docs stitchdata/docs-about-docs
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 1 of this 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. |
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
|
type
The collaborator’s type. |
url
The profile URL associated with the collaborator. |
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. |
||||||||||||||||||
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.
|
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.
sha
The git commit hash. |
||||||||||||||
comments_url
The URL to the commit’s comments page. |
||||||||||||||
commit
Details about the commit.
|
||||||||||||||
files
|
||||||||||||||
html_url
The HTML URL to the commit. |
||||||||||||||
parents
Details about the parent commits.
|
||||||||||||||
_sdc_repository
|
||||||||||||||
url
The URL to the commit. |
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
|
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
|
||||||||||||||||||
title
|
||||||||||||||||||
updated_at
The last time the issue was updated. |
||||||||||||||||||
url
|
||||||||||||||||||
user
|
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
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
label
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
node_id
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
performed_via_github_app
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
rename
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
requested_reviewer
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
review_requester
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
url
|
issue_labels
Replication Method : |
Key-based Incremental |
Replication Key |
since |
Primary Key |
id |
API endpoint : |
The issue_labels
table contains info about issue labels in the repositories specified for the integration.
id
The issue label ID. Reference: |
_sdc_repository
|
color
|
default
|
description
|
name
|
node_id
|
url
|
issue_milestones
Replication Method : |
Key-based Incremental |
Replication Key |
since |
Primary Key |
id |
API endpoint : |
The issue_milestones
table contains info about issue milestones in the repositories specified for the integration.
id
The issue milestone ID. Reference: |
||||||||||||||||||
_sdc_repository
|
||||||||||||||||||
closed_at
|
||||||||||||||||||
closed_issues
|
||||||||||||||||||
created_at
|
||||||||||||||||||
creator
|
||||||||||||||||||
description
|
||||||||||||||||||
due_on
|
||||||||||||||||||
html_url
|
||||||||||||||||||
labels_url
|
||||||||||||||||||
node_id
|
||||||||||||||||||
number
|
||||||||||||||||||
open_issues
|
||||||||||||||||||
state
|
||||||||||||||||||
title
|
||||||||||||||||||
updated_at
|
||||||||||||||||||
url
|
projects
Replication Method : |
Key-based Incremental |
Replication Key |
since |
Primary Key |
id |
API endpoint : |
The projects
table contains info about projects in the repositories specified for the integration.
Note: This table must be selected to replicate the following tables:
id
The project ID. Reference: |
body
|
columns_url
|
created_at
|
creator
|
html_url
|
name
|
node_id
|
number
|
owner_url
|
state
|
updated_at
|
url
|
project_cards
Replication Method : |
Key-based Incremental |
Replication Key |
since |
Primary Key |
id |
API endpoint : | |
Parent table : |
The project_cards
table contains information about project cards in the repositories specified for the integration.
Note: In order to replicate this table, you must also set the projects table to replicate.
id
The project card ID. |
updated_at
The time the card was last updated. |
_sdc_repository
|
archived
Whether or not the card has been archived. |
cards_url
The URL where the cards are located. |
column_url
The column URL. |
content_url
The content URL. |
created_at
The time the card was created. |
creator
Information about the card’s creator. |
name
The name of the card. |
node_id
The card’s node ID. |
note
Notes in the card. |
project_url
The project URL. |
url
The card URL. |
project_columns
Replication Method : |
Key-based Incremental |
Replication Key |
since |
Primary Key |
id |
API endpoint : | |
Parent table : |
The project_columns
table contains info about the columns of projects in the repositories specified for the integration.
Note: In order to replicate this table, you must also set the projects table to replicate.
id
The project column ID. |
_sdc_repository
|
cards_url
|
created_at
|
name
|
node_id
|
project_url
|
updated_at
|
url
|
pr_commits
Replication Method : |
Key-based Incremental |
Replication Key |
since |
Primary Key |
id |
API endpoint : | |
Parent table : |
The pr_commits
table contains info about pull request commits and is a slight variation of the commits
table. This allows you to associate commits to pull requests that are squash merged.
Note: In order to replicate this table, you must also set the pull_requests table to replicate.
id
The commit ID. |
|||||||||||
pr_number
|
|||||||||||
pr_id
The ID of the pull request associated with the commit. Reference: |
|||||||||||
sha
The git commit hash. Reference: |
|||||||||||
comments_url
The URL to the commit’s comments page. |
|||||||||||
commit
Details about the commit.
|
|||||||||||
html_url
The HTML URL to the commit. |
|||||||||||
parents
Details about the parent commits.
|
|||||||||||
url
The URL to the commit. |
pull_requests
Replication Method : |
Key-based Incremental |
Replication Key |
since |
Primary Key |
id |
API endpoint : |
The pull_requests
table contains info about pull requests made against the repositories specified for the integration.
Note: This table must be selected to replicate the following tables:
id
The pull request ID. Reference: |
|||||||
_sdc_repository
|
|||||||
base
Details about the base branch.
|
|||||||
body
The description of the pull request. |
|||||||
closed_at
The time the pull request was closed. |
|||||||
created_at
The time the pull request was created. |
|||||||
labels
|
|||||||
merged_at
The time the pull request was merged. |
|||||||
number
The number of the pull request in the repository. |
|||||||
state
The current status of the pull request. For example: |
|||||||
title
The title of the pull request. |
|||||||
updated_at
The last time the pull request was updated. |
|||||||
url
The URL to the pull request. |
|||||||
user
Details about the user who created the pull request.
|
releases
Replication Method : |
Full Table |
Primary Key |
id |
API endpoint : |
The releases
table contains info about releases in the repositories specified for the integration.
Note: GitHub doesn’t include regular Git tags that haven’t been associated with a release.
id
The release ID. |
_sdc_repository
|
author
Details about the author of the release.
releases (table), author (attribute)
|
body
The text describing the tag. |
created_at
The date the release was created. |
draft
If |
html_url
The HTML URL to the release. |
name
The name of the release. |
prerelease
If |
published_at
The date the release was published. |
tag_name
The name of the tag. |
target_commitish
The commitish value that determines where the Git tag was created. |
url
The URL to the release. |
reviews
Replication Method : |
Key-based Incremental |
Replication Key |
since |
Primary Key |
id |
API endpoint : | |
Parent table : |
The reviews
table contains info about pull request reviews in the repositories specified for the integration. A pull request review is a group of comments on a pull request.
Note: In order to replicate this table, you must also set the pull_requests table to replicate.
id
The review ID. |
||
body
The description of the review. |
||
commit_id
The ID of the commit the review was performed on. Reference: |
||
html_url
The HTML URL to the review. |
||
pull_request_url
The URL to the pull request being reviewed. |
||
state
The state of the review. Possible values are:
|
||
submitted_at
|
||
user
Details about the user who submitted the review.
|
review_comments
Replication Method : |
Key-based Incremental |
Replication Key |
since |
Primary Key |
id |
API endpoint : | |
Parent table : |
The review_comments
table contains info about comments made on pull request reviews in the repositories specified for the integration.
Note: In order to replicate this table, you must also set the pull_requests table to replicate.
id
The review comment ID. |
||
updated_at
The time the review comment was last updated. |
||
assignee
|
||
assignees
|
||
author_association
|
||
base
|
||
body
The body of the review comment. |
||
comments_url
|
||
commit_id
The ID of the commit the review comment is associated with. Reference: |
||
commits_url
|
||
created_at
The time the review comment was created. |
||
diff_hunk
|
||
diff_url
The diff URL associated with the review comment. |
||
head
|
||
html_url
The HTML URL of the review comment. |
||
in_reply_to_id
If the review comment is a reply to another review comment, this will be the ID of the review comment it is in response to. Reference: |
||
issue_url
The URL of the issue associated with the review comment. |
||
labels
|
||
locked
|
||
merge_commit_sha
|
||
milestone
|
||
node_id
The review comment’s node ID. |
||
original_commit_id
The ID of the original comment the review comment is associated with. Reference: |
||
original_position
The original position of the review comment. |
||
patch_url
|
||
path
The path of the file the review comment was made on. |
||
position
The position of the review comment. |
||
pull_request_review_id
The ID of the pull request review the comment is a part of. Reference: |
||
pull_request_url
The URL of the pull request associated with the review comment. |
||
requested_reviewers
|
||
requested_teams
|
||
review_comment_url
|
||
review_comments_url
|
||
statuses_url
|
||
url
The GitHub URL of the review comment. |
||
user
Details about the user who created the review comment.
|
stargazers
Replication Method : |
Key-based Incremental |
Replication Key |
since |
Primary Key |
user_id |
API endpoint : |
The stargazers
table contains info about users who have starred the repositories specified for the integration.
user_id
The user ID. |
_sdc_repository
|
starred_at
The time the user starred the repository. |
user
Details about the user who starred the repository. |
Replication Method : |
Key-based Incremental |
Replication Key |
since |
Primary Key |
id |
API endpoint : |
The teams
table contains info about the teams in an organization. Only teams that are visible to the user who authorized the integration in Stitch will be replicated.
Note: This table must be selected to replicate the following tables:
id
The team ID. Reference: |
_sdc_repository
|
description
|
html_url
|
members_url
|
name
|
node_id
|
parent
|
permission
|
privacy
|
repositories_url
|
slug
|
url
|
team_members
Replication Method : |
Key-based Incremental |
Replication Key |
since |
Primary Key |
id |
API endpoint : | |
Parent table : |
The team_members
table contains info about members of organization teams that are visible to the user who authorized the integration.
Note: In order to replicate this table, you must also set the teams table to replicate.
id
The team member’s ID. Reference: |
_sdc_repository
|
avatar_url
|
events_url
|
followers_url
|
following_url
|
gists_url
|
gravatar_id
|
html_url
|
login
|
node_id
|
organizations_url
|
received_events_url
|
repos_url
|
site_admin
|
starred_url
|
subscriptions_url
|
type
|
url
|
team_memberships
Replication Method : |
Key-based Incremental |
Replication Key |
since |
Primary Key |
url |
API endpoint : | |
Parent table : |
The team_memberships
table contains info about membership of users in of organization teams that are visible to the user who authorized the integration.
Note: In order to replicate this table, you must also set the teams table to replicate.
url
|
_sdc_repository
|
role
|