身為 Automation Pipelines 管理員或開發人員,您可以使用 Git 觸發器將 Automation Pipelines 雲端服務與 Git 生命週期整合。當您在 GitHub、GitLab 或 Bitbucket Enterprise 中進行代碼變更時,事件會透過 Webhook 與 Automation Pipelines 進行通訊並觸發管線。Webhook 適用於 GitLab、GitHub 以及 Bitbucket 雲端和內部部署企業版本。

Automation Pipelines 中新增 Git 的 webhook 時,它還會在 GitHub、GitLab 或 Bitbucket 存放庫中建立 webhook。如果稍後更新或刪除 Webhook,該動作也會更新或刪除 GitHub、GitLab 或 Bitbucket 中的 Webhook。

Webhook 定義必須包含將要監控的存放庫的分支上的 Git 端點。若要建立 Webhook,Automation Pipelines 會使用 Git 端點。如果不存在端點,您可以在新增 webhook 時建立端點。此範例假設在 GitHub 中您有預先定義的 Git 端點。

備註: 若要建立 Webhook,Git 端點必須使用私人 Token 進行驗證,不能使用密碼。

透過使用相同的 Git 端點並在 Webhook 組態頁面中為分支名稱提供不同的值,可以為不同的分支建立多個 Webhook。若要為相同 Git 存放庫中的其他分支建立其他 Webhook,無需針對多個分支複製 Git 端點多次。而是在 Webhook 中提供分支名稱,以便重複使用 Git 端點。如果 Git Webhook 中的分支與端點中的分支相同,則無需在 Git Webhook 頁面中提供分支名稱。

此範例顯示如何將 Git 觸發器與 GitHub 存放庫搭配使用,但必要條件包括使用另一個 Git 伺服器類型時所需的準備工作。

必要條件

