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 服務帳戶。請參閱「授予身分與存取權管理角色」。
  2. 開啟 Git 整合設定:
    • Conversational Agents 控制台
      1. 按一下右上角附近的設定圖示,開啟設定畫面。
      2. 向下捲動並按一下「Add Git integration」
    • Dialogflow CX 主控台
      1. 按一下「管理」分頁標籤。
      2. 按一下「Testing & Deployment」部分中的「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 拉取。

「Push」按鈕可用來匯出代理程式,並對 Git 分支版本下拉式選單中選取的 Git 分支版本進行修訂。這項提交作業將包含整個代理程式,而非特定變更,並會刪除存放區中的任何現有檔案。

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

「Restore」按鈕可從 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) 服務專員。