GitHub Integration

ngrok allows your local developer environment to be reachable by Github callbacks and webhooks and is needed for the ${url-prefix} later on in this setup.

Follow the steps in the ngrok documentation to get started.

To configure the GitHub integration you'll need to create a GitHub app and obtain credentials. Installation will fail if your GitHub App's name contains spaces.

For local development make sure to use your ngrok URL as the prefix.

Start by following GitHub's official guide on creating a GitHub App.

If the form above does not work for you, you need the following settings for your GitHub Application. You'll need to come up with your own webhook secret:

SettingValue
Homepage URL${url-prefix}
Callback URLs${url-prefix}/auth/sso/ and ${url-prefix}/extensions/github/setup/
Setup URL (optional)${url-prefix}/extensions/github/setup/
Webhook URL${url-prefix}/extensions/github/webhook/
Webhook secret"my-super-secret-example-secret"

When prompted for permissions, choose the following:

PermissionSetting
Repository / AdministrationRead-only
Repository / ContentsRead-only
Organization permissions / members (optional)Read-only
Account permissions / Email addresses (optional)Read-only
Repository / ChecksRead & write
Repository / Commit StatusesRead & write
Repository / IssuesRead & write
Repository / Pull requestsRead & write
Repository / WebhooksRead & write

When prompted to subscribe to events, choose the following:

  • Pull Request
  • Push

You'll be given various credentials, configure them in config.yml:

Copied
# App ID
github-app.id: GITHUB_APP_ID
# App Name
github-app.name: "GITHUB_APP_NAME"
# Client ID
github-app.client-id: "GITHUB_CLIENT_ID"
# Client Secret
github-app.client-secret: "GITHUB_CLIENT_SECRET"
# Webhook Secret
github-app.webhook-secret: "my-super-secret-example-secret"

Last, generate and download the private key, and add it to your configuration for your app:

Copied
github-app.private-key: |
  -----BEGIN RSA PRIVATE KEY-----
  privatekeyprivatekeyprivatekeyprivatekey
  privatekeyprivatekeyprivatekeyprivatekey
  privatekeyprivatekeyprivatekeyprivatekey
  privatekeyprivatekeyprivatekeyprivatekey
  privatekeyprivatekeyprivatekeyprivatekey
  -----END RSA PRIVATE KEY-----
Was this helpful?
Help improve this content
Our documentation is open source and available on GitHub. Your contributions are welcome, whether fixing a typo (drat!) or suggesting an update ("yeah, this would be better").