做為 DevOps 管理員或開發人員,您可以使用 Git 觸發器將 Code Stream 雲端服務與 Git 生命週期整合。當您在 GitHub、GitLab 或 Bitbucket Enterprise 中進行程式碼變更時,事件會透過 Webhook 與 Code Stream 進行通訊,並且觸發管線執行。

Code Stream 中新增 Git 的 webhook 時,它還會在 GitHub、GitLab 或 Bitbucket 存放庫中建立 webhook。如果您稍後更新或刪除 webhook,GitHub、GitLab,或 Bitbucket 中的 webhook 會一併更新或刪除。

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

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

必要條件

程序

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

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

      檔案包含和排除的範例。

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

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

      6. 按一下複製圖示。

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

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

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

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

    具有 Webhook URL 的 Git webhook

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

      Github 中的 Webhook 清單

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

    針對 Git 觸發器啟動的活動。

  6. 按一下執行,以在管線執行時追蹤它。
    您可以按 [重新整理] 按鈕,來觀察管線的執行情況。

    Git 觸發的管線執行

結果

恭喜您!您已成功使用 Git 觸發器執行管線。