diff --git a/self-hosting/govern/integrations/github.mdx b/self-hosting/govern/integrations/github.mdx index 7a1a8443..5c552953 100644 --- a/self-hosting/govern/integrations/github.mdx +++ b/self-hosting/govern/integrations/github.mdx @@ -5,6 +5,14 @@ sidebarTitle: GitHub This guide walks you through setting up a GitHub App to enable GitHub integration for your Plane workspace on a self-hosted instance. Since self-hosted environments don’t come pre-configured for GitHub, you’ll need to set up the necessary authentication, permissions, and webhooks to ensure smooth integration. +This guide covers configuration for both: + +- **[GitHub Cloud](/self-hosting/govern/integrations/github?edition=github-cloud#create-github-app)** +The standard cloud-hosted GitHub service + +- **[GitHub Enterprise Server](/self-hosting/govern/integrations/github?edition=github-enterprise#create-github-app)** +Self-hosted GitHub instances for organizations with specific compliance or security requirements + In this guide, you’ll: 1. [Create and configure a GitHub App](/self-hosting/govern/integrations/github#create-github-app) 2. [Set up permissions and events](/self-hosting/govern/integrations/github#set-up-permissions-and-events) @@ -18,42 +26,114 @@ After creating and configuring the GitHub app and configuring the instance as de ## Create GitHub App -To configure GitHub integration, you'll need to create a GitHub App within your organization. Follow these steps: +To configure GitHub integration, you'll need to create a GitHub App within your organization. + + + + 1. Go to **Settings \> Developer Settings \> GitHub Apps** in your GitHub organization. + + 2. Click **New GitHub App**. + ![Create GitHub App](/images/integrations/github/create-github-app.webp) + + 3. In the **Register new GitHub App** page, provide a **GitHub App name** and **Homepage URL**. + ![App name and homepage URL](/images/integrations/github/app-name-homepage-url.webp) + + 4. In the **Identifying and authorizing users** section, add the following **Callback URLS**. + + ```bash + https:///silo/api/github/auth/callback + https:///silo/api/github/auth/user/callback + ``` + + These URLs allow Plane to verify and enable workspace connection with the Github App. + ![Add Callback URL](/images/integrations/github/add-callback-url.webp) + +5. In the **Post installation** section, add the below **Setup URL**. + + ```bash + https:///silo/api/github/auth/callback + ``` + + Redirects users to this URL after GitHub app installation. + ![Add setup URL](/images/integrations/github/add-setup-url.webp) + + 6. Turn on **Redirect on update**. + + 7. In the **Webhook** section, add the below **Webhook URL**. + + ```bash + https:///silo/api/github/github-webhook + ``` + + This allows Plane to receive updates from GitHub repositories. + + ![Add Webhook URL](/images/integrations/github/add-webhook-url.webp) + + + 1. Go to **Settings \> Developer Settings \> GitHub Apps** in your GitHub organization. -2. Click **New GitHub App**. - ![Create GitHub App](/images/integrations/github/create-github-app.webp) + 2. Click **New GitHub App**. + ![Create GitHub App](/images/integrations/github/create-github-app.webp) -3. In the **Register new GitHub App** page, provide a **GitHub App name** and **Homepage URL**. - ![App name and homepage URL](/images/integrations/github/app-name-homepage-url.webp) + 3. In the **Register new GitHub App** page, provide a **GitHub App name** and **Homepage URL**. + ![App name and homepage URL](/images/integrations/github/app-name-homepage-url.webp) -4. In the **Identifying and authorizing users** section, add the following **Callback URLS**. + 4. In the **Identifying and authorizing users** section, add the following **Callback URLS**. - ```bash - https:///silo/api/github/auth/callback - https:///silo/api/github/auth/user/callback - ``` - These URLs allow Plane to verify and enable workspace connection with the Github App. - ![Add Callback URL](/images/integrations/github/add-callback-url.webp) + **For Plane cloud instance** -5. In the **Post installation** section, add the below **Setup URL**. + ```bash + https://silo.plane.so/api/github/auth/callback + https://silo.plane.so/api/github/auth/user/callback + ``` - ```bash - https:///silo/api/github/auth/callback - ``` - Redirects users to this URL after GitHub app installation. - ![Add setup URL](/images/integrations/github/add-setup-url.webp) + **For Plane self-hosted instance** -6. Turn on **Redirect on update**. + ```bash + https:///silo/api/github/auth/callback + https:///silo/api/github/auth/user/callback + ``` + + These URLs allow Plane to verify and enable workspace connection with the Github App. + ![Add Callback URL](/images/integrations/github/add-callback-url.webp) -7. In the **Webhook** section, add the below **Webhook URL**. - ```bash - https:///silo/api/github/github-webhook - ``` - This allows Plane to receive updates from GitHub repositories. + 5. In the **Post installation** section, add the below **Setup URL**. + + **For Plane cloud instance** + ```bash + https://silo.plane.so/api/oauth/github-enterprise/auth/callback + ``` + + **For Plane self-hosted instance** - ![Add Webhook URL](/images/integrations/github/add-webhook-url.webp) + ```bash + https:///silo/api/oauth/github-enterprise/auth/callback + ``` + Redirects users to this URL after GitHub app installation. + ![Add setup URL](/images/integrations/github/add-setup-url.webp) + + 6. Turn on **Redirect on update**. + + 7. In the **Webhook** section, add the below **Webhook URL**. + + **For Plane cloud instance** + ```bash + https://silo.plane.so/api/github-enterprise/github-webhook + ``` + + **For Plane self-hosted instance** + + ```bash + https:///silo/api/github-enterprise/github-webhook + ``` + This allows Plane to receive updates from GitHub repositories. + + ![Add Webhook URL](/images/integrations/github/add-webhook-url.webp) + + + ### Set up permissions and events @@ -100,6 +180,53 @@ To configure GitHub integration, you'll need to create a GitHub App within your ## Configure Plane instance + + +1. Go back to **Settings \> Developer Settings \> GitHub Apps**. + +2. Click **Edit** on the GitHub you created. + +3. In the **General** tab, under the **Client secrets** section, click **Generate a new client secret**. + + ![General tab](/images/integrations/github/general-tab.webp) + +4. Scroll down to the **Private keys** section. + + ![Private keys](/images/integrations/github/private-keys.webp) + +5. Click **Genereate a private key**. + +6. Retrieve the following details from the **General** tab: + - App ID + - Client ID + - Client secret + - GitHub App name + - Private key + +7. Before adding the Private key as an environment variable, you’ll need to convert it to base64. Since private keys are typically multi-line, they can cause parsing errors or issues when setting environment variables. To avoid this, run the following command to convert the key to base64: + + ```bash + cat private_key.pem | base64 -w 0 + ``` + +8. Add these environment variables with the values to your Plane instance's `.env` file. + + ```bash + GITHUB_CLIENT_ID= + GITHUB_CLIENT_SECRET= + GITHUB_APP_NAME= + GITHUB_APP_ID= + GITHUB_PRIVATE_KEY= + ``` + +9. Save the file and restart the instance. + +10. Once you've completed the instance configuration, [activate the GitHub integration in Plane](https://docs.plane.so/integrations/github). + + + + + 1. Go back to **Settings \> Developer Settings \> GitHub Apps**. 2. Click **Edit** on the GitHub you created. @@ -112,30 +239,20 @@ To configure GitHub integration, you'll need to create a GitHub App within your ![Private keys](/images/integrations/github/private-keys.webp) -5. Click **Genereate a private key**. +5. Click **Generate a private key**. 6. Retrieve the following details from the **General** tab: - App ID + - App Slug (You can find this in browser url) - Client ID - Client secret - - GitHub App name - Private key -7. Before adding the Private key as an environment variable, you’ll need to convert it to base64. Since private keys are typically multi-line, they can cause parsing errors or issues when setting environment variables. To avoid this, run the following command to convert the key to base64: +7. Convert the Private key to convert it to base64. Since private keys are typically multi-line, they can cause parsing errors or issues when setting environment variables. To avoid this, run the following command to convert the key to base64: ```bash cat private_key.pem | base64 -w 0 ``` -8. Add these environment variables with the values to your Plane instance's `.env` file. - - ```bash - GITHUB_CLIENT_ID= - GITHUB_CLIENT_SECRET= - GITHUB_APP_NAME= - GITHUB_APP_ID= - GITHUB_PRIVATE_KEY= - ``` - -9. Save the file and restart the instance. - -10. Once you've completed the instance configuration, [activate the GitHub integration in Plane](https://docs.plane.so/integrations/github). +8. Once you've created the app, [activate the GitHub Enterprise integration in Plane](https://docs.plane.so/integrations/github#connect-github-enterprise-organization). + +