Dialogflow CX 与 GitHub 集成。 此集成可让您轻松将代理导出到 JSON 以推送到 GitHub,以及从 GitHub 拉取代理恢复。 推送到 GitHub 的 JSON 导出格式是导出的代理的展开后 ZIP 文件内容。
借助此功能,您可以利用 GitHub 源代码控制功能,例如:
限制
存在以下限制:
- GitHub 对每小时的请求数量设有速率限制(非企业帐号为 5, 000 个,企业帐号为 15,000 个)。如果您的代理推送超出此限制,Dialogflow 控制台将报告速率限制错误。 您可以在一小时后重新尝试推送。
- GitHub API 对一次提交中可更新的文件数量有限制。如果文件数量超过 500,您可能无法从 Dialogflow 推送到 GitHub。在这种情况下,您可以将代理
导出为 ZIP 文件,并使用机器上的 Git CLI 将代理文件推送到 GitHub。此限制将在以后的 Dialogflow 版本中得到解决。 - 不支持专用访问自托管代码库,因为 Dialogflow 无法访问这些代码库。
- 除了代理导出所导出的代理文件,GitHub 代码库不能包含任何其他文件。代码库中的任何其他文件都将在每次推送时移除。
配置
如需配置此集成,请执行以下操作:
- 打开 Dialogflow CX 控制台。
- 选择您的 Google Cloud 项目。
- 选择您的代理。
- 点击管理标签页。
- 点击测试和部署部分中的 Git。
- 点击添加 Git 集成,系统会打开配置对话框。
- 输入以下内容:
- GitHub 连接的显示名称。
- GitHub 代码库网址(例如:
https://api.github.com/repos/<repository_owner>/<repository_name>
)。 - 添加将与您的代理交互的 GitHub 分支。您可以点击某个分支旁边的星形图标将其指定为默认分支。
- GitHub 个人令牌一经设置便无法查看,仅支持更新。如果您使用的是精细的个人访问令牌,则需要以下权限访问权限:
- Repository Permissions > Contents:读取和写入
- Repository Permissions > Metadata:只读(应在选择 Contents 权限后自动选择)
- 点击连接。
您可以随时点击修改图标来更改此配置。
推送和恢复
配置完成后,您可以将代理推送/拉取到 GitHub。
推送按钮用于导出代理,并提交到 Git 分支下拉菜单中选择的 GitHub 分支。此提交将包括整个代理而不是特定更改,并且将删除代码库中的任何现有文件。
对于新的代码库,请确保至少有一项来自 GitHub 的提交,然后再使用 Dialogflow 控制台中的推送选项。
具有 Dialogflow Reader 角色的用户可以推送到 GitHub 代码库。为防止不必要的推送,请使用只读个人访问令牌配置这些代理。
恢复按钮用于从 Git 分支下拉菜单中选择的 GitHub 分支拉取代理数据,并根据这些数据恢复 Dialogflow 代理。这将覆盖您的代理,具体方式与任何代理恢复的行为相同。
用例示例
以下示例说明了如何让多人使用此功能,向生产代理提出不同的代理更改建议。
假设您的代理使用以下 GitHub 分支:
- Prod:生产代理的分支
- Dev1:用于代理开发的分支
- Dev2:用于代理开发的另一个分支
用户 1 想提议更改代理,并执行以下步骤:
- 将生产代理导出到新的代理。
- 对此代理副本进行所需的更改。
- 测试更改。
- 将更改后的代理推送到 Dev1 分支。
- 创建针对 Prod 分支的合并请求。
用户 2 想提议更改代理,并执行以下步骤:
- 将生产代理导出到新的代理。
- 对此代理副本进行所需的更改。
- 测试更改。
- 将更改后的代理推送到 Dev2 分支。
- 创建针对 Prod 分支的合并请求。
用户 3 查看了两位用户的合并请求,并采取了以下步骤:
- 解决冲突。
- 提交已获批准的更改。
- 将生产 GitHub 分支恢复到生产 Dialogflow 代理。