設定 GitHub 存放庫的 Webhook

已完成

在 GitHub 中,可以針對組織或特定存放庫設定 Webhook。 每當發生一或多個訂閱事件時,就會觸發 Webhook。 例如,Gollum 事件可讓您接聽 Wiki 更新,特別是 Wiki 頁面的建立和更新。

在此單元中,您將會了解如何從公司的 GitHub Wiki 設定接聽變更事件的 Webhook。

設定 Webhook

設定 Webhook 是兩個步驟的程序。 首先,您可在 GitHub 中指定希望 Webhook 如何表現以及它要監聽哪些事件。 其次,您可在 Azure Functions 中設定函式,以接收和管理從 Webhook 接收的承載。 在範例案例中,我們是針對特定存放庫設定 Webhook。

若要設定 Webhook,請在 GitHub 入口網站中,從頂端功能表列選取 [Settings] (設定)。 [Settings] (設定) 頁面會隨即出現,並顯示您的存放庫名稱。 在左側功能表中,選取 [Webhook],然後選取 [Add webhook] (新增 Webhook)。 您也可以透過 Webhook API 建置及管理 Webhook,但這不在本課程模組的討論範圍內。

在您可使用 Webhook 之前,它們需要幾個設定選項。 接下來,我們會逐步執行這些設定。

承載 URL

承載 URL 是將會接收 Webhook POST 要求之伺服器的 URL。

每個事件類型都有特定承載格式。 該承載包含觸發 Webhook 之事件的相關資訊。

內容類型

Webhook 可以使用兩種不同的內容類型來傳遞:

  • application/json 內容類型直接傳遞 JSON 承載作為 POST 要求的本文。
  • application/x-www-form-urlencoded 內容類型會傳送名為 payload 的 JSON 承載作為表單參數。

注意

[Add webhook] \(新增 Webhook\) 頁面也可讓您使用「祕密」,來指定如何保護 Webhook 傳送的資訊。 稍後在此課程模組中會涵蓋此主題。

事件

事件是 Webhook 的中心。 每當在存放庫中採取動作時,就會發生事件。 當事件發生時,Webhook 會引發及呼叫您指定的 URL,並將承載和事件資訊傳送至您的 URL。 例如,若要在每次存放庫中有問題提出時做出回應,請選取 [Let me select individual events] (讓我選取個別事件),然後選取 [Issues] (問題) 核取方塊。 請務必選取 [Active] (主動) 核取方塊,以接收所觸發 Webhook 的問題事件。 然後選取 [Add webhook] (新增 Webhook) 以啟動觸發程序。

若要接聽存放庫 Wiki 的更新,請選取 [Wiki] 核取方塊 (此事件是先前提及的 Gollum 事件)。 選取 [Add webhook] (新增 Webhook) 以儲存您選取的所有個別事件。

您可以瀏覽 GitHub Webhook 事件 (英文) 找到 Webhook 事件的完整清單,並了解其何時可能執行。

在下一個練習中,我們將逐步引導您完成為 GitHub 存放庫設定 Webhook 的程序。