GitHub is an internet Git repository that
hosts a service for software development and versioning. It offers distributed revision control and
source code management (SCM) functions of Git, including access control, bug tracking, software
feature requests, task management, continuous integration, and wikis. IBM® App Connect Enterprise provides GitHub Input and
GitHub Request nodes, which you can use to interact with GitHub.
About this task
IBM App Connect Enterprise communicates synchronously with GitHub through the GitHub Input and GitHub Request nodes, which are available on Windows, AIX, and Linux® systems.
Use the GitHub Input node in a message flow to accept input
from GitHub. You can use the node to monitor GitHub for new or updated objects such as issues, commits,
comments, and review comments. For more information about configuring the GitHub Input node, see GitHub Input node.
Use the GitHub Request node to connect to GitHub and issue requests to create, retrieve, update,
delete, or merge objects such as branches, issues, organizations, pull requests, and repositories.
For more information about configuring the GitHub Request
node, see GitHub Request node.
Procedure
The following steps show you how to connect to a GitHub account and configure a GitHub Request node by using connector discovery. You can follow a
similar procedure to configure a GitHub Input node to monitor
GitHub for new or updated objects, by creating a flow
containing a GitHub Input node and configuring it through
connector discovery.
- In the IBM App Connect
Enterprise Toolkit, create a flow that contains a GitHub Request node.
- Select the GitHub Request node in the flow to show
the node properties in the editor.
- On the Basic tab, click Launch Connector
Discovery.
A panel is displayed in which you specify the name of the
policy project and vault details to be used during connector discovery.
- Specify the details of the policy project and vault to be
used during connector discovery:
- In the Policy Project field, specify the policy project that is
used to store the policies that are created during connector discovery.
Alternatively,
you can create a new policy project by clicking New and then specifying the
name of the new policy project. Then click Finish.
- Specify the vault to be used during connector discovery. By default, credentials that
are used during connector discovery are stored in an external directory vault, which is
an App Connect Enterprise vault that can be used by any integration server.
Alternatively, you can store the credentials in an integration server vault, which is created in the
integration server's work directory and can be used only by that specific integration server.
To specify the vault to be used for storing the credentials, complete the steps in the
Using
the Connector Discovery wizard section of one of the following topics:
- In the Vault key field, enter the vault key that is used to
access the credentials stored in the vault. The vault key must be at least 8 characters in
length.
- Optional: By default, the specified vault location and vault key are saved
as preferences in the Toolkit so that the values are preset when you launch Connector Discovery. If
you do not want the preferences to be saved, deselect Save in vault
preferences.
- Click Launch Discovery to start the Connector Discovery wizard for
the GitHub connector.
The
Connector Discovery window is displayed. If existing GitHub connections (accounts) are available, a list of those
connections is displayed. If there are no existing connections, the status of the GitHub connector is shown as Not
connected.
- If one or more GitHub connections (accounts) are
available, complete the following steps:
- Select the connection (account) that you want to use by clicking it.
- Click the required object type and then select the action that you want to perform on the
object. For example, to retrieve branches from GitHub,
click Branches and then Retrieve branches.
- If there are no existing connections (accounts), complete the following steps:
- Click the required object type and then select the action that you want to perform on that
object. For example, to retrieve branches from GitHub,
click Branches and then Retrieve branches.
- Click Connect.
A window is displayed in which you select the
and the
for your
GitHub account. Enter the following information:
- Application type: Select either or
from the drop down menu.
- Authorization method: Select either
or
from the drop down menu.
For more information about identifying these connection details, see How to use IBM App Connect with Github.
- Click Connect.
A window is displayed in which you enter the
Endpoint URL and the
Personal Access Token for your
GitHub account. Enter the following information:
- Endpoint URL: The URL of the GitHub instance in the format
https://<hostname>.
- Personal Access Token:The personal access token to access the GitHub API. Generate the personal access token from your GitHub account Settings page.
- Proxy name: If necessary, enter the name of the proxy that you want IBM App Connect Enterprise to use to pass the connector calls.
For more information about identifying these connection details, see How to use IBM App Connect with GitHub.
- Click Connect.
- Set the required connector properties in the wizard.
You can add conditions for the retrieval of the data, by clicking Add
condition and then selecting the property that you want to filter on. You can also set
properties that specify the maximum number of records to retrieve and the action to be taken if that
limit is exceeded.
- When you have finished specifying the properties in the Connector Discovery wizard, click
Save.
The credential that is used for connecting to
GitHub is stored in the vault, and the other connection
details are saved in the
GitHub policy. The values of the properties that you set
in the wizard are returned to the
GitHub Request node in the
IBM App Connect
Enterprise Toolkit.
- When you finish discovery and saved the property values, exit the Connector Discovery
wizard by clicking the X in the upper-right corner of the window or by pressing Alt+F4.
- Return to editing the GitHub Request node in the
IBM App Connect
Enterprise Toolkit.
The connector properties that were set in the Connector Discovery wizard (in step
6) are now visible on the
GitHub Request node in the property editor. The
Basic tab shows the values of the
Action and
Object properties that you set in the wizard. For example, if you selected
in the wizard, the following properties are visible on the
Basic tab of the
node:
- Action -
RETRIEVEALL
- Object -
Branches
The values of the Action and Object properties
are displayed in read-only format. If you want to change these values, you can do so by clicking
Launch Connector Discovery again and setting new values in the Connector
Discovery wizard.
The Schema base name property specifies the base name
of the schema files that describe the format of the request and response messages that are sent and
received from the GitHub connector. The schema base name
is set automatically the first time that you run discovery for the node, and it is based on the
current flow name and node name. If you set this property manually before you run for the first
time, the value that you set is used. If you rename the schemas after discovery, you must edit this
property so that it matches the schema base name that is used by the renamed schemas in the project.
If you change this property after discovery, you must either rename the schema names to match or run
discovery again.
Depending on the action that was selected during discovery, the Connector
Discovery wizard generates either a request schema and a response schema, or a response schema only.
A request schema is generated only if the selected action and object require a request message. The
generated request schema is used for validation of the request message. If the action was
RETRIEVE or DELETE, only the response schema is returned by the
connector.
The generated schema files are added to the project and can be used by a Mapping node for transforming input or output data. The full
filename of the schema is derived from the schema base name (such as
gen/MyMessageFlow.Github_Request), suffixed with either
response.schema.json or request.schema.json. You can open
the schema by clicking Open request schema or Open response
schema.
- Check that the property settings on the GitHub Request node are correct and then save the message
flow.
- On the Connection tab of the GitHub Request node, the Policy property
shows the name of the policy that contains the details of the security identity to be used for the
connection. The policy has a type of
Github.
- Optional: Set the Timeout property
on the Connection tab to specify the time (in seconds) that the node waits
for GitHub to process the operation.
- The Filter tab of the GitHub Request node contains properties that control how in the
message flow selects data. The initial values of these properties are taken from the property values
that were set for the GitHub connector in the Connector
Discovery wizard, including the filter options properties and any conditions that were specified (as
described in step 6). If
you subsequently return to the Connector Discovery wizard and change the values of any properties
(by adding new conditions, for example) those updates are reflected in the properties set on the
node.
The Filter Options properties control which objects are to be operated
upon when the GitHub Request node executes. The
Filter Limit properties control the maximum number of items to be retrieved
and the action to be taken if the limit is exceeded.
You can modify the values by clicking Edit next to the value that you want
to modify in the Filter Options section, and by changing the property values
that have been set in the Filter Limit section.
The property values can be either text values or ESQL or XPATH expressions that are resolved from
the contents of the message that is passed to the GitHub Request node as it executes.
- On the Request tab, set the Data
location property to specify the location in the incoming message tree that contains the
object data to be created in GitHub. This data forms
the request that is sent from the GitHub Request node to the
GitHub system.
- On the Result tab, set the Output
data location property to specify the location in the output message tree to contain the
data of the record that is created in GitHub.
- By default, request messages are validated against the request schema that was generated
during connector discovery. You can turn off request validation or change the validation settings by
using the Validation properties of the GitHub Request node.
- Save the message flow.