Article version: Enterprise Server 2.20

Installing GitHub Insights

You can install GitHub Insights and connect the standalone application to GitHub Enterprise Server.

Organization owners in GitHub Enterprise with read permissions to the github/insights-releases repository and administrative access to the servers your company uses for GitHub Insights can install GitHub Insights.

GitHub Insights is available with GitHub One. For more information, see "GitHub's products."

In this article

Prerequisites

  • You must have a GitHub Enterprise license file that has been updated to include GitHub Insights. GitHub will provide the license file when you purchase GitHub Insights.
  • GitHub Insights requires a minimum of two machines hosted either in the cloud or locally. For more information, see "System overview for GitHub Insights."

Creating a GitHub App

To connect GitHub Insights to GitHub Enterprise, you must create a GitHub App in an organization on GitHub Enterprise. A slugged version of your app's name will be shown on GitHub Enterprise when your integration takes an action.

  1. Sign in to your GitHub Enterprise Server instance at http(s)://HOSTNAME/login.

  2. Navigate to the organization you'd like to connect to GitHub Insights.

  3. Under your organization name, click Settings.

    Organization settings button

  4. In the left sidebar, click GitHub Apps.

    GitHub Apps settings

  5. Click New GitHub App.

    New GitHub App button

  6. Under "GitHub App name", type a name for the app. Your app cannot have the same name as an existing user or organization, unless the name is your own user or organization name.

    GitHub App name field

  7. Under "Homepage URL", type the URL of the machine you will use as the application server for GitHub Insights. For more information, see "System overview for GitHub Insights."

    Homepage URL field

  8. Under "User authorization callback URL", type the following, replacing <application-server-url> with the URL of the machine you will use as the application server for GitHub Insights.

    <application-server-url>/public/applogin
    

    User authorization callback field

  9. Under "Webhook URL", type <application-server-url>/webhooks.

    Webhook URL field

  10. Under "Webhook secret", type a secret, then record the secret for later reference.

    Webhook secret field

  11. Under "Permissions", use the drop-down menus and configure the following permissions for the app.

    • Repository contents: Read-only
    • Repository metadata: Read-only
    • Pull requests: Read-only
    • Commit statuses: Read-only
    • Organization members: Read-only
    • Organization projects: Read-only
      Permissions drop-down menus
  12. Under "Subscribe to events", select:

    • Pull request
    • Push
    • Repository
      Subscribe to events checkboxes
  13. To enable the GitHub App to access data from any user or organization in your GitHub Enterprise Server instance, under "Where can this GitHub App be installed?", select Any account.

    Radio buttons to enable access to any account

  14. Click Create GitHub App.

    Create GitHub App button

  15. Review your app's configuration.

  16. Under "Private keys", click Generate a private key.

    Generate a private key button

  17. Save the resulting PEM file for later reference.

  18. Make note of the following information about your app for later reference.

    • App ID
    • Client ID
    • Client secret
    • Private key
    • Webhook secret

Installing GitHub Insights

Installing GitHub Insights requires Docker. The installation script will install Docker if able. If the script is not able to install Docker, the script will attempt to use an existing installation of Docker. If there is no existing installation of Docker on the host machines, the installation will fail.

Installing GitHub Insights requires SSH public/private key authentication for the machines used to host the application. For more information, see "System overview for GitHub Insights."

  1. Navigate to the latest release of GitHub Insights on the Releases page for github/insights-releases.

  2. To download the latest release, under "Assets", click installation.tgz.

    Installation assset

  3. Unzip the directory.

  4. To configure the installation, run the shell script configure.sh. The script can be run from any machine that can SSH into the application and import servers and does not need to be run from either host machine.

  5. Enter the same URL you used for the application server when creating the GitHub App.

  6. Enter the SSH user for connecting to the application server.

  7. Enter the URL for the machine you will use as the import server for GitHub Insights. For more information, see "System overview for GitHub Insights."

  8. Enter the SSH user for connecting to the import server.

  9. Enter the path to the PEM key for SSH authentication with the application server.

  10. If you want to use a different PEM key for SSH authentication to the import server, enter the path to the PEM key. Otherwise, leave blank.

  11. To enable SSL, enter the SSL Cert (.crt). If you don't want to enable SSL, leave blank.

  12. If you chose to enable SSL, enter the SSL Key (.key). Otherwise, leave blank.

  13. If using a bastion host, enter y. Otherwise, enter N and skip to step 16.

  14. Enter your bastion server and username in the form of user@my.bastion.address.

  15. Enter the path to the SSH key for the bastion server. If the path is the same as the path for the SSH key for the application server, leave blank.

  16. If users will access GitHub Insights through a gateway or proxy, enter the base URL including the protocol in the form of protocol://host.

  17. The installation configuration is now saved. You will see a message printed to the terminal.

    Saving configured settings to /Users/octocat/Projects/insights/install/0.2.9/install_data/.env
    
  18. To start the installation, run the shell script insights.sh.

  19. The installation will take a few minutes to run. When complete, you will see a message printed to the terminal.

    PLAY RECAP ********************************************
    application: ok=20   changed=7    unreachable=0    failed=0   
    import : ok=29   changed=9    unreachable=0    failed=0
    

Configuring GitHub Insights

To configure GitHub Insights to connect to GitHub Enterprise Server, you must provide the information you recorded in previous steps.

  1. In your browser, navigate to <application-server-url>/setup.

  2. Under "GitHub API URL", type the URL you use to access GitHub Enterprise.

    GitHub Enterprise API URL field

  3. Under "GitHub Insights License", click "Choose Files", then upload your GitHub Enterprise license file.

    Choose Files button

  4. Under "App ID", type the App ID of your GitHub App, which you recorded when creating the app.

    App ID field

  5. Under "Client ID", type the client ID of your GitHub App, which you recorded when creating the app.

    Client ID field

  6. Under "Client Secret", type the client secret of your GitHub App, which you recorded when creating the app.

    Client secret field

  7. Under "Private Key", type in the private key of your GitHub App, which is contained in the PEM file you downloaded while creating the app.

    Private key field

  8. Under "Webhook Secret", type the webhook secret of your GitHub App, which you recorded when creating the app.

    Webhook secret field

  9. If you did not provide a SSL certificate during installation, select Skip SSL Certificate Check.

    Checkbox to skip SSL certificate check

  10. Click Submit.

  11. Click Log in with GitHub.

  12. To authorize the GitHub App and access GitHub Insights, click Authorize GitHub App.

Further reading

Ask a human

Can't find what you're looking for?

Contact us