Exportação/restauração do GitHub

O Dialogflow CX se integra ao GitHub. Essa integração facilita a exportação do agente para JSON para um envio ao GitHub e a extração do GitHub para uma restauração de agente. O formato exportado JSON enviado para o GitHub é o conteúdo do arquivo ZIP expandido do agente exportado.

O uso desse recurso permite que você aproveite os recursos de controle de origem do GitHub, como:

Limitações

Considere as seguintes limitações:

  • O GitHub tem um limite de taxa para o número de solicitações por hora (5.000 para contas não corporativas e 15.000 para contas empresariais). Se o push do agente exceder esse limite, o console do Dialogflow informará o erro de limite de taxa. É possível enviar o push novamente após uma hora.
  • As APIs do GitHub têm uma limitação quanto ao número de arquivos que podem ser atualizados em uma única confirmação. Se o número de arquivos ultrapassar 500, talvez não seja possível enviar o Dialogflow para o GitHub. Nesses casos, é possível exportar
    o agente como um ZIP e usar a CLI do Git na máquina para enviar os arquivos do agente ao GitHub. Essa limitação será resolvida em uma versão posterior do Dialogflow.
  • Os repositórios de acesso particular auto-hospedados não são suportados, porque o Dialogflow não pode acessar esses repositórios.
  • O repositório do GitHub não pode conter nenhum arquivo além dos arquivos do agente exportados pela exportação do agente. Todos os outros arquivos no repositório serão removidos em cada push.

Configuração

Para configurar essa integração:

  1. Abra o Console do Dialogflow CX.
  2. Escolha seu projeto do Google Cloud.
  3. Selecione seu agente.
  4. Clique na guia Gerenciar.
  5. Clique em Git na seção Testing & Deployment.
  6. Clique em Add Git integration para abrir uma caixa de diálogo de configuração.
  7. Insira o seguinte:
    • Nome de exibição da conexão do GitHub.
    • URL do repositório do GitHub (por exemplo: https://api.github.com/repos/<repository_owner>/<repository_name>).
    • Adicione ramificações do GitHub com as quais seu agente vai interagir. É possível designar uma ramificação como padrão clicando no ícone de estrela ao lado dela.
    • O token pessoal do GitHub não poderá ser visualizado depois de definido. Somente as atualizações são aceitas. Se você usar um token de acesso pessoal detalhado, serão necessárias as seguintes permissões:
      • Permissões do repositório > Conteúdo: leitura e gravação
      • Permissões do repositório > Metadados: somente leitura (precisa ser selecionado automaticamente após a permissão de conteúdo).
  8. Clique em Conectar.

Essa configuração pode ser alterada a qualquer momento clicando no ícone de edição.

Enviar e restaurar

Depois de configurado, é possível enviar/extrair o agente de/para o GitHub.

O botão Push é usado para exportar o agente e fazer uma confirmação na ramificação do GitHub selecionada na lista suspensa do Git. Essa confirmação será composta pelo agente inteiro, não por mudanças específicas, e excluirá os arquivos existentes no repositório.

Para novos repositórios, verifique se há pelo menos uma confirmação do GitHub antes de usar a opção de push no console do Dialogflow.

Os usuários com papéis de leitor do Dialogflow podem fazer push para repositórios do GitHub. Para evitar push indesejados, configure esses agentes com tokens de acesso pessoal somente leitura.

O botão Restore é usado para extrair os dados do agente da ramificação do GitHub selecionada na lista suspensa do Git e restaurar o agente do Dialogflow a partir desses dados. Isso substituirá seu agente da mesma maneira que qualquer restauração de agente.

Exemplo de caso de uso:

O exemplo a seguir ilustra como esse recurso pode ser usado por várias pessoas para propor diferentes mudanças para um agente de produção.

O agente usa estas ramificações do GitHub:

  • Prod: a ramificação do agente de produção
  • Dev1: ramificação para desenvolvimento de agentes
  • Dev2: outro branch para o desenvolvimento de agentes

O usuário 1 quer propor mudanças no agente e segue estas etapas:

  1. Exporte o agente de produção para um novo agente.
  2. Faça as alterações desejadas nessa cópia do agente.
  3. Teste as mudanças.
  4. Envie o agente alterado para a ramificação Dev1.
  5. Crie uma solicitação de mesclagem para a ramificação Prod.

O usuário 2 quer propor mudanças no agente e segue estas etapas:

  1. Exporte o agente de produção para um novo agente.
  2. Faça as alterações desejadas nessa cópia do agente.
  3. Teste as mudanças.
  4. Envie o agente alterado para a ramificação Dev2.
  5. Crie uma solicitação de mesclagem para a ramificação Prod.

O usuário 3 analisa as solicitações de mesclagem dos dois usuários e segue estas etapas:

  1. Resolver conflitos.
  2. Confirma as mudanças aprovadas.
  3. Restaura a ramificação de produção do GitHub para o agente de produção do Dialogflow.