程序

  1. Automation Pipelines 中,按一下觸發器 > Git
  2. 依序按一下適用於 Git 的 Webhook 索引標籤和新增適用於 Git 的 Webhook
    1. 選取專案。
    2. 為 webhook 輸入有意義的名稱和說明。
    3. 選取針對要監控的分支設定的 Git 端點。
      當您建立 webhook 時,webhook 定義將包含目前端點詳細資料。
      • 如果稍後在端點中變更 Git 類型、Git 伺服器類型或 Git 存放庫 URL,則 webhook 將無法再觸發管線,因為它會嘗試使用原始端點詳細資料存取 Git 存放庫。您必須刪除 webhook,然後再次建立包含該端點的 webhook。
      • 如果您稍後在端點中變更驗證類型、使用者名稱或私人 Token,則 webhook 將繼續運作。
      • 如果使用的是 BitBucket 存放庫,則存放庫的 URL 必須採用以下格式之一:https://api.bitbucket.org/{user}/{repo name}http(s)://{bitbucket-enterprise-server}/rest/api/1.0/users/{username}/repos/{repo name}
      備註: 如果先前建立的 webhook 使用的 Git 端點是使用密碼進行基本驗證,則您必須將其刪除並透過使用私人 Token 進行驗證的 Git 端點重新定義 webhook。
      請參閱 如何整合 Automation Pipelines 與 Git
    4. (選擇性) 輸入您想讓 webhook 監控的分支。
      如果未指定分支,則 Webhook 會監控為 Git 端點設定的分支。如果使用 Regex 作為分支名稱,則對與 Regex 相符的任何分支所做的變更都將觸發管線。
    5. (選擇性) 為 webhook 產生密碼 Token。
      如果使用密碼 Token, Automation Pipelines 將為 Webhook 產生隨機字串 Token。然後,當 Webhook 收到 Git 事件資料時,它會使用密碼 Token 傳送資料。 Automation Pipelines 會使用資訊來判定呼叫是否來自預期來源,例如設定的 GitHub 執行個體、存放庫和分支。密碼 Token 提供一層額外的安全性,用來確認 Git 事件資料來自於正確的來源。
    6. (選擇性) 提供檔案包含或排除做為觸發器的條件。
      • 檔案包含。如果認可中的任何檔案與包含路徑或 Regex 中指定的檔案相符,則認可將觸發管線。透過指定規則運算式,Automation Pipelines 僅在變更集中的檔案名稱與提供的運算式相符時觸發管線。為單一存放庫中的多個管線設定觸發器時,規則運算式篩選器很有用。
      • 檔案排除。如果認可中的所有檔案與排除路徑或 Regex 中指定的檔案相符,則不會觸發管線。
      • 排除優先。開啟 [排除優先] 時,可確保即使認可中的任何檔案與排除路徑或 Regex 中指定的檔案相符,也不會觸發管線。預設設定為關閉。
      如果條件同時滿足檔案包含和檔案排除,則管線不會觸發。

      在下列範例中,檔案包含和檔案排除都是觸發器的條件。

      檔案包含和檔案排除及其值顯示在 Git 觸發器的適用於 Git 的 Webhook 索引標籤上,並且可以是純文字或 Regex。

      • 對於檔案包含,認可對 runtime/src/main/a.java 或任何 Java 檔案的任何變更都將觸發事件組態中設定的管線。
      • 對於檔案排除,僅認可這兩個檔案中的變更不會觸發事件組態中設定的管線。
    7. 對於 Git 事件,選取推送提取請求。
    8. 輸入 API Token。
      VMware Cloud Services API Token 會向您驗證與 Automation Pipelines 的外部 API 連線。取得 API Token:
      1. 登入 VMware Aria Automation
      2. 登入
      3. 按一下您名稱旁邊的下拉式箭頭。
      4. 按一下我的帳戶
      5. 按一下 API Token
      6. 按一下產生新的 API Token
        1. 輸入 Token 名稱。
        2. 在 [組織角色] 下,按一下以展開所有組織角色,然後選取組織擁有者
        3. 在 [服務角色] 下,按一下以展開 VMware Aria Automation > Pipelines,然後選取 Pipelines 管理員
        4. 按一下產生

          已產生 Token 視窗會顯示具有您所指定名稱的 Token,以及您組織的名稱。

      7. 按一下複製圖示。

        按一下複製可確保您擷取精確字串,並且比使用指標複製字串更為可靠。

    9. 選取 webhook 要觸發的管線。
      如果管線包括自訂新增的輸入參數,[輸入參數] 清單會顯示參數和值。您可以輸入透過觸發事件傳遞到管線的輸入參數的值。或者,您可以將這些值保留空白,或使用預設值 (如果已定義)。

      如需 Git 觸發器的自動插入輸入參數的相關資訊,請參閱必要條件

    10. 按一下建立
      webhook 會顯示為新卡。
  3. 按一下 Webhook 卡。
    重新顯示 Webhook 資料表單時,您會看到 Webhook URL 已新增至表單的頂端。Git Webhook 透過該 Webhook URL 連線至 GitHub 存放庫。

    在 Git 存放庫中複製和使用的 Git Webhook URL 會顯示在 Git 觸發器的適用於 Git 的 Webhook 索引標籤中。

  4. 在新的瀏覽器視窗中,開啟透過 Webhook 連線的 GitHub 存放庫。
    1. 若要查看在 Automation Pipelines 中新增的 Webhook,請按一下設定索引標籤,然後選取 Webhook
      在 Webhook 清單的底端,您會看到相同的 Webhook URL。

      在 GitHub 存放庫中,Webhook 清單會在清單底部顯示相同的 Git Webhook URL。

    2. 若要變更代碼,請按一下代碼索引標籤,然後在分支上選取檔案。編輯檔案後,請認可變更。
    3. 若要確認 Webhook URL 是否正在工作,請按一下設定索引標籤,然後再次選取 Webhook
      在 Webhook 清單的底端,Webhook URL 旁會顯示一個綠色打勾標記。 如果 GitHub 中的 Webhook 有效,會顯示綠色打勾標記。
  5. 返回至 Automation Pipelines 以檢視 Git Webhook 上的活動。按一下觸發器 > Git > 活動
    在執行狀態下,確認管線執行已啟動。

    當使用者認可檔案時,會啟用適用於 Git 的觸發器,且活動索引標籤顯示觸發器狀態為 [已啟動]。

  6. 按一下執行,並在管線執行時追蹤管線。
    若要觀察管線執行,可以按 [重新整理]。

    管線觸發後,管線執行會顯示狀態為 [執行中]。

結果

恭喜您!您已成功使用適用於 Git 的觸發器!