From 90c3f9b0d181b448a48c9806edbbe7e4e82589ea Mon Sep 17 00:00:00 2001 From: Alexandre Bouchard Date: Wed, 15 Mar 2023 19:56:08 -0600 Subject: [PATCH 1/5] Update using-webhooks-with-github-apps.md --- .../using-webhooks-with-github-apps.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/content/apps/creating-github-apps/creating-github-apps/using-webhooks-with-github-apps.md b/content/apps/creating-github-apps/creating-github-apps/using-webhooks-with-github-apps.md index dee2afef61..e0403f0856 100644 --- a/content/apps/creating-github-apps/creating-github-apps/using-webhooks-with-github-apps.md +++ b/content/apps/creating-github-apps/creating-github-apps/using-webhooks-with-github-apps.md @@ -27,22 +27,23 @@ When you activate webhooks in the settings for your {% data variables.product.pr ### Choosing a webhook URL for development and testing -While you develop and test your app, you can use a webhook payload delivery service like [Smee](https://smee.io/) to capture and forward webhook payloads to your local development environment. Never use Smee for an application in production, because Smee channels are not authenticated or secure. Alternatively, you can use a tool like [ngrok](https://dashboard.ngrok.com/get-started) or [localtunnel](https://localtunnel.github.io/www/) that exposes your local machine to the internet to receive the payloads. +While you develop and test your app, you can use a webhook payload delivery service like [Hookdeck](https://hookdeck.com/) to capture and forward webhook payloads to your local development environment. Alternatively, you can use a tool like [ngrok](https://dashboard.ngrok.com/get-started) or [localtunnel](https://localtunnel.github.io/www/) that exposes your local machine to the internet to receive the payloads. -#### Creating a webhook URL with Smee +#### Get a webhook URL with Hookdeck -You can use Smee to create a unique domain where {% data variables.product.prodname_dotcom %} can send webhook payloads, without exposing your local development to the internet. Smee calls this unique domain a "Webhook Proxy URL." You can use Smee's Webhook Proxy URL as the webhook URL for your {% data variables.product.prodname_github_app %}. +You can use Hookdeck to get a unique URL where {% data variables.product.prodname_dotcom %} can send webhook payloads, without exposing your local development to the internet. -1. To use Smee to create a unique domain, go to https://smee.io and click **Start a new channel**. -1. On the Smee channel page, follow the instructions under "Use the CLI" to install and run the Smee client. -1. To connect your Smee webhook URL to your {% data variables.product.prodname_github_app %}, enter your unique Smee domain in the "Webhook URL" field of your app settings. For more information, see "[AUTOTITLE](/apps/creating-github-apps/creating-github-apps/creating-a-github-app)." +1. Go to https://console.hookdeck.com +2. Copy the Webhook URL provided by Hookdeck +3. To connect your Hookdeck webhook URL to your {% data variables.product.prodname_github_app %}, enter the URL in the "Webhook URL" field of your app settings. For more information, see "[AUTOTITLE](/apps/creating-github-apps/creating-github-apps/creating-a-github-app)." +4. (Optional) Select "Add Destination" to forward the Github webhooks to a HTTP URL or Localhost ### Choosing a webhook URL for production For an application in production that receives a low volume of webhook traffic, you can host it on any dynamic application server. The server-side code for handling the webhook can receive the event, deserialize its JSON payload, and decide what action to take, such as storing the data in a database or calling the {% data variables.product.prodname_dotcom %} API. To handle a higher volume of webhook traffic for a large app in production, consider using asynchronous webhook handling on a dedicated server. You can achieve this by employing a queue, where the webhook handler pushes data to the queue, and separate processes perform subsequent actions based on the events. Additionally, you can use cloud functions such as [Azure Functions](https://azure.microsoft.com/en-us/products/functions/) - or [AWS Lambda](https://aws.amazon.com/lambda/) to help scale the app for handling large volumes of webhook events. + or [AWS Lambda](https://aws.amazon.com/lambda/) to help scale the app for handling large volumes of webhook events. [Hookdeck](https://hookdeck.com) allows for production uses with automatic queuing, retries and alerts. ## Securing your webhooks with a webhook secret From 9424acc01754fa4b5ab5e4b7d2147bc74a1e4011 Mon Sep 17 00:00:00 2001 From: Alexandre Bouchard Date: Wed, 15 Mar 2023 20:22:08 -0600 Subject: [PATCH 2/5] Update using-webhooks-with-github-apps.md Fix wording --- .../creating-github-apps/using-webhooks-with-github-apps.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/apps/creating-github-apps/creating-github-apps/using-webhooks-with-github-apps.md b/content/apps/creating-github-apps/creating-github-apps/using-webhooks-with-github-apps.md index e0403f0856..4da88196eb 100644 --- a/content/apps/creating-github-apps/creating-github-apps/using-webhooks-with-github-apps.md +++ b/content/apps/creating-github-apps/creating-github-apps/using-webhooks-with-github-apps.md @@ -43,7 +43,7 @@ You can use Hookdeck to get a unique URL where {% data variables.product.prodnam For an application in production that receives a low volume of webhook traffic, you can host it on any dynamic application server. The server-side code for handling the webhook can receive the event, deserialize its JSON payload, and decide what action to take, such as storing the data in a database or calling the {% data variables.product.prodname_dotcom %} API. To handle a higher volume of webhook traffic for a large app in production, consider using asynchronous webhook handling on a dedicated server. You can achieve this by employing a queue, where the webhook handler pushes data to the queue, and separate processes perform subsequent actions based on the events. Additionally, you can use cloud functions such as [Azure Functions](https://azure.microsoft.com/en-us/products/functions/) - or [AWS Lambda](https://aws.amazon.com/lambda/) to help scale the app for handling large volumes of webhook events. [Hookdeck](https://hookdeck.com) allows for production uses with automatic queuing, retries and alerts. + or [AWS Lambda](https://aws.amazon.com/lambda/) to help scale the app for handling large volumes of webhook events. [Hookdeck](https://hookdeck.com) also allows for production uses with automatic queuing, retries and alerts. ## Securing your webhooks with a webhook secret From a5ab4e7b1dc7a6eb97e0a873538b2a3dbea397bd Mon Sep 17 00:00:00 2001 From: Alexandre Bouchard Date: Fri, 17 Mar 2023 15:25:29 -0600 Subject: [PATCH 3/5] Update Hookdeck Console link to preselect Github example webhooks --- .../creating-github-apps/using-webhooks-with-github-apps.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/apps/creating-github-apps/creating-github-apps/using-webhooks-with-github-apps.md b/content/apps/creating-github-apps/creating-github-apps/using-webhooks-with-github-apps.md index 4da88196eb..cd86eec963 100644 --- a/content/apps/creating-github-apps/creating-github-apps/using-webhooks-with-github-apps.md +++ b/content/apps/creating-github-apps/creating-github-apps/using-webhooks-with-github-apps.md @@ -33,7 +33,7 @@ While you develop and test your app, you can use a webhook payload delivery serv You can use Hookdeck to get a unique URL where {% data variables.product.prodname_dotcom %} can send webhook payloads, without exposing your local development to the internet. -1. Go to https://console.hookdeck.com +1. Go to [https://console.hookdeck.com](https://console.hookdeck.com?provider=github) 2. Copy the Webhook URL provided by Hookdeck 3. To connect your Hookdeck webhook URL to your {% data variables.product.prodname_github_app %}, enter the URL in the "Webhook URL" field of your app settings. For more information, see "[AUTOTITLE](/apps/creating-github-apps/creating-github-apps/creating-a-github-app)." 4. (Optional) Select "Add Destination" to forward the Github webhooks to a HTTP URL or Localhost From 1252ec84837aefa744464de04ac47ac0df7ca73d Mon Sep 17 00:00:00 2001 From: Alexandre Bouchard Date: Thu, 30 Mar 2023 12:20:16 -0600 Subject: [PATCH 4/5] Update using-webhooks-with-github-apps.md --- .../using-webhooks-with-github-apps.md | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/content/apps/creating-github-apps/creating-github-apps/using-webhooks-with-github-apps.md b/content/apps/creating-github-apps/creating-github-apps/using-webhooks-with-github-apps.md index cd86eec963..c078227130 100644 --- a/content/apps/creating-github-apps/creating-github-apps/using-webhooks-with-github-apps.md +++ b/content/apps/creating-github-apps/creating-github-apps/using-webhooks-with-github-apps.md @@ -27,23 +27,21 @@ When you activate webhooks in the settings for your {% data variables.product.pr ### Choosing a webhook URL for development and testing -While you develop and test your app, you can use a webhook payload delivery service like [Hookdeck](https://hookdeck.com/) to capture and forward webhook payloads to your local development environment. Alternatively, you can use a tool like [ngrok](https://dashboard.ngrok.com/get-started) or [localtunnel](https://localtunnel.github.io/www/) that exposes your local machine to the internet to receive the payloads. +While you develop and test your app, you can use a webhook payload delivery service like [Smee](https://smee.io/) to capture and forward webhook payloads to your local development environment. Never use Smee for an application in production, because Smee channels are not authenticated or secure. Alternatively, you can use a tool like [ngrok](https://dashboard.ngrok.com/get-started), [localtunnel](https://localtunnel.github.io/www/) or the [Hookdeck Console](https://console.hookdeck.com?provider=github) that exposes your local machine to the internet to receive the payloads. -#### Get a webhook URL with Hookdeck +#### Creating a webhook URL with Smee -You can use Hookdeck to get a unique URL where {% data variables.product.prodname_dotcom %} can send webhook payloads, without exposing your local development to the internet. +You can use Smee to create a unique domain where {% data variables.product.prodname_dotcom %} can send webhook payloads, without exposing your local development to the internet. Smee calls this unique domain a "Webhook Proxy URL." You can use Smee's Webhook Proxy URL as the webhook URL for your {% data variables.product.prodname_github_app %}. -1. Go to [https://console.hookdeck.com](https://console.hookdeck.com?provider=github) -2. Copy the Webhook URL provided by Hookdeck -3. To connect your Hookdeck webhook URL to your {% data variables.product.prodname_github_app %}, enter the URL in the "Webhook URL" field of your app settings. For more information, see "[AUTOTITLE](/apps/creating-github-apps/creating-github-apps/creating-a-github-app)." -4. (Optional) Select "Add Destination" to forward the Github webhooks to a HTTP URL or Localhost +1. To use Smee to create a unique domain, go to https://smee.io and click **Start a new channel**. +1. On the Smee channel page, follow the instructions under "Use the CLI" to install and run the Smee client. +1. To connect your Smee webhook URL to your {% data variables.product.prodname_github_app %}, enter your unique Smee domain in the "Webhook URL" field of your app settings. For more information, see "[AUTOTITLE](/apps/creating-github-apps/creating-github-apps/creating-a-github-app)." ### Choosing a webhook URL for production For an application in production that receives a low volume of webhook traffic, you can host it on any dynamic application server. The server-side code for handling the webhook can receive the event, deserialize its JSON payload, and decide what action to take, such as storing the data in a database or calling the {% data variables.product.prodname_dotcom %} API. -To handle a higher volume of webhook traffic for a large app in production, consider using asynchronous webhook handling on a dedicated server. You can achieve this by employing a queue, where the webhook handler pushes data to the queue, and separate processes perform subsequent actions based on the events. Additionally, you can use cloud functions such as [Azure Functions](https://azure.microsoft.com/en-us/products/functions/) - or [AWS Lambda](https://aws.amazon.com/lambda/) to help scale the app for handling large volumes of webhook events. [Hookdeck](https://hookdeck.com) also allows for production uses with automatic queuing, retries and alerts. +To handle a higher volume of webhook traffic for a large app in production, consider using asynchronous webhook handling on a dedicated server. You can achieve this by employing a queue, where the webhook handler pushes data to the queue, and separate processes perform subsequent actions based on the events. Additionally, you can use cloud functions such as [Azure Functions](https://azure.microsoft.com/en-us/products/functions/), [AWS Lambda](https://aws.amazon.com/lambda/) or [Hookdeck](https://hookdeck.com) to help scale the app for handling large volumes of webhook events. ## Securing your webhooks with a webhook secret From 2fb048f4c536280231d98f6be580b61691152e71 Mon Sep 17 00:00:00 2001 From: Sarah Edwards Date: Thu, 30 Mar 2023 12:30:16 -0700 Subject: [PATCH 5/5] Apply suggestions from code review --- .../creating-github-apps/using-webhooks-with-github-apps.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/apps/creating-github-apps/creating-github-apps/using-webhooks-with-github-apps.md b/content/apps/creating-github-apps/creating-github-apps/using-webhooks-with-github-apps.md index c078227130..983c7f60e2 100644 --- a/content/apps/creating-github-apps/creating-github-apps/using-webhooks-with-github-apps.md +++ b/content/apps/creating-github-apps/creating-github-apps/using-webhooks-with-github-apps.md @@ -27,7 +27,7 @@ When you activate webhooks in the settings for your {% data variables.product.pr ### Choosing a webhook URL for development and testing -While you develop and test your app, you can use a webhook payload delivery service like [Smee](https://smee.io/) to capture and forward webhook payloads to your local development environment. Never use Smee for an application in production, because Smee channels are not authenticated or secure. Alternatively, you can use a tool like [ngrok](https://dashboard.ngrok.com/get-started), [localtunnel](https://localtunnel.github.io/www/) or the [Hookdeck Console](https://console.hookdeck.com?provider=github) that exposes your local machine to the internet to receive the payloads. +While you develop and test your app, you can use a webhook payload delivery service like [Smee](https://smee.io/) to capture and forward webhook payloads to your local development environment. Never use Smee for an application in production, because Smee channels are not authenticated or secure. Alternatively, you can use a tool like [ngrok](https://dashboard.ngrok.com/get-started), [localtunnel](https://localtunnel.github.io/www/), or the [Hookdeck Console](https://console.hookdeck.com?provider=github) that exposes your local machine to the internet to receive the payloads. #### Creating a webhook URL with Smee @@ -41,7 +41,7 @@ You can use Smee to create a unique domain where {% data variables.product.prodn For an application in production that receives a low volume of webhook traffic, you can host it on any dynamic application server. The server-side code for handling the webhook can receive the event, deserialize its JSON payload, and decide what action to take, such as storing the data in a database or calling the {% data variables.product.prodname_dotcom %} API. -To handle a higher volume of webhook traffic for a large app in production, consider using asynchronous webhook handling on a dedicated server. You can achieve this by employing a queue, where the webhook handler pushes data to the queue, and separate processes perform subsequent actions based on the events. Additionally, you can use cloud functions such as [Azure Functions](https://azure.microsoft.com/en-us/products/functions/), [AWS Lambda](https://aws.amazon.com/lambda/) or [Hookdeck](https://hookdeck.com) to help scale the app for handling large volumes of webhook events. +To handle a higher volume of webhook traffic for a large app in production, consider using asynchronous webhook handling on a dedicated server. You can achieve this by employing a queue, where the webhook handler pushes data to the queue, and separate processes perform subsequent actions based on the events. Additionally, you can use cloud functions such as [Azure Functions](https://azure.microsoft.com/en-us/products/functions/), [AWS Lambda](https://aws.amazon.com/lambda/), or [Hookdeck](https://hookdeck.com) to help scale the app for handling large volumes of webhook events. ## Securing your webhooks with a webhook secret