Skip to content

feat(claude-code): add Claude Code devcontainer feature#1

Merged
pocky merged 1 commit into
mainfrom
feature/claude-code
Feb 25, 2026
Merged

feat(claude-code): add Claude Code devcontainer feature#1
pocky merged 1 commit into
mainfrom
feature/claude-code

Conversation

@pocky
Copy link
Copy Markdown
Contributor

@pocky pocky commented Feb 25, 2026

Summary

  • Add a new claude-code devcontainer feature that installs the Claude Code CLI via npm, with support for latest and pinned versions
  • Document the feature in README with usage examples, API key configuration via remoteEnv, and config persistence via bind mounts
  • Wire the feature into CI/CD and local test tooling so it gets tested on every PR

Changes

Feature Source

  • src/claude-code/devcontainer-feature.json: Feature manifest declaring options (version), Node.js prerequisite, and IDE extensions (VS Code + JetBrains)
  • src/claude-code/install.sh: Installation script that validates npm availability, installs @anthropic-ai/claude-code globally, and verifies the claude binary

Tests

  • test/claude-code/scenarios.json: Test matrix defining install_claude_code_latest and install_claude_code_specific_version scenarios
  • test/claude-code/test.sh: Shared test runner with common validation logic (binary exists, version output, etc.)
  • test/claude-code/install_claude_code_latest.sh: Scenario script for latest version installation
  • test/claude-code/install_claude_code_specific_version.sh: Scenario script for pinned version installation

CI/CD

  • .github/workflows/test-pr.yml: Add claude-code path filter to the change detection job so the test matrix runs when feature files change

Documentation & Tooling

  • README.md: Add table of contents, Claude Code feature section (options, examples, API key setup, config persistence), and --no-cache usage example
  • test-local.sh: Add --no-cache flag that prunes Docker build cache before running tests, enabling clean rebuilds during local debugging

Test plan

  • Run ./test-local.sh claude-code — all scenarios pass
  • Run ./test-local.sh claude-code install_claude_code_specific_version — pinned version installs correctly
  • Run ./test-local.sh --no-cache claude-code — Docker cache is pruned and build succeeds
  • Open a PR touching src/claude-code/ and verify the GitHub Actions test job triggers

Generated with awf commit workflow

- `.github/workflows/test-pr.yml`: Add claude-code path filter for change detection
- `README.md`: Add Claude Code feature docs with options, API key, and config persistence sections
- `src/claude-code/devcontainer-feature.json`: Add feature manifest with version option and IDE extensions
- `src/claude-code/install.sh`: Add npm-based installation script with version pinning support
- `test-local.sh`: Add --no-cache flag to prune Docker build cache before tests
- `test/claude-code/install_claude_code_latest.sh`: Add test scenario for latest version install
- `test/claude-code/install_claude_code_specific_version.sh`: Add test scenario for pinned version install
- `test/claude-code/scenarios.json`: Add test scenario definitions
- `test/claude-code/test.sh`: Add shared test validation logic
@pocky pocky marked this pull request as ready for review February 25, 2026 22:59
@pocky pocky merged commit a17d05c into main Feb 25, 2026
4 checks passed
@pocky pocky deleted the feature/claude-code branch February 25, 2026 23:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant