/start-11-2.es
Lesson command
$ npx -y skills add minicoohei/ai-agent-camp --agent claude-codeHow it fires
How this command gets triggered: by you, by Claude, or both.
- Fires itselfClaude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/start-11-2.es
Context preview
What this command does when you run it.
Lesson command
Command definition
start-11-2.es.mddescription: "Lesson command"
chapter: "courses/aiagent/lesson03-core/module11-github-actions"
prerequisites: ["start-11-1"]
duration: "~35 min"
level: "intermediate"
tags: ["github-actions", "secrets", "google-api"]
nonInteractiveMode: incompatible
🎓 Lesson 11-2: Pruebas automatizadas y despliegue
📍 Lo que hara en esta sesion
**Lección 11-2: GitHub Actions e integración con API**!
| Elemento | Contenido | |------|------| | Objetivo | Construir pipelines de obtencion y procesamiento automatico de datos usando Secrets en GitHub Actions para integracion con Google API | | Duracion | ~35 min | | Habilidades utilizadas | GitHub Actions, Repository Secrets, Google API | | Requisitos previos | Leccion 11-1 completada, repositorio GitHub | | Pagina del curso | [Module 11: GitHub Actions](https://ai-agent.camp/es/course/module-11) como referencia paralela |
**Flujo de la sesion:** 1. Configurar Repository Secrets 2. Llamar APIs desde flujos de trabajo 3. Ejecutar obtención y procesamiento automático de datos
Al final de esta sesion, tendra un pipeline seguro de integracion API usando Secrets.
> **💡 Consejo**: Si la respuesta de la IA se detiene a mitad de camino, escriba "por favor continue" o "siga adelante" para reanudar. Este es un comportamiento de Cursor, no un mal funcionamiento.
---
🎯 Verificacion de preparacion
Primero verifiquemos que todo este listo.
**Configuracion de AskQuestion:**
{
"title": "🎯 Verificacion previa a la sesion",
"questions": [{
"id": "readiness",
"prompt": "Esta listo/a?",
"options": [
{"id": "ready", "label": "Listo! Comencemos"},
{"id": "check_prereq", "label": "Verificar requisitos previos"},
{"id": "view_html", "label": "Ver primero la pagina del curso"},
{"id": "different_lesson", "label": "Ir a otra leccion"}
]
}]
}(ready → Ir al Step 1) (check_prereq → Ejecutar verificacion de requisitos previos) (view_html → Mostrar ruta de la pagina del curso) (different_lesson → Mostrar lista de modulos)
---
🚀 Step 1: Configure Repository Secrets
Utilice AskQuestion para elegir "Continuar / Solo ver el ejemplo / Omitir".
**Configuracion de AskQuestion:**
{
"title": "🚀 Step 1: Configuración de Repository Secrets",
"questions": [{
"id": "step_action",
"prompt": "Que desea hacer con este paso?",
"options": [
{"id": "practice", "label": "Continuar"},
{"id": "review", "label": "Solo ver el ejemplo"},
{"id": "skip", "label": "Omitir"}
]
}]
}**Indicaciones tras la seleccion:** Entrada:
Por favor, explique el procedimiento de configuración de GitHub Repository Secrets.
Ubicación de configuración: Repositorio > Settings > Secrets and variables > Actions
Se configurarán los siguientes Secrets:
- GOOGLE_CREDENTIALS (clave de cuenta de servicio)
- SLACK_WEBHOOK (para notificaciones)
**Resultado esperado:** Se explican los pasos de configuracion de Secrets. La configuracion real se realiza en la interfaz web de GitHub.
---
🚀 Step 2: Google Authentication Workflow
Utilice AskQuestion para elegir "Continuar / Solo ver el ejemplo / Omitir".
**Configuracion de AskQuestion:**
{
"title": "🚀 Step 2: Flujo de trabajo de autenticación de Google",
"questions": [{
"id": "step_action",
"prompt": "Que desea hacer con este paso?",
"options": [
{"id": "practice", "label": "Continuar"},
{"id": "review", "label": "Solo ver el ejemplo"},
{"id": "skip", "label": "Omitir"}
]
}]
}**Indicaciones tras la seleccion:** Entrada:
> **Recomendación**: Si es posible, priorice Workload Identity Federation (OIDC). > Al usar claves de cuenta de servicio, minificar el JSON en una sola línea antes de guardarlo en Secrets lo hace menos propenso a errores.
Por favor, cree el archivo .github/workflows/google-auth.yml con el siguiente contenido:
name: Google API Integration
on:
workflow_dispatch:
inputs:
operation:
description: 'Operación a ejecutar'
required: true
default: 'test'
type: choice
options:
- test
- fetch_data
- update_sheet
jobs:
google-operation:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install dependencies
run: |
uv add google-auth google-auth-oauthlib google-api-python-client
- name: Create credentials file
run: |
printf '%s' '${{ secrets.GOOGLE_CREDENTIALS }}' > credentials.json
chmod 600 credentials.json
- name: Test Google auth
if: github.event.inputs.operation == 'test'
run: |
python -c "
from google.oauth2 import service_account
import json
try:
creds = service_account.Credentials.from_service_account_file('credentials.json')
print('¡Autenticación de Google exitosa!')
print(f'Cuenta de servicio: {creds.service_account_email}')
except Exception as e:
print(f'Error de autenticación: {e}')
exit(1)
"
- name: Cleanup credentials
if: always()
run: rm -f credentials.json**Resultado esperado:** Se crea un flujo de trabajo para autenticacion segura de Google.
---
🚀 Step 3: Data Retrieval Pipeline
Utilice AskQuestion para elegir "Continuar / Solo ver el ejemplo / Omitir".
**Configuracion de AskQuestion:**
{
"title": "🚀 Step 3: Pipeline de obtención de datos",
"questions": [{
"id": "step_action",
"prompt": "Que desea hacer con este paso?",
"options": [
{"id": "practice", "label": "Continuar"},
{"id": "review", "label": "Solo ver el ejemplo"},
{"id": "skip", "label": "Omitir"}
]
}]
}**Indicaciones tras la seleccio
Read more
description: "Lesson command" chapter: "courses/aiagent/lesson03-core/module11-github-actions" prerequisites: ["start-11-1"] duration: "~35 min" level: "intermediate" tags: ["github-actions", "secrets", "google-api"] nonInteractiveMode: incompatible
🎓 Lesson 11-2: Pruebas automatizadas y despliegue
📍 Lo que hara en esta sesion
**Lección 11-2: GitHub Actions e integración con API**!
| Elemento | Contenido | |------|------| | Objetivo | Construir pipelines de obtencion y procesamiento automatico de datos usando Secrets en GitHub Actions para integracion con Google API | | Duracion | ~35 min | | Habilidades utilizadas | GitHub Actions, Repository Secrets, Google API | | Requisitos previos | Leccion 11-1 completada, repositorio GitHub | | Pagina del curso | [Module 11: GitHub Actions](https://ai-agent.camp/es/course/module-11) como referencia paralela |
**Flujo de la sesion:** 1. Configurar Repository Secrets 2. Llamar APIs desde flujos de trabajo 3. Ejecutar obtención y procesamiento automático de datos
Al final de esta sesion, tendra un pipeline seguro de integracion API usando Secrets.
> **💡 Consejo**: Si la respuesta de la IA se detiene a mitad de camino, escriba "por favor continue" o "siga adelante" para reanudar. Este es un comportamiento de Cursor, no un mal funcionamiento.
---
🎯 Verificacion de preparacion
Primero verifiquemos que todo este listo.
**Configuracion de AskQuestion:**
{
"title": "🎯 Verificacion previa a la sesion",
"questions": [{
"id": "readiness",
"prompt": "Esta listo/a?",
"options": [
{"id": "ready", "label": "Listo! Comencemos"},
{"id": "check_prereq", "label": "Verificar requisitos previos"},
{"id": "view_html", "label": "Ver primero la pagina del curso"},
{"id": "different_lesson", "label": "Ir a otra leccion"}
]
}]
}(ready → Ir al Step 1) (check_prereq → Ejecutar verificacion de requisitos previos) (view_html → Mostrar ruta de la pagina del curso) (different_lesson → Mostrar lista de modulos)
---
🚀 Step 1: Configure Repository Secrets
Utilice AskQuestion para elegir "Continuar / Solo ver el ejemplo / Omitir".
**Configuracion de AskQuestion:**
{
"title": "🚀 Step 1: Configuración de Repository Secrets",
"questions": [{
"id": "step_action",
"prompt": "Que desea hacer con este paso?",
"options": [
{"id": "practice", "label": "Continuar"},
{"id": "review", "label": "Solo ver el ejemplo"},
{"id": "skip", "label": "Omitir"}
]
}]
}**Indicaciones tras la seleccion:** Entrada:
Por favor, explique el procedimiento de configuración de GitHub Repository Secrets. Ubicación de configuración: Repositorio > Settings > Secrets and variables > Actions Se configurarán los siguientes Secrets: - GOOGLE_CREDENTIALS (clave de cuenta de servicio) - SLACK_WEBHOOK (para notificaciones)
**Resultado esperado:** Se explican los pasos de configuracion de Secrets. La configuracion real se realiza en la interfaz web de GitHub.
---
🚀 Step 2: Google Authentication Workflow
Utilice AskQuestion para elegir "Continuar / Solo ver el ejemplo / Omitir".
**Configuracion de AskQuestion:**
{
"title": "🚀 Step 2: Flujo de trabajo de autenticación de Google",
"questions": [{
"id": "step_action",
"prompt": "Que desea hacer con este paso?",
"options": [
{"id": "practice", "label": "Continuar"},
{"id": "review", "label": "Solo ver el ejemplo"},
{"id": "skip", "label": "Omitir"}
]
}]
}**Indicaciones tras la seleccion:** Entrada:
> **Recomendación**: Si es posible, priorice Workload Identity Federation (OIDC). > Al usar claves de cuenta de servicio, minificar el JSON en una sola línea antes de guardarlo en Secrets lo hace menos propenso a errores.
Por favor, cree el archivo .github/workflows/google-auth.yml con el siguiente contenido:
name: Google API Integration
on:
workflow_dispatch:
inputs:
operation:
description: 'Operación a ejecutar'
required: true
default: 'test'
type: choice
options:
- test
- fetch_data
- update_sheet
jobs:
google-operation:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install dependencies
run: |
uv add google-auth google-auth-oauthlib google-api-python-client
- name: Create credentials file
run: |
printf '%s' '${{ secrets.GOOGLE_CREDENTIALS }}' > credentials.json
chmod 600 credentials.json
- name: Test Google auth
if: github.event.inputs.operation == 'test'
run: |
python -c "
from google.oauth2 import service_account
import json
try:
creds = service_account.Credentials.from_service_account_file('credentials.json')
print('¡Autenticación de Google exitosa!')
print(f'Cuenta de servicio: {creds.service_account_email}')
except Exception as e:
print(f'Error de autenticación: {e}')
exit(1)
"
- name: Cleanup credentials
if: always()
run: rm -f credentials.json**Resultado esperado:** Se crea un flujo de trabajo para autenticacion segura de Google.
---
🚀 Step 3: Data Retrieval Pipeline
Utilice AskQuestion para elegir "Continuar / Solo ver el ejemplo / Omitir".
**Configuracion de AskQuestion:**
{
"title": "🚀 Step 3: Pipeline de obtención de datos",
"questions": [{
"id": "step_action",
"prompt": "Que desea hacer con este paso?",
"options": [
{"id": "practice", "label": "Continuar"},
{"id": "review", "label": "Solo ver el ejemplo"},
{"id": "skip", "label": "Omitir"}
]
}]
}**Indicaciones tras la seleccio
AI Agent Training for Non-Engineers - Complete Guide to Claude Code / Cursor / Codex ### ⚠️ Before you clone Official repository (maintained by the authors): Running AI agents from this repo grants them shell, file-write, and external-API permissions on your
Other commands on ai-agent-camp.
- /check-setup.en
Top-level alias — see lesson/check-setup.en.md for the full body.
Open command - /check-setup.es
Alias de nivel superior — el cuerpo completo está en lesson/check-setup.es.md.
Open command - /check-setup
Top-level alias — see lesson/check-setup.md for the full body.
Open command - /check-security.en
Lesson command
Open command - /check-security.es
Lesson command
Open command - /check-security
Lesson command
Open command

