Exclusive: all our customers get a free six-month subscription to a next-gen data and AI learning platform

Explore the GitHub API data model

See how the various GitHub endpoints relate to each other, using our handy Entity Relationship Diagram

Pulling data from the GitHub API is only the first part of your reporting. You also need to understand the relationships between different endpoints - something that APIs typically fail to convey.

At SyncHub, we not only sync your GitHub API endpoints down into a reportable format, we also describe their relationships (e.g. in terms of foreign keys) so that you can quickly get a grasp of your data and how it fits together. This page is intended as technical documentation of these relationships.

Endpoints

Branch

Documentation: https://docs.github.com/en/rest/branches/branches?apiVersion=2022-11-28#list-branches

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
Name string - -
RepositoryRemoteID string - -
InitiatingCommitSHA string Commit → Sha -
Protected boolean - -

Commit

Documentation: https://docs.github.com/en/rest/commits/commits?apiVersion=2022-11-28

Column Type Relates to Notes
RemoteID string -
  • 12 Feb 2024 Although commit lists are downloaded by branch, we can request them individually without the branch identifier. This makes sense, as there is actually a one-many relationship with commits as they get merged between branches
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
RepositoryRemoteID string - -
SHA string - -
CommitDate datetime - -
AuthorLogin string User → Login -
CommitterLogin string User → Login -
CommitMessage string - -

Issue

Documentation: https://docs.github.com/en/rest/issues/issues

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
RepositoryRemoteID string - -
Number long - -
CreatedAt datetime - -
UpdatedAt datetime - -
HtmlUrl string - -
Title string - -
RepositoryUrl string - -
Body string - -
ClosedAt datetime - -
UserLogin string User → Login -
IsPullRequest boolean - -
WhenPullRequestMerged datetime - -
TotalReactions int - -
ThumbsDownReactions int - -
ThumbsUpReactions int - -
HeartReactions int - -
ConfusedReactions int - -
HoorayReactions int - -
LaughReactions int - -
RocketReactions int - -
EyesReactions int - -

IssueComment

Documentation: https://docs.github.com/en/rest/issues/comments#list-issue-comments-for-a-repository

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
NodeID string - -
Body string - -
CreatedAt datetime - -
UpdatedAt datetime - -
AuthorAssociation string - -
IssueRemoteID string Issue → RemoteID -
IssueNumber long Issue → Number -
UserLogin string User → Login -
RepositoryRemoteID string - -

Repository

Documentation: https://docs.github.com/en/rest/repos/repos?apiVersion=2022-11-28

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID int - -
Name string - -
Description string - -
Archived boolean - -
UpdatedAt datetime - -
CreatedAt datetime - -
OwnerLogin string User → Login -

Label

Documentation: https://docs.github.com/en/rest/reference/issues#labels

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
Name string - -
Description string - -
RepositoryRemoteID string - -
Color string - -
Default boolean - -

Team

Documentation: https://docs.github.com/en/rest/teams/teams?apiVersion=2022-11-28

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID long - -
Name string - -
Description string - -
NodeID string - -
Privacy string - -
NotificationSetting string - -
Permission string - -
MembersCount int - -
ReposCount int - -
UpdatedAt datetime - -
CreatedAt datetime - -
Slug string - -

User

Documentation: https://docs.github.com/en/rest/users/users?apiVersion=2022-11-28

Column Type Relates to Notes
RemoteID string - -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ID int - -
Name string - -
Login string - -
UpdatedAt datetime - -
CreatedAt datetime - -
AvatarUrl string - -
Email string - -

ParentCommit

Column Type Relates to Notes
RemoteID string - -
CommitRemoteID string Commit → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
ChildCommitRemoteID string Commit → RemoteID -
ParentCommitRemoteID string Commit → RemoteID -

CommitBranch

Column Type Relates to Notes
RemoteID string - -
CommitRemoteID string Commit → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
CommitSHA string Commit → Sha -
BranchName string Branch → Name -

IssueLabel

Column Type Relates to Notes
RemoteID string - -
IssueRemoteID string Issue → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
Name string Label → Name -

IssueAssignee

Column Type Relates to Notes
RemoteID string - -
IssueRemoteID string Issue → RemoteID -
WhenUpsertedIntoDataStore datetime - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
Login string User → Name -

Need more?

SyncHub lives and breathes APIs and data. Keep exploring using the links below.