Git 匯出/還原

Conversational Agents (Dialogflow CX) 可與多個 Git 供應商 (GitHub、Gitlab、Bitbucket 等) 整合。透過這項整合功能,您可以輕鬆將代理程式匯出為 JSON 格式,然後推送至 Git 供應商,也可以從 Git 供應商提取資料來還原代理程式。推送到 Git 供應商的 JSON 匯出格式,是匯出代理程式的展開 zip 檔案內容。

使用這項功能可善用 Git 供應商的原始碼控管功能,例如:

  • 使用程式碼審查工具審查代理變更
  • 使用差異工具檢查代理程式差異
  • 合併

限制

限制如下:

  • [僅限舊版整合] GitHub API 限制單一提交可更新的檔案數量。如果檔案數量超過 500 個,您可能無法從 Conversational Agents (Dialogflow CX) 推送至 GitHub。在這種情況下,您可以將代理程式匯出為 zip 檔案,並在本機上使用 Git CLI 將代理程式檔案推送至 GitHub。我們會在後續的 Conversational Agents (Dialogflow CX) 版本中解決這項限制。
  • 不支援 GitHub 私人存取權 自架主機 存放區, 因為 Conversational Agents (Dialogflow CX) 無法存取這些存放區。
  • Git 存放區不得包含代理程式匯出功能匯出的代理程式檔案以外的任何檔案。存放區中的其他檔案會在每次推送時移除。

設定

如要設定這項功能,您需要從 Git 供應商取得存取權杖,並將權杖儲存在 Secret Manager 中,然後將密鑰資源提供給 Conversational Agents (Dialogflow CX):

存取權杖

如要從 Git 供應商取得存取權杖,請按照下列步驟操作:

GitHub

您需要取得 GitHub 個人權杖。如果您使用精細的個人存取權杖,則需要下列權限存取權:

  • 存放區權限 > 內容:讀取和寫入
  • 存放區權限 > 中繼資料:唯讀 (選取「內容」權限後,系統應會自動選取此選項)

GitLab

您需要取得 Gitlab 個人存取權杖

Bitbucket

您需要取得 Bitbucket 存取權杖

Secret Manager

現在您已取得存取權杖,接下來需要為權杖建立密鑰:

  1. 啟用 Secret Manager API
  2. 建立密鑰

設定 Conversational Agents (Dialogflow CX)

如要為 Conversational Agents (Dialogflow CX) 設定這項整合功能,請按照下列步驟操作:

  1. 授予 Dialogflow 服務代理人權限,存取 Secret Manager 中的存取權杖密鑰。在代理程式專案中,將 Secret Manager Secret Accessor 角色指派給 gcp-sa-dialogflow.iam.gserviceaccount.com 服務帳戶。請參閱「授予 Secret Manager 密鑰的存取權」。
  2. 開啟 Git 整合設定:
    • Conversational Agents 控制台
      1. 按一下右上角的「設定」圖示,開啟設定畫面。
      2. 向下捲動並按一下「新增 Git 整合」
    • Dialogflow CX 主控台
      1. 按一下「管理」分頁標籤。
      2. 按一下「測試與部署」部分中的「Git」
      3. 按一下 [Create new] (建立新意圖)。
  3. 提供設定詳細資料:
    1. 輸入下列資訊:
      • GitHub 連線的顯示名稱。
      • Git 存放區網址 (例如: https://github.com/<path-to-repo>.git)。
      • 新增代理程式將互動的 Git 分支。 如要將某個分支設為預設分支,請按一下該分支旁的星號圖示。
      • 存取權杖密鑰,這是您建立的密鑰版本,格式為特定版本的 projects/*/secrets/*/versions/* 或最新版本的 projects/*/secrets/*/versions/latest
    2. 按一下「連線」
    3. Git 服務可能需要一分鐘才能準備就緒。 控制台會顯示通知。

推送及還原

設定完成後,您就可以將代理程式推送/提取至/自 Git。

「推送」按鈕用於匯出代理程式,並對 Git 分支版本下拉式選單中選取的 Git 分支版本進行修訂。這個提交內容會包含整個代理程式,而非特定變更,並刪除存放區中的所有現有檔案。

具備「Dialogflow 讀取者」角色的使用者可以推送至 Git 存放區。如要避免不必要的推送,請使用唯讀個人存取權杖設定這些代理程式。

「還原」按鈕用於從 Git 分支 (在「Git 分支」下拉式選單中選取) 提取虛擬服務專員資料,並從這項資料還原 Conversational Agents (Dialogflow CX) 虛擬服務專員。這會覆寫代理程式,與還原代理程式的行為相同。

用途範例

以下範例說明如何讓多位使用者透過這項功能,向正式版代理程式提議不同的代理程式變更。

假設代理程式使用下列 Git 分支:

  • Prod:正式版代理程式的分支版本
  • Dev1:代理程式開發分支版本
  • Dev2:另一個代理程式開發分支版本

使用者 1 想要提議變更代理程式,並執行下列步驟:

  1. 將正式版代理程式匯出至新代理程式。
  2. 視需要修改代理程式副本。
  3. 測試變更。
  4. 將變更後的代理程式推送至 Dev1 分支版本。
  5. 建立合併要求至 Prod 分支。

使用者 2 想要提議變更代理程式,並執行下列步驟:

  1. 將正式版代理程式匯出至新代理程式。
  2. 視需要修改代理程式副本。
  3. 測試變更。
  4. 將變更後的代理程式推送至 Dev2 分支版本。
  5. 建立合併要求至 Prod 分支。

使用者 3 審查這兩位使用者的合併要求,並採取下列步驟:

  1. 解決衝突。
  2. 提交核准的變更。
  3. 將正式版 Git 分支還原至正式版 Conversational Agents (Dialogflow CX) 代理程式。