guía del usuario de gactions

En esta guía, se muestra cómo usar la herramienta de la interfaz de línea de comandos (CLI) de gactions en situaciones de uso comunes. Para obtener información sobre cómo compilar acciones de extremo a extremo, consulta la documentación de compilación de acciones de conversación.

Sincronización de proyectos

Cuando usas el SDK de Actions, gactions es tu herramienta para sincronizar proyectos de acción entre la Consola de Actions y tu sistema de archivos local.

Las operaciones gactions pull exportan un proyecto de la Consola de Actions a tu sistema de archivos local, y las operaciones gactions push envían un proyecto de tu sistema de archivos local a la Consola de Actions.

Cómo descargar acciones de la Consola de Actions

Ejecuta gactions pull para copiar la configuración de un proyecto de Acciones en el sistema de archivos local.

El project-id del proyecto que deseas copiar se puede pasar en la línea de comandos o se puede escribir en el archivo settings/settings.yaml. Si ambos están presentes, la CLI da prioridad al valor que se pasa como opción.

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

En el fragmento de código anterior, se muestra cómo extraer una acción del borrador del proyecto. También es posible extraer de una versión específica de tu acción. Una versión representa una copia enviada de tu proyecto de acciones, que se puede implementar en un canal de versiones.

La marca --version-id especifica qué versión se extraerá.

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

Usa la marca --force si deseas reemplazar las copias locales del archivo sin que se te solicite confirmación. Usa la marca --clean para quitar cualquiera de los archivos locales que no estén presentes en la versión o el borrador remotos. Úsalos en conjunto para obtener una copia exacta del proyecto de la Consola de 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

Cómo enviar acciones al borrador del proyecto de la Consola de Actions

Ejecuta gactions push para enviar los cambios del sistema de archivos local al borrador de tu acción en la consola. Este proceso puede ser útil durante el desarrollo para ver los cambios reflejados en la Consola de Actions sin afectar la versión que se entrega para las pruebas.

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"

Importa un proyecto existente desde un sistema de administración de código fuente

Si quieres trabajar en un proyecto existente a partir de una revisión en un sistema de control de versión, haz lo siguiente:

  1. Comprueba la revisión objetivo (depende del sistema).
  2. Reemplaza el valor de projectId en el settings.yaml del proyecto.
  3. De manera opcional, ejecuta gactions push para copiar los archivos de configuración local en el proyecto de 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

Enumerar versiones

Ejecuta gactions versions list para ver los detalles de las versiones de tu Acción. Para obtener más información sobre los estados de la versión, consulta la referencia 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

Si el estado de tu implementación indica “Error de creación”, puedes obtener más detalles sobre ella en la sección “Versión” de Console.

Implementa proyectos

El comando gactions deploy te permite implementar tu proyecto para probarlo en el simulador de Actions o implementarlo en los canales de versiones alfa, beta o de producción.

Vista previa en el simulador

Ejecuta gactions deploy preview para implementar tu acción en una "vista previa", lo que te permite probarla en la consola, sin actualizar la versión del proyecto de acción ni afectar a otros desarrolladores. En otras palabras, ninguno de los cambios que realices en el sistema de archivos local se propagará a las versiones implementadas de tu proyecto de acciones, pero podrás probarlos en una versión preliminar.

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

Crea versiones

Ejecuta gactions deploy a fin de crear versiones de versiones para canales alfa, beta o de producción que puedes administrar a través de la sección Deploy en la Consola de Actions. Úsala para probar las versiones candidatas de tu acción con los canales alfa o beta, y moverlas a producción cuando estés conforme con los comentarios.

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.

Enumera los canales de versiones

Ejecuta gactions release-channels list para ver los detalles de los canales de versiones de tu acción. Puedes usar este comando para identificar la versión implementada o pendiente en cada canal.

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

Vinculación de las cuentas

Los comandos gactions encrypt y gactions decrypt te permiten administrar los secretos del cliente OAuth2. Estos comandos son específicos para la vinculación de cuentas.

Encripta los secretos del cliente de vinculación de cuentas de OAuth2

Ejecuta gactions encrypt para agregar de forma segura los secretos de cliente para los flujos de vinculación de cuentas de OAuth2 del código de Auth o encriptar los secretos existentes con una clave de encriptación nueva.

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

Accede al valor de texto sin formato de los secretos de vinculación de cuentas encriptados.

Ejecuta gactions decrypt si necesitas acceder de forma temporal al valor de texto sin formato del secreto del proyecto. El comando muestra el valor en el archivo de texto que elijas. Recomendamos que el archivo de destino esté fuera de la carpeta raíz del proyecto para evitar una filtración accidental del valor de texto sin formato.

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