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.
GitHub-Specific Features and Limitations
Skyvia has the following limitations for GitHub:
In the Data Integration product, GitHub connections are supported only for packages, which use a new data integration runtime.
Make sure that the Use new runtime checkbox is selected on the tab bar if you want to use GitHub in your package.
- Skyvia supports DML operations for such GitHub objects:
- INSERT, UPDATE, DELETE: Releases, Repositories, RepositoryIssueComments, RepositoryLabels, RepositoryMilestones, RepositoryProjects.
- INSERT, UPDATE: RepositoryIssues.
- UPDATE, DELETE: Invitations, RepositoryComments, UserProjects.
- INSERT: ReleaseAssets, RepositoryFork.
- UPDATE: RepositoryTopics.
- Skyvia supports Replication with Incremental Updates for the RepositoryIssues, RepositoryIssueComments, Repositories, RepositoryPullRequests, RepositoryMilestones, RepositoryIssueEvents, RepositoryFork, RepositoryComments, UserAuthenticated, UserProjects, Invitations, ReleaseAssets, and RepositoryProjects objects.
- Skyvia supports Synchronization for the RepositoryIssueComments, RepositoryProjects, and UserProjects object only.
- The Repositories object returns only repositories of the user, specified in the connection settings.
- The Name field of the Repositorylabels object is its primary key. You need to map this field when performing UPDATE or DELETE operation, and it will be used to find the corresponding record. However, the name of a repository label can be updated. You can do it by specifying the new value via the NewName field.
- 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. They will be used to find the corresponding records.
- When performing the INSERT operation against the RepositoryMilestones object, the RepositoryName is not returned, and thus, it will have empty values in the log.
To create a connection to GitHub, you simply need to sign in to GitHub via OAuth 2.0. The OAuth authentication token is stored on the Skyvia server. Your GitHub account login and password are not stored on the Skyvia server.
- Click +NEW in the top menu.
- Click Connection in the menu on the left to open the Select Connector page.
In the opened pane, click GitHub.
- In the Connection Editor page, in the Untitled field, specify a connection name that will be used to identify the connection.
- Specify your GitHub username in the Username box.
Click Sign In with GitHub.
- In the opened window, enter the email and password used when signing up to GitHub.
Click Authorize SkyviaApp to continue.
- The authentication token is generated. Use the Test Connection button to make sure that the connection is successful and then click Create Connection.
Suppressing Extended Requests
For some objects, GitHub API returns only part of the fields when querying multiple records. In order to query values of additional fields, Skyvia performs additional extended requests. Such API requests can be performed for each record of such object. However, this can decrease performance and significantly increase the number of API calls used.
To reduce the number of API calls, you can select the Suppress Extended Requests checkbox. However, please note that some of the fields in such objects will not be available in Skyvia (will return empty values) even if they have values in GitHub because GitHub API does not return them without extended requests.
Supported Actions and Actions Specifics
GitHub connector supports the following actions:
- Execute Command in Source, Lookup, and Target Data Flow components and in Import and Export tasks in the Advanced mode.
Execute Query in Source Data Flow components and in Import and Export tasks in the Advanced mode.
- Lookup in Lookup Data Flow components.
- Insert in Target Data Flow components.
- Update in Target Data Flow components.
- Delete in Target Data Flow components.