GitHub 导出/恢复

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 代码库不能包含任何其他文件。代码库中的任何其他文件都将在每次推送时移除。

配置

如需配置此集成,请执行以下操作:

  1. 打开 Dialogflow CX 控制台
  2. 选择您的 Google Cloud 项目。
  3. 选择您的代理。
  4. 点击管理标签页。
  5. 点击测试和部署部分中的 Git
  6. 点击添加 Git 集成,系统会打开配置对话框。
  7. 输入以下内容:
    • GitHub 连接的显示名称。
    • GitHub 代码库网址(例如:https://api.github.com/repos/<repository_owner>/<repository_name>)。
    • 添加将与您的代理交互的 GitHub 分支。您可以点击某个分支旁边的星形图标将其指定为默认分支。
    • GitHub 个人令牌一经设置便无法查看,仅支持更新。如果您使用的是精细的个人访问令牌,则需要以下权限访问权限:
      • Repository Permissions > Contents:读取和写入
      • Repository Permissions > Metadata:只读(应在选择 Contents 权限后自动选择)
  8. 点击连接

您可以随时点击修改图标来更改此配置。

推送和恢复

配置完成后,您可以将代理推送/拉取到 GitHub。

推送按钮用于导出代理,并提交到 Git 分支下拉菜单中选择的 GitHub 分支。此提交将包括整个代理而不是特定更改,并且将删除代码库中的任何现有文件。

对于新的代码库,请确保至少有一项来自 GitHub 的提交,然后再使用 Dialogflow 控制台中的推送选项。

具有 Dialogflow Reader 角色的用户可以推送到 GitHub 代码库。为防止不必要的推送,请使用只读个人访问令牌配置这些代理。

恢复按钮用于从 Git 分支下拉菜单中选择的 GitHub 分支拉取代理数据,并根据这些数据恢复 Dialogflow 代理。这将覆盖您的代理,具体方式与任何代理恢复的行为相同。

用例示例

以下示例说明了如何让多人使用此功能,向生产代理提出不同的代理更改建议。

假设您的代理使用以下 GitHub 分支:

  • Prod:生产代理的分支
  • Dev1:用于代理开发的分支
  • Dev2:用于代理开发的另一个分支

用户 1 想提议更改代理,并执行以下步骤:

  1. 将生产代理导出到新的代理。
  2. 对此代理副本进行所需的更改。
  3. 测试更改。
  4. 将更改后的代理推送到 Dev1 分支。
  5. 创建针对 Prod 分支的合并请求。

用户 2 想提议更改代理,并执行以下步骤:

  1. 将生产代理导出到新的代理。
  2. 对此代理副本进行所需的更改。
  3. 测试更改。
  4. 将更改后的代理推送到 Dev2 分支。
  5. 创建针对 Prod 分支的合并请求。

用户 3 查看了两位用户的合并请求,并采取了以下步骤:

  1. 解决冲突。
  2. 提交已获批准的更改。
  3. 将生产 GitHub 分支恢复到生产 Dialogflow 代理。