Enable Git Integration for GitHub Enterprise Server

This page is no longer maintained (Mar 29, 2023). For the most current information, go to https://docs.snaplogic.com/cicd/git-integration/git-integration-ghes.html.

 

 

On this page:

Enabling the SnapLogic Git Integration for GitHub Enterprise Server (GHES) requires the following:

  1. A subscription to the Git Integration for GHES

  2. Configuration of GHES and the network

  3. Configuration of the SnapLogic Org

Configuring GHES to Work with SnapLogic

A GHES administrator must create an App in GHES to enable interaction between GHES and SnapLogic. In addition to the App, the network must be configured to allow communication between GHES and the SnapLogic control plane.

The following sections describe procedures for:

Creating the GHES SnapLogic App

The steps outlined in this section are subject to change. If necessary, use the latest GitHub documentation on creating Apps for the general procedures.

As a GHES administrator, create and authorize a SnapLogic App as follows:

  1. Click your profile photo to display the dropdown menu.

  2. Click Your organizations.

  3. To the right of the organization, click Settings.

  4. In the left sidebar, click Developer settings.

  5. In the left sidebar, click GitHub Apps.

  6. Click New GitHub App. The Register new GitHub App page opens:

  7. For GitHub App name, enter the appropriate information. For example, snaplogic-app.

  8. In the Write tab, enter a description of the App.

  9. For the Homepage URL, enter the full URL to the App’s website. Users will install the App from this page. For example: HTTPS://<your-GHES-server-URL>/github-apps/snaplogic-app/.

  10. Add a Callback URL in the following format:
    https://elastic.snaplogic.com/api/1/rest/asset/app/oauthcallback

  11. Click Expire user authorization tokens.

  12. Make sure the WebHook Active box is not checked.

  13. Set Repository permissions as follows:

    1. Contents: Read & write

    2. Deployments: Read & write

    3. Issues: Read & write

    4. Pull Requests: Read & write

  14. Under Where can this GitHub App be installed, select Any Account.

  15. Click Create GitHub App.
    General information about the App displays including the App ID, which will be required for SnapLogic configuration.

  16. Install the App for the appropriate GHES organization.

  17. Use the buttons on the About page to generate and save a Client Secret and a Private Key. Generating Private keys will automatically download them in a .pem file.

If you are not the SnapLogic Org admin, please provide the following information to them for the Git Integration Settings:

  • The client secret and the .pem file that contains the Private Key.

  • The Public Link

  • The Client ID

  • The App ID

Configuring the Network

A network administrator must perform the following to enable communication between GHES and SnapLogic:

  1. Add SnapLogic IP addresses to the network whitelist for access to the GHES server as described in Adding the SnapLogic Platform to Your Allow List.

  2. Make sure the following GHES URLs are accessible from the SnapLogic Control Plane IP addresses, they will use the header: Accept: application/vnd.github.v3+json.

Usage

Endpoint URL

List app installations accessible to the user access token

/api/v3/user/installations

List repositories accessible to the user access token

/api/v3/user/installations/1/repositories

 

Get a single reference

/api/v3/repos/OWNER/REPO/git/ref/REF

Pull

/api/v3/repos/OWNER/REPO/pulls

Create Commit

/api/v3/repos/OWNER/REPO/git/commits 

Get Commit

 

/api/v3/repos/OWNER/REPO/git/commits/COMMIT_SHA

Get Repo Contents

/api/v3/repos/OWNER/REPO/contents/PATH

Get a Blob

 

/api/v3/repos/OWNER/REPO/git/blobs/FILE_SHA

Create a blob

/api/v3/repos/OWNER/REPO/git/blobs

List Repo Tags

/api/v3/repos/OWNER/REPO/tags

Create New File

/api/v3/repos/OWNER/REPO/contents/PATH 

Create Git Tree

/api/v3/repos/OWNER/REPO/git/tree

Configuring a SnapLogic Org to Work with GHES

As a SnapLogic Org admin, configure GHES in Manager as follows:

  1. From the left navigation, select Settings.

  2. Scroll down to Git Integration and click Configure Git.

  3. In the Configure Git dialog, select GitHub Enterprise Server from the dropdown:

  4. In the Configure Git dialog, enter the appropriate values:

    If you are not the GHES administrator that created the App for SnapLogic, you will need to get the following information from them:

    1. For Client ID, enter the value stored in the GHES App.

    2. For Client Secret, paste the secret. The Client Secret value will display in the field until you save the configuration. Then, it will not be visible and the only way to change is to replace it.

    3. For GHES URL, enter the Public Link provided by the GHES administrator.

    4. For App ID, enter the GHES App ID.

    5. For Private Key, open the .pem file generated by GHES with any text editor. Copy and paste the RSA key.

  5. Click Save.

Next, individual SnapLogic users will need to authorize SnapLogic to interact with GHES.

Related Content