guia do usuário das ações

Neste guia, mostramos como utilizar a ferramenta de interface de linha de comando (CLI) dos gactions em cenários de uso comuns. Para ver informações sobre como criar ações de ponta a ponta, consulte a documentação de Build de ações de conversa.

Sincronização de projetos

Ao usar o SDK do Actions, os gactions são sua ferramenta para sincronizar projetos de ação entre o Console do Actions e o sistema de arquivos local.

As operações gactions pull exportam um projeto do Console do Actions para o sistema de arquivos local, e as operações gactions push enviam um projeto do sistema de arquivos local para o Console do Actions.

Fazer o download de ações no Console do Actions

Execute gactions pull para copiar a configuração de um projeto do Actions para o sistema de arquivos local.

O project-id do projeto que você quer copiar pode ser transmitido na linha de comando ou escrito no arquivo settings/settings.yaml. Se ambos estiverem presentes, a CLI dá precedência ao valor transmitido como uma opção.

mkdir -p myAction/sdk
cd myAction/sdk
gactions pull --project-id my-project-id
Pulling your project files from Draft for a project id: "my-project-id"
✔ Done. You should see the files written in path/to/myAction/sdk
ls -l
total 8
drwxr-x---  3 user  primarygroup   96 May  7 10:00 actions
drwxr-x---  4 user  primarygroup  128 May  7 10:00 custom
-rw-r-----  1 user  primarygroup   15 May  7 10:00 manifest.yaml
drwxr-x---  3 user  primarygroup   96 May  7 10:00 settings
vi settings/settings.yaml
// change projectId to "my-other-project-id"
gactions pull
Pulling your project files from Draft for a project id: "my-other-project-id"
path/to/myAction/sdk/manifest.yaml already exists. Would you like to overwrite it?. [y/n]
...
✔ Done. You should see the files written in path/to/myAction/sdk

O snippet de código acima mostra como extrair uma ação do rascunho do projeto. Também é possível extrair de uma versão específica da ação. Uma versão representa uma cópia enviada do seu projeto do Actions, que pode ser implantada em um canal de lançamento.

A flag --version-id especifica qual versão extrair.

mkdir -p myAction/sdk
cd myAction/sdk
gactions pull --project-id my-project-id --version-id my-version-id
Pulling version "my-version-id" of the project "my-project-id" from Actions Console...
✔ Done. You should see the files written in path/to/myAction/sdk
ls -l
total 8
drwxr-x---  3 user  primarygroup   96 May  7 10:00 actions
drwxr-x---  4 user  primarygroup  128 May  7 10:00 custom
-rw-r-----  1 user  primarygroup   15 May  7 10:00 manifest.yaml
drwxr-x---  3 user  primarygroup   96 May  7 10:00 settings

Use a sinalização --force se quiser substituir cópias locais de arquivos sem precisar de confirmação. Use a sinalização --clean para remover qualquer um dos arquivos locais que não estejam presentes no rascunho ou na versão remoto. Use-os juntos para ter uma cópia exata do projeto do Console do Actions.

touch local_file.txt
gactions pull --force
Pulling your project files from Draft for a project id: "my-project-id"
[WARNING] 2020/05/07 17:34:32 path/to/myAction/sdk/local_file.txt is not present in the draft of your Action. To remove, run pull with --clean flag.
✔ Done. You should see the files written in path/to/myAction/sdk
gactions pull --force --clean
Pulling your project files from Draft for a project id: "my-project-id"
[WARNING] 2020/05/07 17:43:44 path/to/myAction/sdk/local_file.txt is not present in the draft of your Action. Removing path/to/myAction/sdk/local_file.txt.
✔ Done. You should see the files written in path/to/myAction/sdk

Enviar ações para o rascunho do projeto do Console do Actions

Execute gactions push para enviar as mudanças do sistema de arquivos local para o rascunho da ação no console. Esse processo pode ser útil durante o desenvolvimento para conferir as mudanças refletidas no Console do Actions, sem afetar a versão exibida para testes.

gactions push
Pushing your project files to your Actions console draft for a project id: "my-project-id". This may take a few minutes.
Sending configuration files
Waiting for server to respond.
✔ Done. You can now navigate to the Actions Console: https://console.actions.google.com/project/my-project-id/overview to view your project. If you want to test your changes in the simulator, run "gactions deploy preview"

Importar um projeto já existente de um sistema de gerenciamento de código-fonte

