mirror of
https://github.com/anthropics/claude-code-action.git
synced 2026-01-22 14:24:13 +08:00
* 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>
1.9 KiB
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
- Action Definition (
action.yml): Defines inputs, outputs, and the composite action steps - 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
- Anthropic API (default): Requires API key via
anthropic_api_keyinput - AWS Bedrock: Uses OIDC authentication when
use_bedrock: true - Google Vertex AI: Uses OIDC authentication when
use_vertex: true
Testing Strategy
Local Testing
- Use
acttool to run GitHub Actions workflows locally test-local.shscript automates local testing setup- Requires
ANTHROPIC_API_KEYenvironment 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
mkfifoto create named pipes for prompt input - Outputs execution logs as JSON to
/tmp/claude-execution-output.json - Timeout enforcement via
timeoutcommand wrapper - Strict TypeScript configuration with Bun-specific settings