Files
claude-code-action/base-action/CLAUDE.md
Benny Yen 1d4650c102 fix: update test workflow reference in test-local.sh (#564)
* fix: update test workflow reference in test-local.sh

Change workflow file from test-action.yml to test-base-action.yml

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* docs(CLAUDE): update test workflow reference in CLAUDE.md

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-09-11 07:25:16 -07:00

1.9 KiB

CLAUDE.md

Common Commands

Development Commands

  • Build/Type check: bun run typecheck
  • Format code: bun run format
  • Check formatting: bun run format:check
  • Run tests: bun test
  • Install dependencies: bun install

Action Testing

  • Test action locally: ./test-local.sh
  • Test specific file: bun test test/prepare-prompt.test.ts

Architecture Overview

This is a GitHub Action that allows running Claude Code within GitHub workflows. The action consists of:

Core Components

  1. Action Definition (action.yml): Defines inputs, outputs, and the composite action steps
  2. Prompt Preparation (src/index.ts): Runs Claude Code with specified arguments

Key Design Patterns

  • Uses Bun runtime for development and execution
  • Named pipes for IPC between prompt input and Claude process
  • JSON streaming output format for execution logs
  • Composite action pattern to orchestrate multiple steps
  • Provider-agnostic design supporting Anthropic API, AWS Bedrock, and Google Vertex AI

Provider Authentication

  1. Anthropic API (default): Requires API key via anthropic_api_key input
  2. AWS Bedrock: Uses OIDC authentication when use_bedrock: true
  3. Google Vertex AI: Uses OIDC authentication when use_vertex: true

Testing Strategy

Local Testing

  • Use act tool to run GitHub Actions workflows locally
  • test-local.sh script automates local testing setup
  • Requires ANTHROPIC_API_KEY environment variable

Test Structure

  • Unit tests for configuration logic
  • Integration tests for prompt preparation
  • Full workflow tests in .github/workflows/test-base-action.yml

Important Technical Details

  • Uses mkfifo to create named pipes for prompt input
  • Outputs execution logs as JSON to /tmp/claude-execution-output.json
  • Timeout enforcement via timeout command wrapper
  • Strict TypeScript configuration with Bun-specific settings