Imagen de Agent Crew con gws CLI (Google Workspace) y Python 3 + Pillow.
ghcr.io/scastanoh21/gws-agent:latest
- Python 3 + Pillow — procesamiento de imágenes
- gws CLI v0.16.0 — operaciones con Google Docs, Sheets, Drive, Gmail, Calendar
- Entrypoint que convierte env vars → archivos de config de gws
En Team → Custom Agent Image:
ghcr.io/scastanoh21/gws-agent:latest
En Settings, añadir dos secrets:
| Key | Valor | IsSecret |
|---|---|---|
GWS_CLIENT_SECRET |
Contenido de client_secret.json |
Sí |
GWS_CREDENTIALS |
Contenido de credentials.json |
Sí |
# client_secret.json — copiar contenido de:
cat ~/.config/gws/client_secret.json
# credentials.json — descifrar credenciales completas:
python3 -c "
import base64, json, os
from cryptography.hazmat.primitives.ciphers.aead import AESGCM
key = base64.b64decode(open(os.path.expanduser('~/.config/gws/.encryption_key')).read().strip())
enc = open(os.path.expanduser('~/.config/gws/credentials.enc'), 'rb').read()
print(AESGCM(key).decrypt(enc[:12], enc[12:], None).decode())
"
gws auth exporttrunca los valores. El script de arriba los descifra completos.
npm install -g @googleworkspace/cli
gws auth setup # configura proyecto GCP + OAuth client
gws auth login # autenticación vía navegadorLa imagen se reconstruye automáticamente con GitHub Actions al hacer push a main de cualquiera de estos archivos:
Dockerfiledocker-entrypoint-gws.sh
Para lanzar un rebuild manual: Actions → Build Agent Image → Run workflow.
Solo cambiar los valores de GWS_CLIENT_SECRET y GWS_CREDENTIALS en Settings de Agent Crew. No requiere rebuild de la imagen.