Se você quiser trabalhar em um projeto atual a partir de uma revisão em um sistema de controle de versões:

  1. Confira a revisão de destino (depende do sistema).
  2. Substitua o valor de projectId no objeto settings.yaml do projeto.
  3. Se quiser, execute gactions push para copiar os arquivos de configuração locais para o projeto do Actions.
git clone https://github.com/my/repo.git
Cloning into 'repo'...
remote: Enumerating objects: 10, done.
remote: Counting objects: 100% (10/10), done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 51 (delta 3), reused 3 (delta 1), pack-reused 41
Receiving objects: 100% (51/51), 36.86 KiB | 3.69 MiB/s, done.
Resolving deltas: 100% (11/11), done.
cd repo/sdk/
vi settings/settings.yaml
// change the value of `projectId`
gactions push

Listar versões

Execute gactions versions list para ver detalhes sobre as versões da sua ação. Para saber mais sobre os status da versão, consulte a referência de Estado.

gactions versions list
Version         Status          Last Modified By        Modified On     
1           Created     your-email@your-domain.com  2020-09-28 20:22:04

Se o status da implantação indicar "Falha na criação", você pode ver mais detalhes sobre isso no Console, na seção "Versão".

Implantar projetos

O comando gactions deploy permite implantar seu projeto para teste no simulador do Actions ou implantar em canais de lançamento Alfa, Beta ou de produção.

Visualizar no simulador

Execute gactions deploy preview para implantar a ação na visualização, o que permite testar a ação no console, sem realmente atualizar a versão do projeto ou afetar outros desenvolvedores. Em outras palavras, nenhuma das mudanças feitas no sistema de arquivos local é propagada para as versões implantadas do projeto do Actions, mas elas estão disponíveis para teste em uma versão de pré-lançamento.

gactions deploy preview
Deploying your project files to your Actions console preview for a project id: "my-project". This may take a few minutes.
Sending configuration files
Waiting for server to respond.
✔ Done. You can now navigate to the Actions Console simulator to test your changes: http://console.actions.google.com/project/my-project/simulator?disableAutoPreview

Criar versões

Execute gactions deploy para criar versões para canais Alfa/Beta/prod que podem ser gerenciadas na seção Implantar no Console do Actions. Use-o para testar as candidatas a lançamento da sua Ação com os canais Alfa e/ou Beta e mova o candidato a lançamento para produção quando estiver satisfeito com o feedback.

gactions deploy alpha
Deploying your project files to a actions.channels.Alpha channel for a project id: "my-project-id"
Sending configuration files
Waiting for server to respond.
✔ Done. Your Action was deployed to actions.channels.Alpha channel. You can check status of deployment in the Actions Console.

Como listar canais de lançamento

Execute gactions release-channels list para visualizar detalhes sobre os canais de lançamento da sua Ação. Use esse comando para identificar a versão implantada ou pendente em cada canal.

gactions release-channels list
Release Channel             Current Version             Pending Version
alpha                   1                     N/A

Vinculação de contas

Os comandos gactions encrypt e gactions decrypt permitem administrar as chaves secretas do cliente do OAuth2. Estes comandos são específicos para a vinculação de contas.

Criptografar chaves secretas do cliente de vinculação de contas do OAuth2

Execute gactions encrypt para adicionar chaves secretas do cliente com segurança aos fluxos de vinculação de conta OAuth2 com código de autenticação ou para criptografar as chaves secretas atuais com uma nova chave de criptografia.

gactions encrypt
Write your secret: *********************
Encrypting your client secret
path/to/myAction/sdk/settings/accountLinkingSecret.yaml already exists. Would you like to overwrite it?. [y/n]
y
✔ Done. Encrypted secret was written to path/to/myAction/sdk/settings/accountLinkingSecret.yaml

Acessar o valor de texto simples de chaves secretas criptografadas de vinculação de conta.

Execute gactions decrypt se for necessário acessar temporariamente o valor em texto simples do secret do projeto. O comando mostra o valor em um arquivo de texto de sua escolha. Recomendamos que o arquivo de destino esteja fora da pasta raiz do projeto para evitar vazamentos acidentais do valor em texto simples.

gactions decrypt ../../burn_after_read.txt
Decrypting your client secret
✔ Done. Check path/above/myActions/burn_after_read.txt to find decrypted client secret.
vi ../../burn_after_read.txt
rm ../../burn_after_read.txt