The CData Sync App provides a straightforward way to continuously pipeline your GitHub data to any database, data lake, or data warehouse, making it easily available for Analytics, Reporting, AI, and Machine Learning.
The GitHub connector can be used from the CData Sync application to pull data from GitHub and move it to any of the supported destinations.
Create a connection to GitHub by navigating to the Connections page in the Sync App application and selecting the corresponding icon in the Add Connections panel. If the GitHub icon is not available, click the Add More icon to download and install the GitHub connector from the CData site.
Required properties are listed under the Settings tab. The Advanced tab lists connection properties that are not typically required.
When connecting via a Web application, you need to register a custom OAuth application with GitHub. You can then use the Sync App to get and manage the OAuth token values. See Creating a Custom OAuth App for more information.
Get an OAuth Access Token
Set the following connection properties to obtain the OAuthAccessToken:
Then call stored procedures to complete the OAuth exchange:
After you have obtained the access and refresh tokens, you can connect to data and refresh the OAuth access token automatically.
Automatic Refresh of the OAuth Access Token
To have the Sync App automatically refresh the OAuth access token, set the following on the first data connection.
On subsequent data connections, set the following:
This section details a selection of advanced features of the GitHub Sync App.
The Sync App allows you to define virtual tables, called user defined views, whose contents are decided by a pre-configured query. These views are useful when you cannot directly control queries being issued to the drivers. See User Defined Views for an overview of creating and configuring custom views.
Use SSL Configuration to adjust how Sync App handles TLS/SSL certificate negotiations. You can choose from various certificate formats; see the SSLServerCert property under "Connection String Options" for more information.
Configure the Sync App for compliance with Firewall and Proxy, including Windows proxies and HTTP proxies. You can also set up tunnel connections.
The Sync App offloads as much of the SELECT statement processing as possible to GitHub and then processes the rest of the query in memory (client-side).
See Query Processing for more information.
See Logging for an overview of configuration settings that can be used to refine CData logging. For basic logging, you only need to set two connection properties, but there are numerous features that support more refined logging, where you can select subsets of information to be logged using the LogModules connection property.
By default, the Sync App attempts to negotiate SSL/TLS by checking the server's certificate against the system's trusted certificate store.
To specify another certificate, see the SSLServerCert property for the available formats to do so.
To connect through the Windows system proxy, you do not need to set any additional connection properties. To connect to other proxies, set ProxyAutoDetect to false.
In addition, to authenticate to an HTTP proxy, set ProxyAuthScheme, ProxyUser, and ProxyPassword, in addition to ProxyServer and ProxyPort.
Set the following properties:
The CData Sync App models entities in the GitHub API as views and stored procedures. These are defined in schema files, which are simple, text-based configuration files.
API limitations and requirements are documented in this section. You can use the SupportEnhancedSQL feature, set by default, to circumvent most of these limitations.
Views describes the available views. Views are statically defined to model Repositories, Commits, Projects, and more.
Stored Procedures are function-like interfaces to the data source. They can be used to search, update, and modify information in the data source.
Views are composed of columns and pseudo columns. Views are similar to tables in the way that data is represented; however, views do not support updates. Entities that are represented as views are typically read-only entities. Often, a stored procedure is available to update the data if such functionality is applicable to the data source.
Queries can be executed against a view as if it were a normal table, and the data that comes back is similar in that regard.
Dynamic views, such as queries exposed as views, and views for looking up specific combinations of project_team work items are supported.
Name | Description |
Branches | Lists information about branches in a repository. |
CommitComments | Lists information about comments which were made on a specific commit. |
Commits | Lists information about commits done in a repository . |
Forks | Lists information about forks of a repository. |
IssueComments | Lists information about comments which were made on a specific issue. |
Issues | Lists all project issues. |
Labels | Lists information about the different labels you can apply on an issue. |
LicenseConditions | The conditions set by the license. |
LicenseLimitations | The limitations set by the license. |
LicensePermissions | The permissions set by the license. |
Licenses | Lists the open source licenses. |
Milestones | Lists information about milestones in a repository. |
Organizations | Lists information about about the organizations of the logged in user. |
ProjectColumns | Lists information about project columns. |
Projects | Lists information about projects. |
PullRequestReviews | Lists information about pull request reviews in a repository. |
PullRequests | Lists information about pull requests in a repository. |
ReleaseAssets | List of releases assets which are dependent on a release. |
Releases | Lists information about the different releases of a repository. |
Repositories | Lists information about a user's repository. |
Topics | A list of applied repository-topic associations for this repository. |
Users | Lists information about GitHub users. |
Watchers | A list of users watching the repository. |
Lists information about branches in a repository.
You must specify the UserLogin when executing a SELECT query against this view. You can specify the values in the WHERE clause or as connection properties. A value specified in the WHERE clause takes precedence over the connection property.
If you do not specify a UserLogin value, the Sync App will use the login name of the authenticated user.
The Sync App uses the GitHub API to restrict results to the specified UserLogin and RepositoryName values.
The Sync App processes other filters client-side within the Sync App. You can turn off the client-side execution of the query by setting SupportEnhancedSQL to false in which case any search criteria that refer to other columns will cause an error.
SELECT * FROM Branches WHERE UserLogin = 'MyUser' AND RepositoryName = 'MyRepo'
Name | Type | OrderBySupport | Description |
Id [KEY] | String | The ID of the branch. | |
UserLogin | String | The login name of the user. | |
RepositoryName | String | The name of the repository. | |
Name | String | The branch name. | |
Prefix | String | The branch prefix. |
Lists information about comments which were made on a specific commit.
You must specify the UserLogin when executing a SELECT query against this view. You can specify the values in the WHERE clause or as connection properties. A value specified in the WHERE clause takes precedence over the connection property.
If you do not specify a UserLogin value, the Sync App will use the login name of the authenticated user.
The Sync App uses the GitHub API to restrict results to the specified UserLogin and RepositoryName values.
The Sync App processes other filters client-side within the Sync App. You can turn off the client-side execution of the query by setting SupportEnhancedSQL to false in which case any search criteria that refer to other columns will cause an error.
SELECT * FROM CommitComments WHERE UserLogin = 'MyUser' AND RepositoryName = 'MyRepo'
Name | Type | OrderBySupport | Description |
Id [KEY] | String | The ID of the commit comment. | |
UserLogin | String | The login name of the user. | |
RepositoryName | String | The name of the repository. | |
CommitId | String | Identifies the commit associated with the comment, if the commit exists. | |
Author | String | The username of the actor who authored the comment. | |
AuthorAssociation | String | Author's association with the subject of the comment. | |
Body | String | Identifies the comment body. | |
BodyHTML | String | The body rendered to HTML. | |
BodyText | String | The body rendered to text. | |
CreatedAt | Datetime | Identifies the date and time when the object was created. | |
CreatedViaEmail | Boolean | Check if this comment was created via an email reply. | |
Editor | String | The username of the actor who edited the comment. | |
IncludesCreatedEdit | Boolean | Check if this comment was edited and includes an edit with the creation data. | |
IsMinimized | Boolean | Returns whether or not a comment has been minimized. | |
LastEditedAt | Datetime | The moment the editor made the last edit. | |
MinimizedReason | String | Returns why the comment was minimized. | |
Path | String | Identifies the file path associated with the comment. | |
Position | Int | Identifies the line position associated with the comment. | |
PublishedAt | Datetime | Identifies when the comment was published at. | |
ResourcePath | String | The HTTP path permalink for this commit comment. | |
UpdatedAt | Datetime | Identifies the date and time when the object was last updated. | |
Url | String | The HTTP URL permalink for this commit comment. | |
ViewerCanDelete | Boolean | Check if the current viewer can delete this object. | |
ViewerCanMinimize | Boolean | Check if the current viewer can minimize this object. | |
ViewerCanReact | Boolean | Can user react to this subject. | |
ViewerCanUpdate | Boolean | Check if the current viewer can update this object. | |
ViewerDidAuthor | Boolean | Did the viewer author this comment. |
Lists information about commits done in a repository .
You must specify the UserLogin when executing a SELECT query against this view. You can specify the values in the WHERE clause or as connection properties. A value specified in the WHERE clause takes precedence over the connection property.
If you do not specify a UserLogin value, the Sync App will use the login name of the authenticated user.
The Sync App uses the GitHub API to restrict results to the specified UserLogin and RepositoryName values.
The Sync App processes other filters client-side within the Sync App. You can turn off the client-side execution of the query by setting SupportEnhancedSQL to false in which case any search criteria that refer to other columns will cause an error.
SELECT * FROM Commits WHERE RepositoryName = 'MyRepo' SELECT * FROM Commits WHERE UserLogin = 'MyUser' AND RepositoryName = 'MyRepo' SELECT * FROM Commits WHERE BranchName = 'master' SELECT * FROM Commits WHERE RepositoryName = 'MyRepo' AND CommittedDate >= '2017-12-18 09:02:22.0' AND CommittedDate <= '2018-01-11 15:00:08.0'
Name | Type | OrderBySupport | Description |
Id [KEY] | String | The ID of the commit. | |
UserLogin | String | The login name of the user. | |
RepositoryName | String | The name of the repository. | |
BranchName [KEY] | String | The name of the branch. | |
Additions | Int | The number of additions in this commit. | |
AuthorEmail | String | The email of the commit author. | |
AuthorUserLogin | String | The GitHub user corresponding to the email field. Null if no such user exists. | |
AuthoredByCommitter | Boolean | Check if the committer and the author match. | |
AuthoredDate | Datetime | The datetime when this commit was authored. | |
CommitResourcePath | String | The HTTP path for this Git object. | |
CommitUrl | String | The HTTP URL for this Git object. | |
CommittedDate | Datetime | The datetime when this commit was committed. | |
CommittedViaWeb | Boolean | Check if committed via GitHub web UI. | |
CommitterEmail | String | The email of the committer. | |
CommitterUserLogin | String | The GitHub user corresponding to the email field. Null if no such user exists. | |
Deletions | Int | The number of deletions in this commit. | |
Message | String | The Git commit message. | |
MessageBody | String | The Git commit message body. | |
MessageBodyHTML | String | The commit message body rendered to HTML. | |
MessageHeadline | String | The Git commit message headline. | |
MessageHeadlineHTML | String | The commit message headline rendered to HTML. | |
OnBehalfOf | String | The organization's login name this commit was made on behalf of. | |
PushedDate | Datetime | The datetime when this commit was pushed. | |
ResourcePath | String | The HTTP path for this commit. | |
Signature | String | ASCII-armored signature header from object. | |
SignatureEmail | String | Email used to sign this object. | |
SignatureIsValid | Boolean | True if the signature is valid and verified by GitHub. | |
SignaturePayload | String | Payload for GPG signing object. Raw ODB object without the signature header. | |
SignatureSigner | String | GitHub user's login name corresponding to the email signing this commit. | |
SignatureState | String | The state of this signature. VALID if signature is valid and verified by GitHub, otherwise represents reason why signature is considered invalid. | |
WasSignedByGitHub | Boolean | True if the signature was made with GitHub's signing key. | |
StatusState | String | The combined commit status. | |
StatusCheckRollupState | String | Check and Status rollup combined status state for this commit. | |
TarballUrl | String | Returns a URL to download a tarball archive for a repository. Note: For private repositories, these links are temporary and expire after five minutes. | |
TreeResourcePath | String | The HTTP path for the tree of this commit. | |
TreeUrl | String | The HTTP URL for the tree of this commit. | |
Url | String | The HTTP URL for this commit. | |
ViewerCanSubscribe | Boolean | Check if the viewer is able to change their subscription status for the repository. | |
ViewerSubscription | String | Identifies if the viewer is watching, not watching, or ignoring the subscribable entity. | |
ZipballUrl | String | Returns a URL to download a zipball archive for a repository. Note: For private repositories, these links are temporary and expire after five minutes. |
Lists information about forks of a repository.
You must specify the UserLogin when executing a SELECT query against this view. You can specify the values in the WHERE clause or as connection properties. A value specified in the WHERE clause takes precedence over the connection property.
If you do not specify a UserLogin value, the Sync App will use the login name of the authenticated user.
The Sync App uses the GitHub API to restrict results to the specified UserLogin and RepositoryName values.
The Sync App processes other filters client-side within the Sync App. You can turn off the client-side execution of the query by setting SupportEnhancedSQL to false in which case any search criteria that refer to other columns will cause an error.
SELECT * FROM Forks WHERE IsLocked=true
Name | Type | OrderBySupport | Description |
Id [KEY] | String | The fork ID. | |
UserLogin | String | The login name of the user. | |
RepositoryName | String | The name of the repository. | |
Name | String | True | The name of the fork. |
Description | String | The fork description. | |
DescriptionHTML | String | The fork HTML description. | |
CreatedAt | Datetime | True | The creation date of the fork. |
UpdatedAt | Datetime | True | The date when the fork was last updated. |
PushedAt | Datetime | True | The date the fork was first pushed. |
IsLocked | Boolean | Whether the fork is locked. | |
Url | String | The HTTP URL for this fork. | |
MirrorUrl | String | The mirror URL of the fork. |
Lists information about comments which were made on a specific issue.
You must specify the UserLogin when executing a SELECT query against this view. You can specify the values in the WHERE clause or as connection properties. A value specified in the WHERE clause takes precedence over the connection property.
If you do not specify a UserLogin value, the Sync App will use the login name of the authenticated user.
The Sync App uses the GitHub API to restrict results to the specified UserLogin and RepositoryName values.
The Sync App processes other filters client-side within the Sync App. You can turn off the client-side execution of the query by setting SupportEnhancedSQL to false in which case any search criteria that refer to other columns will cause an error.
SELECT * FROM IssueComments WHERE RepositoryName = 'MyRepo' SELECT * FROM IssueComments WHERE UserLogin = 'MyUser' AND RepositoryName = 'MyRepo' SELECT * FROM IssueComments WHERE IssueNumber = 5 AND RepositoryName = 'MyRepo'
Name | Type | OrderBySupport | Description |
Id [KEY] | String | The issue comment Id. | |
UserLogin | String | The login name of the user. | |
RepositoryName | String | The name of the repository. | |
IssueNumber | Integer | Identifies the issue number associated with the comment. | |
Author | String | The username of the actor who authored the comment. | |
AuthorAssociation | String | Author's association with the subject of the comment. | |
Body | String | The body as Markdown. | |
BodyHTML | String | The body rendered to HTML. | |
BodyText | String | The body rendered to text. | |
CreatedAt | Datetime | Identifies the date and time when the object was created. | |
CreatedViaEmail | Boolean | Check if this comment was created via an email reply. | |
DatabaseId | Int | Identifies the primary key from the database. | |
Editor | String | The username of the actor who edited the comment. | |
IncludesCreatedEdit | Boolean | Check if this comment was edited and includes an edit with the creation data. | |
IsMinimized | Boolean | Returns whether or not a comment has been minimized. | |
LastEditedAt | Datetime | The moment the editor made the last edit. | |
MinimizedReason | String | Returns why the comment was minimized. | |
PublishedAt | Datetime | Identifies when the comment was published at. | |
PullRequestId | String | Returns the Id of the pull request associated with the comment, if this comment was made on a pull request. | |
ResourcePath | String | The HTTP path for this issue comment. | |
UpdatedAt | Datetime | Identifies the date and time when the object was last updated. | |
Url | String | The HTTP URL for this issue comment. | |
ViewerCanDelete | Boolean | Check if the current viewer can delete this object. | |
ViewerCanMinimize | Boolean | Check if the current viewer can minimize this object. | |
ViewerCanReact | Boolean | Can user react to this subject. | |
ViewerCanUpdate | Boolean | Check if the current viewer can update this object. | |
ViewerDidAuthor | Boolean | Did the viewer author this comment. |
Lists all project issues.
You must specify the UserLogin when executing a SELECT query against this view. You can specify the values in the WHERE clause or as connection properties. A value specified in the WHERE clause takes precedence over the connection property.
If you do not specify a UserLogin value, the Sync App will use the login name of the authenticated user.
The Sync App uses the GitHub API to restrict results to the specified UserLogin and RepositoryName values.
The Sync App processes other filters client-side within the Sync App. You can turn off the client-side execution of the query by setting SupportEnhancedSQL to false in which case any search criteria that refer to other columns will cause an error.
SELECT * FROM Issues WHERE UserLogin = 'MyUser' AND RepositoryName = 'MyRepo' SELECT * FROM Issues WHERE RepositoryName = 'test' AND UpdatedAt >= '2018-05-10 11:11:38.0'
Name | Type | OrderBySupport | Description |
Id [KEY] | String | The Issue ID. | |
UserLogin | String | The login name of the user. | |
RepositoryName | String | The name of the repository. | |
ActiveLockReason | String | Reason that the conversation was locked. | |
Author | String | The username of the actor who authored the comment. | |
AuthorAssociation | String | Author's association with the subject of the comment. | |
Body | String | Identifies the body of the issue. | |
BodyHTML | String | The body rendered to HTML. | |
BodyText | String | Identifies the body of the issue rendered to text. | |
Closed | Boolean | True if the object is closed (definition of closed may depend on type). | |
ClosedAt | Datetime | Identifies the date and time when the object was closed. | |
CreatedAt | Datetime | True | Identifies the date and time when the object was created. |
CreatedViaEmail | Boolean | Check if this comment was created via an email reply. | |
DatabaseId | Int | Identifies the primary key from the database. | |
Editor | String | The username of the actor who edited the comment. | |
IncludesCreatedEdit | Boolean | Check if this comment was edited and includes an edit with the creation data. | |
LastEditedAt | Datetime | The moment the editor made the last edit. | |
Locked | Boolean | True if the object is locked. | |
MilestoneId | String | Identifies the milestone associated with the issue. | |
Number | Int | Identifies the issue number. | |
PublishedAt | Datetime | Identifies when the comment was published at. | |
ResourcePath | String | The HTTP path for this issue. | |
State | String | Identifies the state of the issue.
The allowed values are open, closed. | |
Title | String | Identifies the issue title. | |
UpdatedAt | Datetime | True | Identifies the date and time when the object was last updated. |
Url | String | The HTTP URL for this issue. | |
ViewerCanReact | Boolean | Can user react to this subject. | |
ViewerCanSubscribe | Boolean | Check if the viewer is able to change their subscription status for the repository. | |
ViewerCanUpdate | Boolean | Check if the current viewer can update this object. | |
ViewerDidAuthor | Boolean | Did the viewer author this comment. | |
ViewerSubscription | String | Identifies if the viewer is watching, not watching, or ignoring the subscribable entity. |
Pseudo column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.
Name | Type | Description |
Comments | Integer | You can search by the number of comments. |
Interactions | Integer | You can filter issues by the number of interactions. |
Reactions | Integer | You can filter issues by the number of reactions. |
Mentions | String | You can find issues that mention a certain user. |
Assignee | String | You can find find issues and pull requests that are assigned to a certain user. |
Lists information about the different labels you can apply on an issue.
You must specify the UserLogin when executing a SELECT query against this view. You can specify the values in the WHERE clause or as connection properties. A value specified in the WHERE clause takes precedence over the connection property.
If you do not specify a UserLogin value, the Sync App will use the login name of the authenticated user.
The Sync App uses the GitHub API to restrict results to the specified UserLogin and RepositoryName values.
The Sync App processes other filters client-side within the Sync App. You can turn off the client-side execution of the query by setting SupportEnhancedSQL to false in which case any search criteria that refer to other columns will cause an error.
SELECT * FROM Labels WHERE UserLogin = 'MyUser' AND RepositoryName = 'MyRepo' SELECT * FROM Labels WHERE Name = 'duplicate'
Name | Type | OrderBySupport | Description |
Id [KEY] | String | The ID of the label. | |
RepositoryName | String | The name of the repository. | |
UserLogin | String | The login name of the user. | |
Color | String | Identifies the label color. | |
CreatedAt | Datetime | True | Identifies the date and time when the label was created. |
Description | String | A brief description of this label. | |
IsDefault | Boolean | Indicates whether or not this is a default label. | |
Name | String | True | Identifies the label name. |
ResourcePath | String | The HTTP path for this label. | |
UpdatedAt | Datetime | Identifies the date and time when the label was last updated. | |
Url | String | The HTTP URL for this label. |
The conditions set by the license.
You must specify the LicenseKey when executing a SELECT query against this table.
SELECT * FROM LicenseConditions WHERE LicenseKey = 'mit'
Name | Type | OrderBySupport | Description |
Key [KEY] | String | The machine-readable condition key. | |
LicenseKey | String | The lowercased SPDX ID of the license. | |
Description | String | A description of the condition. | |
Label | String | The human-readable condition label. |
The limitations set by the license.
You must specify the LicenseKey when executing a SELECT query against this table.
SELECT * FROM LicenseLimitations WHERE LicenseKey = 'mit'
Name | Type | OrderBySupport | Description |
Key [KEY] | String | The machine-readable limitation key. | |
LicenseKey | String | The lowercased SPDX ID of the license. | |
Description | String | A description of the limitation. | |
Label | String | The human-readable limitation label. |
The permissions set by the license.
You must specify the LicenseKey when executing a SELECT query against this table.
SELECT * FROM LicensePermissions WHERE LicenseKey = 'mit'
Name | Type | OrderBySupport | Description |
Key [KEY] | String | The machine-readable permission key. | |
LicenseKey | String | The lowercased SPDX ID of the license. | |
Description | String | A description of the permission. | |
Label | String | The human-readable permission label. |
Lists the open source licenses.
SELECT * FROM Licenses SELECT * FROM Licenses WHERE Key = 'mit'
Name | Type | OrderBySupport | Description |
Id [KEY] | String | The ID of the license. | |
Key | String | The lowercased SPDX ID of the license. | |
Body | String | The full text of the license. | |
Description | String | A human-readable description of the license. | |
Featured | Boolean | Whether the license should be featured. | |
Hidden | Boolean | Whether the license should be displayed in license pickers. | |
Implementation | String | Instructions on how to implement the license. | |
Name | String | The license full name specified by https://spdx.org/licenses. | |
Nickname | String | Customary short name if applicable (e.g, GPLv3). | |
PseudoLicense | Boolean | Whether the license is a pseudo-license placeholder (e.g., other, no-license). | |
SpdxId | String | Short identifier specified by https://spdx.org/licenses. | |
Url | String | URL to the license on https://choosealicense.com. |
Lists information about milestones in a repository.
You must specify the UserLogin when executing a SELECT query against this view. You can specify the values in the WHERE clause or as connection properties. A value specified in the WHERE clause takes precedence over the connection property.
If you do not specify a UserLogin value, the Sync App will use the login name of the authenticated user.
The Sync App uses the GitHub API to restrict results to the specified UserLogin and RepositoryName values.
The Sync App processes other filters client-side within the Sync App. You can turn off the client-side execution of the query by setting SupportEnhancedSQL to false in which case any search criteria that refer to other columns will cause an error.
SELECT * FROM Milestones WHERE UserLogin = 'MyUser' AND RepositoryName = 'MyRepo' SELECT * FROM Milestones WHERE State = 'all' SELECT * FROM Milestones WHERE Number = 1
Name | Type | OrderBySupport | Description |
Id [KEY] | String | The ID of the milestone. | |
UserLogin | String | The login name of the user. | |
RepositoryName | String | The name of the repository. | |
Closed | Boolean | True if the object is closed (definition of closed may depend on type) | |
ClosedAt | Datetime | Identifies the date and time when the object was closed. | |
CreatedAt | Datetime | True | Identifies the date and time when the object was created. |
Description | String | Identifies the description of the milestone. | |
DueOn | Datetime | True | Identifies the due date of the milestone. |
Number | Integer | True | Identifies the number of the milestone. |
ResourcePath | String | The HTTP path for this milestone. | |
State | String | Identifies the state of the milestone.
The allowed values are OPEN, CLOSED. | |
Title | String | Identifies the title of the milestone. | |
UpdatedAt | Datetime | True | Identifies the date and time when the object was last updated. |
Url | String | The HTTP URL for this milestone. | |
ProgressPercentage | Float | Progress Percentage for this milestone. |
Lists information about about the organizations of the logged in user.
By default this view will only return information about the organizations of the logged in user.
Name | Type | OrderBySupport | Description |
Id [KEY] | String | The id of the organization. | |
AnyPinnableItems | Boolean | Determine if this repository owner has any items that can be pinned to their profile. Arguments type (PinnableItemType) Filter to only a particular kind of pinnable item. | |
AvatarUrl | String | A URL pointing to the organization's public avatar. Arguments size (Int) The size of the resulting square image. | |
CreatedAt | Datetime | Identifies the date and time when the object was created. | |
DatabaseId | Int | Identifies the primary key from the database. | |
Description | String | The organization's public profile description. | |
DescriptionHTML | String | The organization's public profile description rendered to HTML. | |
String | The organization's public email. | ||
IpAllowListEnabledSetting | String | The setting value for whether the organization has an IP allow list enabled. | |
IsVerified | Boolean | Whether the organization has verified its profile email and website. | |
Location | String | The organization's public profile location. | |
Login | String | The organization's login name. | |
Name | String | The organization's public profile name. | |
NewTeamResourcePath | String | The HTTP path creating a new team. | |
NewTeamUrl | String | The HTTP URL creating a new team. | |
OrganizationBillingEmail | String | The billing email for the organization. | |
PinnedItemsRemaining | Int | Returns how many more items this profile owner can pin to their profile. | |
ProjectsResourcePath | String | The HTTP path listing organization's projects. | |
ProjectsUrl | String | The HTTP URL listing organization's projects. | |
RequiresTwoFactorAuthentication | Boolean | When true the organization requires all members, billing managers, and outside collaborators to enable two-factor authentication. | |
ResourcePath | String | The HTTP path for this organization. | |
TeamsResourcePath | String | The HTTP path listing organization's teams. | |
TeamsUrl | String | The HTTP URL listing organization's teams. | |
TwitterUsername | String | The organization's Twitter username. | |
UpdatedAt | Datetime | Identifies the date and time when the object was last updated. | |
Url | String | The HTTP URL for this organization. | |
ViewerCanAdminister | Boolean | Organization is adminable by the viewer. | |
ViewerCanChangePinnedItems | Boolean | Can the viewer pin repositories and gists to the profile? | |
ViewerCanCreateProjects | Boolean | Can the current viewer create new projects on this owner? | |
ViewerCanCreateRepositories | Boolean | Viewer can create repositories on this organization. | |
ViewerCanCreateTeams | Boolean | Viewer can create teams on this organization. | |
ViewerIsAMember | Boolean | Viewer is an active member of this organization. | |
WebsiteUrl | String | The organization's public profile URL. |
Lists information about project columns.
You can specify the ProjectNumber column to list all columns for a specific project.
SELECT * FROM ProjectColumns WHERE RepositoryName = 'test' AND ProjectNumber = '108'
Name | Type | OrderBySupport | Description |
Id [KEY] | String | The project column ID. | |
UserLogin | String | The login name of the user. | |
RepositoryName | String | The name of the repository. | |
ProjectNumber | Integer | The number of the project that contains this column. | |
Name | String | The project column's name. | |
Purpose | String | The semantic purpose of the column. | |
ResourcePath | String | The HTTP path for this project column. | |
UpdatedAt | Datetime | Identifies the date and time when the object was last updated. | |
Url | String | The HTTP URL for this project column |
Lists information about projects.
You must specify the UserLogin when executing a SELECT query against this view. You can specify the values in the WHERE clause or as connection properties. A value specified in the WHERE clause takes precedence over the connection property.
If you do not specify a UserLogin value, the Sync App will use the login name of the authenticated user.
The Sync App uses the GitHub API to restrict results to the specified UserLogin and RepositoryName values.
The Sync App processes other filters client-side within the Sync App. You can turn off the client-side execution of the query by setting SupportEnhancedSQL to false in which case any search criteria that refer to other columns will cause an error.
SELECT * FROM Projects WHERE UserLogin = 'MyUserLogin' AND RepositoryName = 'MyRepo' SELECT * FROM Projects WHERE Number=2 SELECT * FROM Projects WHERE State = 'all'
Name | Type | OrderBySupport | Description |
Id [KEY] | String | The project ID. | |
UserLogin | String | The login name of the user. | |
RepositoryName | String | The name of the repository. | |
Body | String | The project's description body. | |
BodyHTML | String | The projects description body rendered to HTML. | |
Closed | Boolean | true if the object is closed (definition of closed may depend on type). | |
ClosedAt | Datetime | Identifies the date and time when the object was closed. | |
CreatedAt | Datetime | True | Identifies the date and time when the object was created. |
Creator | String | The actor's login name who originally created the project. | |
Name | String | True | The project's name. |
Number | Integer | The project's number. | |
ResourcePath | String | The HTTP path for this project. | |
State | String | Whether the project is open or closed.
The allowed values are OPEN, CLOSED. | |
UpdatedAt | Datetime | True | Identifies the date and time when the object was last updated. |
Url | String | The HTTP URL for this project. | |
ViewerCanUpdate | Boolean | Check if the current viewer can update this object. |
Lists information about pull request reviews in a repository.
You must specify the UserLogin when executing a SELECT query against this view. You can specify the values in the WHERE clause or as connection properties. A value specified in the WHERE clause takes precedence over the connection property.
If you do not specify a UserLogin value, the Sync App will use the login name of the authenticated user.
The Sync App uses the GitHub API to restrict results to the specified UserLogin and RepositoryName values.
The Sync App processes other filters client-side within the Sync App. You can turn off the client-side execution of the query by setting SupportEnhancedSQL to false in which case any search criteria that refer to other columns will cause an error.
SELECT * FROM PullRequestReviews WHERE RepositoryName = 'test' SELECT * FROM PullRequestReviews WHERE RepositoryName = 'test' AND Author = 'testaccount71' SELECT * FROM PullRequestReviews WHERE RepositoryName='test' AND State IN ('PENDING','DISMISSED')
Name | Type | OrderBySupport | Description |
Id [KEY] | String | The ID of the pull request review. | |
UserLogin | String | The login name of the user. | |
RepositoryName | String | The name of the repository. | |
PullRequestNumber | Integer | Identifies the pull request associated with this pull request review. | |
Body | String | Identifies the pull request review body. | |
BodyHTML | String | The body rendered to HTML. | |
BodyText | String | The body of this review rendered as plain text. | |
CreatedAt | Datetime | Identifies the date and time when the object was created. | |
CreatedViaEmail | Boolean | Check if this comment was created via an email reply. | |
IncludesCreatedEdit | Boolean | Check if this comment was edited and includes an edit with the creation data. | |
LastEditedAt | Datetime | The moment the editor made the last edit. | |
PublishedAt | Datetime | Identifies when the comment was published at. | |
Author | String | The actor's username login who authored the comment. | |
ResourcePath | String | The HTTP path permalink for this PullRequestReview. | |
CommitId | String | Identifies the commit associated with this pull request review. | |
State | String | Identifies the current state of the pull request review.
The allowed values are PENDING, COMMENTED, APPROVED, CHANGES_REQUESTED, DISMISSED. | |
SubmittedAt | Datetime | Identifies when the Pull Request Review was submitted. | |
UpdatedAt | Datetime | Identifies the date and time when the object was last updated. | |
Url | String | The HTTP URL permalink for this PullRequestReview. | |
ViewerCanDelete | Boolean | Check if the current viewer can delete this object. | |
ViewerCanReact | Boolean | Can user react to this subject. | |
ViewerCanUpdate | Boolean | Check if the current viewer can update this object. | |
ViewerDidAuthor | Boolean | Did the viewer author this comment. |
Lists information about pull requests in a repository.
You must specify the UserLogin when executing a SELECT query against this view. You can specify the values in the WHERE clause or as connection properties. A value specified in the WHERE clause takes precedence over the connection property.
If you do not specify a UserLogin value, the Sync App will use the login name of the authenticated user.
The Sync App uses the GitHub API to restrict results to the specified UserLogin and RepositoryName values.
The Sync App processes other filters client-side within the Sync App. You can turn off the client-side execution of the query by setting SupportEnhancedSQL to false in which case any search criteria that refer to other columns will cause an error.
SELECT * FROM PullRequests WHERE UserLogin = 'MyUser' AND RepositoryName = 'MyRepo' SELECT * FROM PullRequests WHERE Number = 8 SELECT * FROM PullRequests WHERE State = 'all' SELECT * FROM PullRequests WHERE BaseRefName = 'newbranch' SELECT * FROM PullRequests WHERE HeadRefName = 'master' SELECT * FROM PullRequests WHERE RepositoryName='MyRepo' AND State IN ('OPEN','MERGED')
Name | Type | OrderBySupport | Description |
Id [KEY] | String | The ID of the pull request. | |
UserLogin | String | The login name of the user. | |
RepositoryName | String | The name of the repository. | |
ActiveLockReason | String | Reason that the conversation was locked. | |
Additions | Int | The number of additions in this pull request. | |
Author | String | The actor's login name who authored the comment. | |
AuthorAssociation | String | Author's association with the subject of the comment. | |
BaseRefPrefix | String | Identifies the prefix of the base Ref associated with the pull request. | |
BaseRefName | String | Identifies the name of the base Ref associated with the pull request, even if the ref has been deleted. | |
BaseRefOid | String | Identifies the OID of the base ref associated with the pull request, even if the ref has been deleted. | |
Body | String | The body as Markdown. | |
BodyHTML | String | The body rendered to HTML. | |
BodyText | String | The body rendered to text. | |
ChangedFiles | Int | The number of changed files in this pull request. | |
ChecksResourcePath | String | The HTTP path for the checks of this pull request. | |
ChecksUrl | String | The HTTP URL for the checks of this pull request. | |
Closed | Boolean | true if the pull request is closed. | |
ClosedAt | Datetime | Identifies the date and time when the object was closed. | |
CreatedAt | Datetime | True | Identifies the date and time when the object was created. |
CreatedViaEmail | Boolean | Check if this comment was created via an email reply. | |
DatabaseId | Int | Identifies the primary key from the database. | |
Deletions | Int | The number of deletions in this pull request. | |
Editor | String | The actor's login name who edited this pull request's body. | |
HeadRefPrefix | String | Identifies the prefix of the head Ref associated with the pull request. | |
HeadRefName | String | Identifies the name of the head Ref associated with the pull request, even if the ref has been deleted. | |
HeadRefOid | String | Identifies the OID of the head ref associated with the pull request, even if the ref has been deleted. | |
HeadRepositoryOwner | String | The owner's login name of the repository associated with this pull request's head Ref. | |
IncludesCreatedEdit | Boolean | Check if this comment was edited and includes an edit with the creation data. | |
IsCrossRepository | Boolean | The head and base repositories are different. | |
IsDraft | Boolean | Identifies if the pull request is a draft. | |
LastEditedAt | Datetime | The moment the editor made the last edit. | |
Locked | Boolean | true if the pull request is locked. | |
MaintainerCanModify | Boolean | Indicates whether maintainers can modify the pull request. | |
MergeCommitId | String | The commit ID that was created when this pull request was merged. | |
Mergeable | String | Whether or not the pull request can be merged based on the existence of merge conflicts. | |
Merged | Boolean | Whether or not the pull request was merged. | |
MergedAt | Datetime | The date and time that the pull request was merged. | |
MergedBy | String | The actor's login name who merged the pull request. | |
MilestoneId | String | Identifies the milestone's ID associated with the pull request. | |
Number | Integer | Identifies the pull request number. | |
Permalink | String | The permalink to the pull request. | |
PotentialMergeCommitId | String | The commit ID that GitHub automatically generated to test if this pull request could be merged. This field will not return a value if the pull request is merged, or if the test merge commit is still being generated. See the mergeable field for more details on the mergeability of the pull request. | |
PublishedAt | Datetime | Identifies when the comment was published at. | |
ResourcePath | String | The HTTP path for this pull request. | |
RevertResourcePath | String | The HTTP path for reverting this pull request. | |
RevertUrl | String | The HTTP URL for reverting this pull request. | |
ReviewDecision | String | The current status of this pull request with respect to code review. | |
State | String | Identifies the state of the pull request.
The allowed values are OPEN, CLOSED, MERGED. | |
Title | String | Identifies the pull request title. | |
UpdatedAt | Datetime | True | Identifies the date and time when the object was last updated. |
Url | String | The HTTP URL for this pull request. | |
ViewerCanApplySuggestion | Boolean | Whether or not the viewer can apply suggestion. | |
ViewerCanReact | Boolean | Can user react to this subject. | |
ViewerCanSubscribe | Boolean | Check if the viewer is able to change their subscription status for the repository. | |
ViewerCanUpdate | Boolean | Check if the current viewer can update this object. | |
ViewerDidAuthor | Boolean | Did the viewer author this comment. | |
ViewerSubscription | String | Identifies if the viewer is watching, not watching, or ignoring the subscribable entity. |
List of releases assets which are dependent on a release.
You must specify the UserLogin when executing a SELECT query against this view. You can specify the values in the WHERE clause or as connection properties. A value specified in the WHERE clause takes precedence over the connection property.
If you do not specify a UserLogin value, the Sync App will use the login name of the authenticated user.
The Sync App uses the GitHub API to restrict results to the specified UserLogin and RepositoryName values.
The Sync App processes other filters client-side within the Sync App. You can turn off the client-side execution of the query by setting SupportEnhancedSQL to false in which case any search criteria that refer to other columns will cause an error.
SELECT * FROM ReleaseAssets WHERE RepositoryName = 'test' SELECT * FROM ReleaseAssets WHERE RepositoryName = 'test' AND ReleaseTagName = 'value8888' SELECT * FROM ReleaseAssets WHERE RepositoryName = 'test' AND Name = 'hola21.zip'
Name | Type | OrderBySupport | Description |
Id [KEY] | String | The ID of the asset. | |
UserLogin | String | The login name of the user. | |
RepositoryName | String | The name of the repository. | |
ReleaseTagName | String | The ID of the release that the asset is associated with. | |
ContentType | String | The asset's content-type. | |
CreatedAt | Datetime | Identifies the date and time when the object was created. | |
DownloadCount | Int | The number of times this asset was downloaded. | |
DownloadUrl | String | Identifies the URL where you can download the release asset via the browser. | |
Name | String | Identifies the title of the release asset. | |
Size | Int | The size (in bytes) of the asset. | |
UpdatedAt | Datetime | Identifies the date and time when the object was last updated. | |
UploadedBy | String | The user login name that performed the upload. | |
Url | String | Identifies the URL of the release asset. |
Lists information about the different releases of a repository.
You must specify the UserLogin when executing a SELECT query against this view. You can specify the values in the WHERE clause or as connection properties. A value specified in the WHERE clause takes precedence over the connection property.
If you do not specify a UserLogin value, the Sync App will use the login name of the authenticated user.
The Sync App uses the GitHub API to restrict results to the specified UserLogin value.
The Sync App processes other filters client-side within the Sync App. You can turn off the client-side execution of the query by setting SupportEnhancedSQL to false in which case any search criteria that refer to other columns will cause an error.
SELECT * FROM Releases SELECT * FROM Releases WHERE UserLogin = 'MyUser' AND RepositoryName = 'MyRepo' SELECT * FROM Releases WHERE RepositoryName = 'test' AND TagName = 'value8888'
Name | Type | OrderBySupport | Description |
Id [KEY] | String | The ID of the release. | |
UserLogin | String | The login name of the user. | |
RepositoryName | String | The name of the repository. | |
Author | String | The author's login name of the release. | |
CreatedAt | Datetime | True | Identifies the date and time when the object was created. |
Description | String | The description of the release. | |
DescriptionHTML | String | The description of this release rendered to HTML. | |
IsDraft | Boolean | Whether or not the release is a draft. | |
IsPrerelease | Boolean | Whether or not the release is a prerelease. | |
Name | String | True | The title of the release. |
PublishedAt | Datetime | Identifies the date and time when the release was created. | |
ResourcePath | String | The HTTP path for this issue. | |
ShortDescriptionHTML | String | A description of the release, rendered to HTML without any links in it. Arguments limit (Int) How many characters to return. The default value is 200. | |
TagName | String | The name of the release's Git tag. | |
UpdatedAt | Datetime | Identifies the date and time when the object was last updated. | |
Url | String | The HTTP URL for this issue. |
Lists information about a user's repository.
You must specify the UserLogin when executing a SELECT query against this view. You can specify the values in the WHERE clause or as connection properties. A value specified in the WHERE clause takes precedence over the connection property.
If you do not specify a UserLogin value, the Sync App will use the login name of the authenticated user.
The Sync App uses the GitHub API to restrict results to the specified UserLogin and RepositoryName values.
The Sync App processes other filters client-side within the Sync App. You can turn off the client-side execution of the query by setting SupportEnhancedSQL to false in which case any search criteria that refer to other columns will cause an error.
SELECT * FROM Repositories WHERE UserLogin = 'MyUser' SELECT * FROM Repositories WHERE Name = 'aName'
Name | Type | OrderBySupport | Description |
Id [KEY] | String | The ID of the repository. | |
UserLogin | String | The login name of the user. | |
OwnerLogin | String | The repository's owner username to login. | |
OwnerId | String | The repository's owner ID. | |
Name | String | The name of the repository. | |
Description | String | The description of the repository. | |
Url | String | The HTTP URL for this repository. | |
CreatedAt | Datetime | Identifies the date and time when the object was created. | |
UpdatedAt | Datetime | True | Identifies the date and time when the object was last updated. |
PushedAt | Datetime | Identifies when the repository was last pushed to. | |
DeleteBranchOnMerge | Bool | Whether or not branches are automatically deleted when merged in this repository. | |
DescriptionHTML | String | The description of the repository rendered to HTML. | |
DiskUsage | Integer | The number of kilobytes this repository occupies on disk. | |
ForkCount | Integer | Returns how many forks there are of this repository in the whole network. | |
LicenseKey | String | The key of the license associated with the repository. | |
HasIssuesEnabled | Bool | Indicates if the repository has issues feature enabled. | |
HasProjectsEnabled | Bool | Indicates if the repository has the Projects feature enabled. | |
HasWikiEnabled | Bool | Indicates if the repository has wiki feature enabled. | |
HomepageUrl | String | The repository's URL. | |
IsArchived | Bool | Indicates if the repository is unmaintained. | |
IsDisabled | Bool | Returns whether or not this repository disabled. | |
IsFork | Bool | Identifies if the repository is a fork. | |
IsLocked | Bool | Indicates if the repository has been locked or not. | |
IsMirror | Bool | Identifies if the repository is a mirror. | |
IsPrivate | Bool | Identifies if the repository is private. | |
IsTemplate | Bool | Identifies if the repository is a template that can be used to generate new repositories. | |
MergeCommitAllowed | Bool | Whether or not PRs are merged with a merge commit on this repository. | |
ParentId | String | The repository parent ID, if this is a fork. | |
TemplateRepositoryId | String | The ID of the repository from which this repository was generated, if any. | |
LockReason | String | The reason the repository has been locked.
The allowed values are BILLING, MIGRATING, MOVING, RENAME. | |
MirrorUrl | String | The repository's original mirror URL. | |
OpenGraphImageUrl | String | The image used to represent this repository in Open Graph data. | |
LanguageId | String | The ID of the current primary language. | |
LanguageName | String | The name defined for the current language. | |
LanguageColor | String | The color defined for the current language. | |
ProjectsResourcePath | String | The HTTP path listing the repository's projects. | |
ProjectsUrl | String | The HTTP URL listing the repository's projects. | |
SSHUrl | String | The SSH URL to clone this repository. | |
RebaseMergeAllowed | Bool | Whether or not rebase-merging is enabled on this repository. | |
ResourcePath | String | The HTTP path for this repository. | |
ShortDescriptionHTML | String | A description of the repository, rendered to HTML without any links in it. | |
ViewerPermission | String | The users permission level on the repository. Will return null if authenticated as an GitHub App.
The allowed values are ADMIN, MAINTAIN, READ, TRIAGE, WRITE. | |
ViewerSubscription | String | Identifies if the viewer is watching, not watching, or ignoring the subscribable entity.
The allowed values are IGNORED, SUBSCRIBED, UNSUBSCRIBED. | |
SquashMergeAllowed | Bool | Whether or not squash-merging is enabled on this repository. | |
UsesCustomOpenGraphImage | Bool | Whether this repository has a custom image to use with Open Graph as opposed to being represented by the owner's avatar. | |
ViewerCanAdminister | Bool | Indicates whether the viewer has admin permissions on this repository. | |
ViewerCanCreateProjects | Bool | Can the current viewer create new projects on this owner. | |
ViewerCanSubscribe | Bool | Check if the viewer is able to change their subscription status for the repository. | |
ViewerCanUpdateTopics | Bool | Indicates whether the viewer can update the topics of this repository. | |
ViewerHasStarred | Bool | Returns a boolean indicating whether the viewing user has starred this starrable. |
Pseudo column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.
Name | Type | Description |
Topic | String | You can find all of the repositories that are classified with a particular topic. |
Topics | Integer | You can search repositories by the number of topics that have been applied to them. |
Stars | Integer | You can search repositories based on the number of stars a repository has. |
Followers | Integer | You can filter repositories based on the number of followers that they have. |
Size | Integer | You can filter repositories based on their sizes (in kilobytes). |
A list of applied repository-topic associations for this repository.
You must specify the UserLogin when executing a SELECT query against this view. You can specify the values in the WHERE clause or as connection properties. A value specified in the WHERE clause takes precedence over the connection property.
If you do not specify a UserLogin value, the Sync App will use the login name of the authenticated user.
The Sync App uses the GitHub API to restrict results to the specified UserLogin and RepositoryName values.
The Sync App processes other filters client-side within the Sync App. You can turn off the client-side execution of the query by setting SupportEnhancedSQL to false in which case any search criteria that refer to other columns will cause an error.
SELECT * FROM Topics WHERE UserLogin = 'MyUser' AND RepositoryName = 'MyRepo'
Name | Type | OrderBySupport | Description |
Id [KEY] | String | The id of the topic. | |
UserLogin | String | The login name of the user. | |
RepositoryName | String | The name of the repository. | |
Name | String | The topic's name. | |
ViewerHasStarred | Bool | Returns a boolean indicating whether the viewing user has starred this starrable. | |
URL | String | The HTTP URL for this repository-topic. | |
ResourcePath | String | The HTTP path for this repository-topic. |
Lists information about GitHub users.
By default view will return information about all the registered users in GitHub. Note: This can be quite slow since GitHub has more than 20 million registered users.
If you specify the Login column, this view will only return information about the specified user.
The Sync App uses the GitHub API to process search criteria that refer to UserLogin. The Sync App processes other filters client-side within the Sync App. For example, the following queries are processed server side. You can turn off the client-side execution of the query by setting SupportEnhancedSQL to false in which case any search criteria that refers to other columns will cause an error.
SELECT * FROM Users WHERE Login = 'MyUser'
Name | Type | OrderBySupport | Description |
Id [KEY] | String | The ID of the user. | |
Login | String | The username used to login. | |
AnyPinnableItems | Boolean | Determine if this repository owner has any items that can be pinned to their profile. Arguments type (PinnableItemType) Filter to only a particular kind of pinnable item. | |
AvatarUrl | String | A URL pointing to the user's public avatar. Arguments size (Int) The size of the resulting square image. | |
Bio | String | The user's public profile bio. | |
BioHTML | String | The user's public profile bio as HTML. | |
Company | String | The user's public profile company. | |
CompanyHTML | String | The user's public profile company as HTML. | |
CreatedAt | Datetime | Identifies the date and time when the object was created. | |
DatabaseId | Int | Identifies the primary key from the database. | |
String | The user's publicly visible profile email. | ||
IsBountyHunter | Boolean | Whether or not this user is a participant in the GitHub Security Bug Bounty. | |
IsCampusExpert | Boolean | Whether or not this user is a participant in the GitHub Campus Experts Program. | |
IsDeveloperProgramMember | Boolean | Whether or not this user is a GitHub Developer Program member. | |
IsEmployee | Boolean | Whether or not this user is a GitHub employee. | |
IsHireable | Boolean | Whether or not the user has marked themselves as for hire. | |
IsSiteAdmin | Boolean | Whether or not this user is a site administrator. | |
IsViewer | Boolean | Whether or not this user is the viewing user. | |
Location | String | The user's public profile location. | |
Name | String | The user's public profile name. | |
PinnedItemsRemaining | Int | Returns how many more items this profile owner can pin to their profile. | |
ProjectsResourcePath | String | The HTTP path listing user's projects. | |
ProjectsUrl | String | The HTTP URL listing user's projects. | |
ResourcePath | String | The HTTP path for this user. | |
TwitterUsername | String | The user's Twitter username. | |
UpdatedAt | Datetime | Identifies the date and time when the object was last updated. | |
Url | String | The HTTP URL for this user. | |
ViewerCanChangePinnedItems | Boolean | Can the viewer pin repositories and gists to the profile?. | |
ViewerCanCreateProjects | Boolean | Can the current viewer create new projects on this owner. | |
ViewerCanFollow | Boolean | Whether or not the viewer is able to follow the user. | |
ViewerIsFollowing | Boolean | Whether or not this user is followed by the viewer. | |
WebsiteUrl | String | A URL pointing to the user's public website/blog. |
Pseudo column fields are used in the WHERE clause of SELECT statements and offer a more granular control over the tuples that are returned from the data source.
Name | Type | Description |
Repositories | Integer | You can filter users based on the number of repositories they own. |
Language | String | You can search for users based on the languages of repositories they own. |
Followers | Integer | You can filter users based on the number of followers that they have. |
A list of users watching the repository.
You must specify the UserLogin when executing a SELECT query against this view. You can specify the values in the WHERE clause or as connection properties. A value specified in the WHERE clause takes precedence over the connection property.
If you do not specify a UserLogin value, the Sync App will use the login name of the authenticated user.
The Sync App uses the GitHub API to restrict results to the specified UserLogin and RepositoryName values.
The Sync App processes other filters client-side within the Sync App. You can turn off the client-side execution of the query by setting SupportEnhancedSQL to false in which case any search criteria that refer to other columns will cause an error.
SELECT * FROM Watchers WHERE RepositoryName = 'MyRepo' SELECT * FROM Watchers WHERE UserLogin = 'MyUser' AND RepositoryName = 'MyRepo'
Name | Type | OrderBySupport | Description |
Id [KEY] | String | The ID of the user. | |
UserLogin | String | The login name of the user. | |
RepositoryName [KEY] | String | The name of the repository. | |
Name | String | The user's public profile name. | |
Company | String | The user's public profile company. | |
CompanyHTML | String | The user's public profile company as HTML. | |
CreatedAt | Datetime | Identifies the date and time when the object was created. | |
String | The user's publicly visible profile email. | ||
IsBountyHunter | Bool | Whether or not this user is a participant in the GitHub Security Bug Bounty. | |
IsCampusExpert | Bool | Whether or not this user is a participant in the GitHub Campus Experts Program. | |
IsDeveloperProgramMember | Bool | Whether or not this user is a GitHub Developer Program member. | |
IsEmployee | Bool | Whether or not this user is a GitHub employee. | |
IsHireable | Bool | Whether or not the user has marked themselves as for hire. | |
IsSiteAdmin | Bool | Whether or not this user is a site administrator. | |
IsViewer | Bool | Whether or not this user is the viewing user. | |
Location | String | The user's public profile location. | |
PinnedItemsRemaining | Integer | Returns how many more items this profile owner can pin to their profile. | |
ProjectsUrl | String | The HTTP URL listing user's projects. | |
ResourcePath | String | The HTTP path for this user. | |
TwitterUsername | String | The user's Twitter username. | |
UpdatedAt | Datetime | Identifies the date and time when the object was last updated. | |
URL | String | The HTTP URL for this user. | |
ViewerCanChangePinnedItems | Bool | Can the viewer pin repositories and gists to the profile?. | |
ViewerCanCreateProjects | Bool | Can the current viewer create new projects on this owner. | |
ViewerCanFollow | Bool | Whether or not the viewer is able to follow the user. | |
ViewerIsFollowing | Bool | Whether or not this user is followed by the viewer. | |
WebsiteUrl | String | A URL pointing to the user's public website/blog. |
The connection string properties are the various options that can be used to establish a connection. This section provides a complete list of the options you can configure in the connection string for this provider. Click the links for further details.
For more information on establishing a connection, see Establishing a Connection.
Property | Description |
RepositoryName | Restrict query results by the repository name. |
UserLogin | Restrict query results by UserLogin. |
Property | Description |
OAuthClientId | The client Id assigned when you register your application with an OAuth authorization server. |
OAuthClientSecret | The client secret assigned when you register your application with an OAuth authorization server. |
Property | Description |
SSLServerCert | The certificate to be accepted from the server when connecting using TLS/SSL. |
Property | Description |
FirewallType | The protocol used by a proxy-based firewall. |
FirewallServer | The name or IP address of a proxy-based firewall. |
FirewallPort | The TCP port for a proxy-based firewall. |
FirewallUser | The user name to use to authenticate with a proxy-based firewall. |
FirewallPassword | A password used to authenticate to a proxy-based firewall. |
Property | Description |
ProxyAutoDetect | This indicates whether to use the system proxy settings or not. This takes precedence over other proxy settings, so you'll need to set ProxyAutoDetect to FALSE in order use custom proxy settings. |
ProxyServer | The hostname or IP address of a proxy to route HTTP traffic through. |
ProxyPort | The TCP port the ProxyServer proxy is running on. |
ProxyAuthScheme | The authentication type to use to authenticate to the ProxyServer proxy. |
ProxyUser | A user name to be used to authenticate to the ProxyServer proxy. |
ProxyPassword | A password to be used to authenticate to the ProxyServer proxy. |
ProxySSLType | The SSL type to use when connecting to the ProxyServer proxy. |
ProxyExceptions | A semicolon separated list of destination hostnames or IPs that are exempt from connecting through the ProxyServer . |
Property | Description |
LogModules | Core modules to be included in the log file. |
Property | Description |
Location | A path to the directory that contains the schema files defining tables, views, and stored procedures. |
BrowsableSchemas | This property restricts the schemas reported to a subset of the available schemas. For example, BrowsableSchemas=SchemaA,SchemaB,SchemaC. |
Tables | This property restricts the tables reported to a subset of the available tables. For example, Tables=TableA,TableB,TableC. |
Views | Restricts the views reported to a subset of the available tables. For example, Views=ViewA,ViewB,ViewC. |
Property | Description |
MaxPointsPerCall | Specifies how many points a call will cost. |
MaxRows | Limits the number of rows returned rows when no aggregation or group by is used in the query. This helps avoid performance issues at design time. |
Other | These hidden properties are used only in specific use cases. |
PseudoColumns | This property indicates whether or not to include pseudo columns as columns to the table. |
Timeout | The value in seconds until the timeout error is thrown, canceling the operation. |
UserDefinedViews | A filepath pointing to the JSON configuration file containing your custom views. |
This section provides a complete list of the Connection properties you can configure in the connection string for this provider.
Property | Description |
RepositoryName | Restrict query results by the repository name. |
UserLogin | Restrict query results by UserLogin. |
Restrict query results by the repository name.
Optional when creating a new connection. However, this table is required to query some tables.
Where RepositoryName is required, you must also specify UserLogin.
Restrict query results by UserLogin.
You can set this connection property to restrict query results by UserLogin.
This property is optional when creating a connection; you can also specify the UserLogin pseudo column in your query to override the value set in the connection. The driver uses the currently authenticated user's UserLogin if one is not explicitly specified as a connection property or as a criteria.
This section provides a complete list of the OAuth properties you can configure in the connection string for this provider.
Property | Description |
OAuthClientId | The client Id assigned when you register your application with an OAuth authorization server. |
OAuthClientSecret | The client secret assigned when you register your application with an OAuth authorization server. |
The client Id assigned when you register your application with an OAuth authorization server.
As part of registering an OAuth application, you will receive the OAuthClientId value, sometimes also called a consumer key, and a client secret, the OAuthClientSecret.
The client secret assigned when you register your application with an OAuth authorization server.
As part of registering an OAuth application, you will receive the OAuthClientId, also called a consumer key. You will also receive a client secret, also called a consumer secret. Set the client secret in the OAuthClientSecret property.
This section provides a complete list of the SSL properties you can configure in the connection string for this provider.
Property | Description |
SSLServerCert | The certificate to be accepted from the server when connecting using TLS/SSL. |
The certificate to be accepted from the server when connecting using TLS/SSL.
If using a TLS/SSL connection, this property can be used to specify the TLS/SSL certificate to be accepted from the server. Any other certificate that is not trusted by the machine is rejected.
This property can take the following forms:
Description | Example |
A full PEM Certificate (example shortened for brevity) | -----BEGIN CERTIFICATE----- MIIChTCCAe4CAQAwDQYJKoZIhv......Qw== -----END CERTIFICATE----- |
A path to a local file containing the certificate | C:\cert.cer |
The public key (example shortened for brevity) | -----BEGIN RSA PUBLIC KEY----- MIGfMA0GCSq......AQAB -----END RSA PUBLIC KEY----- |
The MD5 Thumbprint (hex values can also be either space or colon separated) | ecadbdda5a1529c58a1e9e09828d70e4 |
The SHA1 Thumbprint (hex values can also be either space or colon separated) | 34a929226ae0819f2ec14b4a3d904f801cbb150d |
If not specified, any certificate trusted by the machine is accepted.
Use '*' to signify to accept all certificates. Note that this is not recommended due to security concerns.
This section provides a complete list of the Firewall properties you can configure in the connection string for this provider.
Property | Description |
FirewallType | The protocol used by a proxy-based firewall. |
FirewallServer | The name or IP address of a proxy-based firewall. |
FirewallPort | The TCP port for a proxy-based firewall. |
FirewallUser | The user name to use to authenticate with a proxy-based firewall. |
FirewallPassword | A password used to authenticate to a proxy-based firewall. |
The protocol used by a proxy-based firewall.
This property specifies the protocol that the Sync App will use to tunnel traffic through the FirewallServer proxy. Note that by default, the Sync App connects to the system proxy; to disable this behavior and connect to one of the following proxy types, set ProxyAutoDetect to false.
Type | Default Port | Description |
TUNNEL | 80 | When this is set, the Sync App opens a connection to GitHub and traffic flows back and forth through the proxy. |
SOCKS4 | 1080 | When this is set, the Sync App sends data through the SOCKS 4 proxy specified by FirewallServer and FirewallPort and passes the FirewallUser value to the proxy, which determines if the connection request should be granted. |
SOCKS5 | 1080 | When this is set, the Sync App sends data through the SOCKS 5 proxy specified by FirewallServer and FirewallPort. If your proxy requires authentication, set FirewallUser and FirewallPassword to credentials the proxy recognizes. |
To connect to HTTP proxies, use ProxyServer and ProxyPort. To authenticate to HTTP proxies, use ProxyAuthScheme, ProxyUser, and ProxyPassword.
The name or IP address of a proxy-based firewall.
This property specifies the IP address, DNS name, or host name of a proxy allowing traversal of a firewall. The protocol is specified by FirewallType: Use FirewallServer with this property to connect through SOCKS or do tunneling. Use ProxyServer to connect to an HTTP proxy.
Note that the Sync App uses the system proxy by default. To use a different proxy, set ProxyAutoDetect to false.
The TCP port for a proxy-based firewall.
This specifies the TCP port for a proxy allowing traversal of a firewall. Use FirewallServer to specify the name or IP address. Specify the protocol with FirewallType.
The user name to use to authenticate with a proxy-based firewall.
The FirewallUser and FirewallPassword properties are used to authenticate against the proxy specified in FirewallServer and FirewallPort, following the authentication method specified in FirewallType.
A password used to authenticate to a proxy-based firewall.
This property is passed to the proxy specified by FirewallServer and FirewallPort, following the authentication method specified by FirewallType.
This section provides a complete list of the Proxy properties you can configure in the connection string for this provider.
Property | Description |
ProxyAutoDetect | This indicates whether to use the system proxy settings or not. This takes precedence over other proxy settings, so you'll need to set ProxyAutoDetect to FALSE in order use custom proxy settings. |
ProxyServer | The hostname or IP address of a proxy to route HTTP traffic through. |
ProxyPort | The TCP port the ProxyServer proxy is running on. |
ProxyAuthScheme | The authentication type to use to authenticate to the ProxyServer proxy. |
ProxyUser | A user name to be used to authenticate to the ProxyServer proxy. |
ProxyPassword | A password to be used to authenticate to the ProxyServer proxy. |
ProxySSLType | The SSL type to use when connecting to the ProxyServer proxy. |
ProxyExceptions | A semicolon separated list of destination hostnames or IPs that are exempt from connecting through the ProxyServer . |
This indicates whether to use the system proxy settings or not. This takes precedence over other proxy settings, so you'll need to set ProxyAutoDetect to FALSE in order use custom proxy settings.
This takes precedence over other proxy settings, so you'll need to set ProxyAutoDetect to FALSE in order use custom proxy settings.
To connect to an HTTP proxy, see ProxyServer. For other proxies, such as SOCKS or tunneling, see FirewallType.
The hostname or IP address of a proxy to route HTTP traffic through.
The hostname or IP address of a proxy to route HTTP traffic through. The Sync App can use the HTTP, Windows (NTLM), or Kerberos authentication types to authenticate to an HTTP proxy.
If you need to connect through a SOCKS proxy or tunnel the connection, see FirewallType.
By default, the Sync App uses the system proxy. If you need to use another proxy, set ProxyAutoDetect to false.
The TCP port the ProxyServer proxy is running on.
The port the HTTP proxy is running on that you want to redirect HTTP traffic through. Specify the HTTP proxy in ProxyServer. For other proxy types, see FirewallType.
The authentication type to use to authenticate to the ProxyServer proxy.
This value specifies the authentication type to use to authenticate to the HTTP proxy specified by ProxyServer and ProxyPort.
Note that the Sync App will use the system proxy settings by default, without further configuration needed; if you want to connect to another proxy, you will need to set ProxyAutoDetect to false, in addition to ProxyServer and ProxyPort. To authenticate, set ProxyAuthScheme and set ProxyUser and ProxyPassword, if needed.
The authentication type can be one of the following:
If you need to use another authentication type, such as SOCKS 5 authentication, see FirewallType.
A user name to be used to authenticate to the ProxyServer proxy.
The ProxyUser and ProxyPassword options are used to connect and authenticate against the HTTP proxy specified in ProxyServer.
You can select one of the available authentication types in ProxyAuthScheme. If you are using HTTP authentication, set this to the user name of a user recognized by the HTTP proxy. If you are using Windows or Kerberos authentication, set this property to a user name in one of the following formats:
user@domain domain\user
A password to be used to authenticate to the ProxyServer proxy.
This property is used to authenticate to an HTTP proxy server that supports NTLM (Windows), Kerberos, or HTTP authentication. To specify the HTTP proxy, you can set ProxyServer and ProxyPort. To specify the authentication type, set ProxyAuthScheme.
If you are using HTTP authentication, additionally set ProxyUser and ProxyPassword to HTTP proxy.
If you are using NTLM authentication, set ProxyUser and ProxyPassword to your Windows password. You may also need these to complete Kerberos authentication.
For SOCKS 5 authentication or tunneling, see FirewallType.
By default, the Sync App uses the system proxy. If you want to connect to another proxy, set ProxyAutoDetect to false.
The SSL type to use when connecting to the ProxyServer proxy.
This property determines when to use SSL for the connection to an HTTP proxy specified by ProxyServer. This value can be AUTO, ALWAYS, NEVER, or TUNNEL. The applicable values are the following:
AUTO | Default setting. If the URL is an HTTPS URL, the Sync App will use the TUNNEL option. If the URL is an HTTP URL, the component will use the NEVER option. |
ALWAYS | The connection is always SSL enabled. |
NEVER | The connection is not SSL enabled. |
TUNNEL | The connection is through a tunneling proxy. The proxy server opens a connection to the remote host and traffic flows back and forth through the proxy. |
A semicolon separated list of destination hostnames or IPs that are exempt from connecting through the ProxyServer .
The ProxyServer is used for all addresses, except for addresses defined in this property. Use semicolons to separate entries.
Note that the Sync App uses the system proxy settings by default, without further configuration needed; if you want to explicitly configure proxy exceptions for this connection, you need to set ProxyAutoDetect = false, and configure ProxyServer and ProxyPort. To authenticate, set ProxyAuthScheme and set ProxyUser and ProxyPassword, if needed.
This section provides a complete list of the Logging properties you can configure in the connection string for this provider.
Property | Description |
LogModules | Core modules to be included in the log file. |
Core modules to be included in the log file.
Only the modules specified (separated by ';') will be included in the log file. By default all modules are included.
See the Logging page for an overview.
This section provides a complete list of the Schema properties you can configure in the connection string for this provider.
Property | Description |
Location | A path to the directory that contains the schema files defining tables, views, and stored procedures. |
BrowsableSchemas | This property restricts the schemas reported to a subset of the available schemas. For example, BrowsableSchemas=SchemaA,SchemaB,SchemaC. |
Tables | This property restricts the tables reported to a subset of the available tables. For example, Tables=TableA,TableB,TableC. |
Views | Restricts the views reported to a subset of the available tables. For example, Views=ViewA,ViewB,ViewC. |
A path to the directory that contains the schema files defining tables, views, and stored procedures.
The path to a directory which contains the schema files for the Sync App (.rsd files for tables and views, .rsb files for stored procedures). The folder location can be a relative path from the location of the executable. The Location property is only needed if you want to customize definitions (for example, change a column name, ignore a column, and so on) or extend the data model with new tables, views, or stored procedures.
If left unspecified, the default location is "%APPDATA%\\CData\\GitHub Data Provider\\Schema" with %APPDATA% being set to the user's configuration directory:
This property restricts the schemas reported to a subset of the available schemas. For example, BrowsableSchemas=SchemaA,SchemaB,SchemaC.
Listing the schemas from databases can be expensive. Providing a list of schemas in the connection string improves the performance.
This property restricts the tables reported to a subset of the available tables. For example, Tables=TableA,TableB,TableC.
Listing the tables from some databases can be expensive. Providing a list of tables in the connection string improves the performance of the Sync App.
This property can also be used as an alternative to automatically listing views if you already know which ones you want to work with and there would otherwise be too many to work with.
Specify the tables you want in a comma-separated list. Each table should be a valid SQL identifier with any special characters escaped using square brackets, double-quotes or backticks. For example, Tables=TableA,[TableB/WithSlash],WithCatalog.WithSchema.`TableC With Space`.
Note that when connecting to a data source with multiple schemas or catalogs, you will need to provide the fully qualified name of the table in this property, as in the last example here, to avoid ambiguity between tables that exist in multiple catalogs or schemas.
Restricts the views reported to a subset of the available tables. For example, Views=ViewA,ViewB,ViewC.
Listing the views from some databases can be expensive. Providing a list of views in the connection string improves the performance of the Sync App.
This property can also be used as an alternative to automatically listing views if you already know which ones you want to work with and there would otherwise be too many to work with.
Specify the views you want in a comma-separated list. Each view should be a valid SQL identifier with any special characters escaped using square brackets, double-quotes or backticks. For example, Views=ViewA,[ViewB/WithSlash],WithCatalog.WithSchema.`ViewC With Space`.
Note that when connecting to a data source with multiple schemas or catalogs, you will need to provide the fully qualified name of the table in this property, as in the last example here, to avoid ambiguity between tables that exist in multiple catalogs or schemas.
This section provides a complete list of the Miscellaneous properties you can configure in the connection string for this provider.
Property | Description |
MaxPointsPerCall | Specifies how many points a call will cost. |
MaxRows | Limits the number of rows returned rows when no aggregation or group by is used in the query. This helps avoid performance issues at design time. |
Other | These hidden properties are used only in specific use cases. |
PseudoColumns | This property indicates whether or not to include pseudo columns as columns to the table. |
Timeout | The value in seconds until the timeout error is thrown, canceling the operation. |
UserDefinedViews | A filepath pointing to the JSON configuration file containing your custom views. |
Specifies how many points a call will cost.
The GraphQL API v4 rate limit is 5,000 points per hour.
Limits the number of rows returned rows when no aggregation or group by is used in the query. This helps avoid performance issues at design time.
Limits the number of rows returned rows when no aggregation or group by is used in the query. This helps avoid performance issues at design time.
These hidden properties are used only in specific use cases.
The properties listed below are available for specific use cases. Normal driver use cases and functionality should not require these properties.
Specify multiple properties in a semicolon-separated list.
DefaultColumnSize | Sets the default length of string fields when the data source does not provide column length in the metadata. The default value is 2000. |
ConvertDateTimeToGMT | Determines whether to convert date-time values to GMT, instead of the local time of the machine. |
RecordToFile=filename | Records the underlying socket data transfer to the specified file. |
This property indicates whether or not to include pseudo columns as columns to the table.
This setting is particularly helpful in Entity Framework, which does not allow you to set a value for a pseudo column unless it is a table column. The value of this connection setting is of the format "Table1=Column1, Table1=Column2, Table2=Column3". You can use the "*" character to include all tables and all columns; for example, "*=*".
The value in seconds until the timeout error is thrown, canceling the operation.
If Timeout = 0, operations do not time out. The operations run until they complete successfully or until they encounter an error condition.
If Timeout expires and the operation is not yet complete, the Sync App throws an exception.
A filepath pointing to the JSON configuration file containing your custom views.
User Defined Views are defined in a JSON-formatted configuration file called UserDefinedViews.json. The Sync App automatically detects the views specified in this file.
You can also have multiple view definitions and control them using the UserDefinedViews connection property. When you use this property, only the specified views are seen by the Sync App.
This User Defined View configuration file is formatted as follows:
For example:
{ "MyView": { "query": "SELECT * FROM Users WHERE MyColumn = 'value'" }, "MyView2": { "query": "SELECT * FROM MyTable WHERE Id IN (1,2,3)" } }Use the UserDefinedViews connection property to specify the location of your JSON configuration file. For example:
"UserDefinedViews", "C:\\Users\\yourusername\\Desktop\\tmp\\UserDefinedViews.json"