GitHub

GitHub is a hosting service for software development and version control using Git.

Data integration: Skyvia supports importing data to and from GitHub, exporting GitHub data to CSV files, replicating GitHub data to relational databases, and synchronizing GitHub data with other cloud apps and relational databases.

Backup: Skyvia Backup does not support GitHub.

Query: Skyvia Query supports GitHub.

Establishing Connection

To create a connection to GitHub, sign in to GitHub via OAuth 2.0.

Creating Connection

Connection Editor window

  1. Click Sign In with GitHub in the Connection Editor.

    Signing in to GitHub

  2. In the opened window, enter your GitHub credentials.
  3. Click Authorize SkyviaApp to continue.

    Authorizing access for Skyvia

  4. Enter the Username.

Additional Connection Parameters

Suppress Extended Requests

For some GitHub objects, Skyvia performs additional extended requests. Skyvia performs such API requests for each record of such an object. However, this can decrease performance and significantly increase the number of API calls used.

The additional fields are the following:

OBJECT FIELD
Organizations Name, Company, Blog, Location, Type, Email, TwitterUsername, TotalPrivateRepos, OwnedPrivateRepos, PrivateGists, DiskUsage, Collaborators, IsVerified, HasOrganizationProjects, HasRepositoryProjects, PublicRepos, PublicGists, BillingEmail, Plan_Name, Plan_Space, Plan_PrivateRepos, Plan_FilledSeats, Plan_Seats, DefaultRepositoryPermission, MembersAllowedRepositoryCreationType, MembersCanCreateRepositories, TwoFactorRequirementEnabled, MembersCanCreatePublicRepositories, MembersCanCreatePrivateRepositories, MembersCanCreateInternalRepositories, MembersCanCreatePages, MembersCanForkPrivateRepositories

You can select the Suppress Extended Requests checkbox to reduce the number of API calls.

Connector Specifics

Object Peculiarities

OrganizationMembers

To get data from this object, use filter by the Org field and specify the organization name. The Org field returns empty values when querying. Use this field for filtering only.

Repositories

The Repositories object returns only the user’s repositories specified in the connection settings.

Repositorylabels

The Name field of the Repositorylabels object is its primary key. Together with that, you can update the repository name. When mapping, specify the new name value in the NewName field.

RepositoryMilestones

The RepositoryMilestones object has a composite primary key consisting of the RepositoryName and Number fields. You must map both of these fields when performing UPDATE and DELETE operations.

When you insert records to the RepositoryMilestones object, the RepositoryName field values do not return in the integration run log.

RepositoryContents

Use this object to view the list of files added to a repository in the branch.

To get a list of files from the nested folders, filter by the PathFilter or Path field.

DML Operations Support

Operation Object
INSERT, UPDATE, DELETE Gists, Releases, Repositories, RepositoryIssueComments, RepositoryLabels, RepositoryMilestones, RepositoryProjects, RepositoryPullRequestReviews
INSERT, UPDATE RepositoryIssues, RepositoryPullRequests
UPDATE, DELETE Invitations, RepositoryComments, UserProjects
INSERT ReleaseAssets, RepositoryFork
UPDATE Branches, RepositoryTopics

Incremental Replication and Synchronization

Skyvia supports Replication with Incremental Updates for the Gists, RepositoryIssues, RepositoryIssueComments, Repositories, RepositoryPullRequests, RepositoryMilestones, RepositoryIssueEvents, RepositoryFork, RepositoryComments, UserAuthenticated, UserProjects, Invitations, ReleaseAssets, and RepositoryProjects objects.

Skyvia supports Synchronization for the Gists,RepositoryIssueComments, RepositoryProjects, and UserProjects objects.

Stored Procedures

Skyvia represents part of the supported GitHub features as stored procedures. You can call a stored procedure, for example, as a text of the command in the ExecuteCommand action in a Target component of a Data Flow or in Query.

InsertFile

To insert file, use the command

call InsertFile(:reponame,:path,:message,:content,:branch)

PARAMETER NAME DESCRIPTION
Reponame Repository name
Path Name of the file to be added
Message text of the commit message
Content File body
Branch Default value is main. Branch to add a file into

UpdateFile

To update the file, use the command

call UpdateFile(:reponame,:path,:message,:content,:branch,:sha)

PARAMETER NAME DESCRIPTION
Reponame Repository name
Path Name of the file to be updated
Message Text of the commit message
Content File body
Branch Default value is main. The branch where you update a file
Sha The blob SHA of the file being replaced

Deletefile

To delete the file, use the command

call DeleteFile(:reponame,:path,:message,:branch,:sha)

PARAMETER NAME DESCRIPTION
Reponame Repository name
Path Name of the file to be deleted
Message Text of the commit message
Branch Default value is main. Branch where you delete a file
Sha The blob SHA of the file being deleted

Supported Actions

Skyvia supports all the common actions for GitHub.