Setting Up a GitHub REST Connection Manager
The REST Connection Manager is an SSIS connection manager that can be used to establish connections and facilitate data integration with REST based APIs and services such as GitHub, among many more.
Integration for GitHub is enabled by the following two components:
To add a new connection, right-click the Connection Manager area in your Visual Studio project, and choose "New Connection..." from the context menu. You will be prompted the "Add SSIS Connection Manager" window. Select the "REST (KingswaySoft)" item to add a new REST Connection Manager.
The REST Connection Manager contains 2 pages of configuration.
- General
- Advanced Settings
General Page
The General page allows you to specify connection properties and login credentials for the GitHub REST service:
- Service Name
-
The REST service that will be connected to.
- API Throttle Rate
-
The API Throttle Rate will limit the number of requests that can be sent per second.
- Authentication Mode
-
The Authentication Mode option allows you to authentication mode when working with the GitHub service. Available options are:
- OAuth App Authorization Code
- GitHub App Authorization Code
- GitHub App JWT
- Personal Access Token
- Generate Token File (Only for OAuth App Authorization Code and GitHub App Authorization Code)
-
This button opens a dialogue box to sign in to your GitHub instance to generate a new Authentication Token.
Here you can enter the Client ID and Client Secret which you would be getting from the OAuth setup on the API side. The Redirect URL would be the one that you had specified in the App settings. The Scope can be specified as well (Please note that Scope is available only for OAuth App Authorization Code).
- Use Default Browser to Sign In: When this option is checked the Sign In and Authorize button will open your default web browser in order to complete the OAuth authentication. When this option is unchecked, the Sign In and Authorize button will complete the entire OAuth authentication process inside of the toolkit.
- Sign In and Authorize: This button allows you to log in to the service endpoint and authorize your app to generate a token.
- Token (Only for OAuth App Authorization Code)
-
This field will contain the token which is going to be used to access GitHub API on a behalf of a user.
- Path To Token File(Only for GitHub App Authorization Code)
-
The path to the token file on the file system.
Note: By default, you are using the authorization information (Client Id and Client Secret) provided by KingswaySoft. This should be only used for Testing, and for production and other higher environments, please choose "My own App" and work with your own credentials.
- Token File Password(Only for GitHub App Authorization Code)
-
The password to the token file.
- App Id (Only for GitHub App JWT)
-
This field will contain the App Id that would be used for JWT authentication.
- Path to Key File (Only for GitHub App JWT)
-
The path to the private key file in the file system that would be used for JWT authentication.
- Access Token (Personal Access Token)
-
This field will contain the access token which is going to be used to access GitHub API.
- Test Connection
-
After all the connection information has been provided, click the "Test Connection" button to test if the user credentials entered can connect to the selected REST service.
Advanced Settings Page
- Proxy Mode
-
The Proxy Mode option allows you to specify how you want to configure the proxy server setting. There are three options available:
- No Proxy
- Auto-detect (Using system-configured proxy)
- Manual
- Proxy Server
-
Using the Proxy Server option allows you to specify the name of the proxy server for the connection.
- Port
-
The Port option allows you to specify the port number of the proxy server for the connection.
- Username (Proxy Server Authentication)
-
The Username option (under Proxy Server Authentication) allows you to specify the proxy user account.
- Password (Proxy Server Authentication)
-
The Password option (under Proxy Server Authentication) allows you to specify the proxy user's password.
Note: The Proxy Password is not included in the connection manager's ConnectionString property by default. This is by design for security reasons. However, you can include it in your ConnectionString if you want to parameterize your connection manager. The format would be ProxyPassword=myProxyPassword; (make sure you have a semicolon as the last character). It can be anywhere in the ConnectionString.
- Timeout
-
The number of seconds requests should wait before timing out.
- Retry on Intermittent Errors
-
The retry on intermittent errors option determines if requests will be retried when there is an error. If this option is checked, requests will be retried up to 3 times.
- Ignore Certificate Errors
-
This option can be used to ignore those SSL certificate errors when connecting to GitHub servers.
Warning: Enabling the "Ignore Certificate Errors" option is generally NOT recommended, particularly for production instances. Unless there is a strong reason to believe the connection is secure - such as the network communication is only happening in an internal infrastructure, this option should be unchecked for best security.