Dialogflow CX 可與多個 Git 供應商整合 (GitHub、Gitlab、Bitbucket 等)。這項整合功能可讓您輕鬆將代理匯出為 JSON,以便推送至 Git 供應商,並從 Git 供應商提取代理還原。推送至 Git 供應商的 JSON 匯出格式,是匯出代理的展開 ZIP 檔案內容。
這項功能可讓您運用 Git 供應商的原始碼控制功能,例如:
- 使用程式碼審查工具審查代理變更
- 使用差異工具檢查代理差異
- 合併
限制
限制如下:
- [僅限舊版整合] GitHub API 限制單次修訂可更新的檔案數量。如果檔案數量超過 500 個,您可能無法從 Dialogflow CX 推送至 GitHub。在這種情況下,您可以將代理匯出為 ZIP 檔案,並在機器上使用 Git CLI 將代理檔案推送至 GitHub。我們會在日後推出的 Dialogflow CX 版本中解決這項限制。
- Dialogflow CX 無法存取 GitHub 私人存取權自行託管存放區,因此不支援這類存放區。
- Git 存放區只能包含透過代理匯出功能匯出的代理檔案。每次推送時,存放區中的其他檔案都會遭到移除。
設定
如要設定這項功能,您必須從 Git 供應商取得存取權杖,並儲存在 Secret Manager 中,然後將 Secret 資源提供給 Dialogflow CX:
存取權杖
如要從 Git 供應商取得存取權杖,請按照下列步驟操作:
GitHub
您需要取得 GitHub 個人權杖。如果使用精細的個人存取權杖,則需要下列權限存取權:
- Repository Permissions > Contents:讀取和寫入
- Repository Permissions > Metadata:唯讀 (選取「Contents」權限後,系統應會自動選取此選項)
GitLab
您必須取得 GitLab 個人存取權杖。
Bitbucket
您需要取得 Bitbucket 存取權杖。
Secret Manager
取得存取權杖後,請為權杖建立密鑰:
Dialogflow CX 設定
如要為 Dialogflow CX 設定這項整合功能,請按照下列步驟操作:
- 授予 Dialogflow 服務代理權限,允許存取 Secret Manager 中的存取權杖 Secret。將
Secret Manager Secret Accessor角色授予代理專案中的gcp-sa-dialogflow.服務帳戶。請參閱「授予 Secret Manager 密鑰存取權」。 - 開啟 Git 整合設定:
- Conversational Agents 控制台
- 按一下右上角附近的設定圖示,開啟設定畫面。
- 向下捲動,然後點選「Add Git integration」。
- Dialogflow CX 控制台
- 按一下「管理」分頁標籤。
- 在「測試與部署」部分,點選「Git」。
- 按一下 [Create new] (建立新意圖)。
- Conversational Agents 控制台
- 提供設定詳細資料:
- 輸入下列資訊:
- GitHub 連線的顯示名稱。
- Git 存放區網址 (例如:
https://github.com/<path-to-repo>.git)。 - 新增代理會互動的 Git 分支。按一下分支版本旁的星號圖示,即可將該分支版本設為預設分支版本。
- 存取權杖密鑰,也就是您建立的密鑰版本,格式為
projects/*/secrets/*/versions/*(特定版本) 或projects/*/secrets/*/versions/latest(最新版本)。
- 點選「連線」。
- Git 服務可能需要一分鐘才會準備就緒。控制台會顯示通知。
- 輸入下列資訊:
推送及還原
設定完成後,即可將代理推送至 Git,或從 Git 提取代理。
「Push」(推送) 按鈕可用於匯出代理,並將修訂版本推送至 Git 分支版本下拉式選單中選取的分支版本。這項修訂版本會包含整個代理程式,而非特定變更,且會刪除存放區中的所有現有檔案。
具備 Dialogflow 讀取者角色的使用者可以推送至 Git 存放區。為避免不必要的推送,請使用唯讀個人存取權杖設定這些代理程式。
「Restore」(還原) 按鈕可從「Git branch」(Git 分支) 下拉式選單中選取的分支提取代理資料,並從這項資料還原 Dialogflow CX 代理。這項操作會覆寫代理,與任何代理還原行為相同。
用途範例
以下範例說明多人如何使用這項功能,對正式版代理提出不同的代理變更。
假設代理使用下列 Git 分支:
- Prod:正式版代理的分支版本
- Dev1:代理開發分支版本
- Dev2:另一個用於代理開發的分支版本
使用者 1 想提議變更代理,並採取下列步驟:
- 將正式版代理匯出至新代理。
- 視需要變更這個代理副本。
- 測試變更。
- 將修改後的代理推送至 Dev1 分支版本。
- 建立合併要求,將變更合併至 Prod 分支版本。
使用者 2 想提議變更代理,並採取下列步驟:
- 將正式版代理匯出至新代理。
- 視需要變更這個代理副本。
- 測試變更。
- 將修改後的代理推送至 Dev2 分支版本。
- 建立合併要求,將變更合併至 Prod 分支版本。
使用者 3 審查兩位使用者的合併要求,並採取下列步驟:
- 解決衝突。
- 提交已核准的變更。
- 將正式版 Git 分支版本還原至正式版 Dialogflow CX 代理。