Skip to content
Documentation
Command

/start-11-2.en

Lesson command

From plugin
ai-agent-camp
345200 skills8 agents200 commands
Install
$ npx -y skills add minicoohei/ai-agent-camp --agent claude-code

How 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.en

Context preview

What this command does when you run it.

Lesson command

Command definition

start-11-2.en.md
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: Automated Testing and Deployment

๐Ÿ“ What You'll Do

**Lesson 11-2: GitHub Actions and API Integration**!

| Item | Details | |------|------| | Goal | Build automated data retrieval and processing pipelines using Secrets in GitHub Actions for Google API integration | | Duration | ~35 min | | Skills used | GitHub Actions, Repository Secrets, Google API | | Prerequisites | Lesson 11-1 completed, GitHub repository | | Course page | [Module 11: GitHub Actions](https://ai-agent.camp/en/course/module-11) alongside this lesson |

**Session flow:** 1. Configure Repository Secrets 2. Call APIs from workflows 3. Execute automated data retrieval and processing

By the end of this session, you will have a secure API integration pipeline using Secrets.

> **๐Ÿ’ก Hint**: If the AI response stops midway, type "please continue" or "keep going" to resume. This is a Cursor behavior, not a malfunction.

---

๐ŸŽฏ Readiness Check

Let's first check that everything is ready.

**AskQuestion configuration:**

{
  "title": "๐ŸŽฏ Pre-session check",
  "questions": [{
    "id": "readiness",
    "prompt": "Are you ready?",
    "options": [
      {"id": "ready", "label": "Ready! Let's start"},
      {"id": "check_prereq", "label": "Check prerequisites"},
      {"id": "view_html", "label": "View the course page first"},
      {"id": "different_lesson", "label": "Go to a different lesson"}
    ]
  }]
}

(ready โ†’ Go to Step 1) (check_prereq โ†’ Run prerequisite verification) (view_html โ†’ Show course page path) (different_lesson โ†’ Display module list)

---

๐Ÿš€ Step 1: Configure Repository Secrets

Use AskQuestion to choose "Proceed / Just review the example / Skip".

**AskQuestion configuration:**

{
  "title": "๐Ÿš€ Step 1: Configure Repository Secrets",
  "questions": [{
    "id": "step_action",
    "prompt": "What would you like to do with this step?",
    "options": [
      {"id": "practice", "label": "Proceed"},
      {"id": "review", "label": "Just review the example"},
      {"id": "skip", "label": "Skip"}
    ]
  }]
}

**Guidance after selection:** Input:

Please explain the GitHub Repository Secrets configuration procedure.
Configuration location: Repository > Settings > Secrets and variables > Actions
The following Secrets are to be configured:
- GOOGLE_CREDENTIALS (service account key)
- SLACK_WEBHOOK (for notifications)

**Expected result:** The Secrets configuration procedure is explained. Actual configuration is done via the GitHub Web UI.

---

๐Ÿš€ Step 2: Google Authentication Workflow

Use AskQuestion to choose "Proceed / Just review the example / Skip".

**AskQuestion configuration:**

{
  "title": "๐Ÿš€ Step 2: Google Authentication Workflow",
  "questions": [{
    "id": "step_action",
    "prompt": "What would you like to do with this step?",
    "options": [
      {"id": "practice", "label": "Proceed"},
      {"id": "review", "label": "Just review the example"},
      {"id": "skip", "label": "Skip"}
    ]
  }]
}

**Guidance after selection:** Input:

> **Recommendation**: If possible, prioritize Workload Identity Federation (OIDC). > When using service account keys, minifying the JSON to a single line before saving to Secrets makes it less likely to break.

Please create the .github/workflows/google-auth.yml file with the following content:

name: Google API Integration

on:
  workflow_dispatch:
    inputs:
      operation:
        description: 'Operation to execute'
        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('Google authentication successful!')
              print(f'Service account: {creds.service_account_email}')
          except Exception as e:
              print(f'Authentication error: {e}')
              exit(1)
          "

      - name: Cleanup credentials
        if: always()
        run: rm -f credentials.json

**Expected result:** A workflow for secure Google authentication is created.

---

๐Ÿš€ Step 3: Data Retrieval Pipeline

Use AskQuestion to choose "Proceed / Just review the example / Skip".

**AskQuestion configuration:**

{
  "title": "๐Ÿš€ Step 3: Data Retrieval Pipeline",
  "questions": [{
    "id": "step_action",
    "prompt": "What would you like to do with this step?",
    "options": [
      {"id": "practice", "label": "Proceed"},
      {"id": "review", "label": "Just review the example"},
      {"id": "skip", "label": "Skip"}
    ]
  }]
}

**Guidance after selection:** Input:

Please create the .github/workflows/data-pipeline.yml file with the following content:

name: Data Pipeline

on:
  schedule:
    - cron: '0 1 * * *'  # Daily at 01:00 UTC
  workflow_dispatch:

jobs:
  data-pipeline:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/che
Read more
Ships withai-agent-camp

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

Get the whole plugin