feat(claude-code): add Claude Code devcontainer feature#1
Merged
Conversation
- `.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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
claude-codedevcontainer feature that installs the Claude Code CLI via npm, with support for latest and pinned versionsremoteEnv, and config persistence via bind mountsChanges
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-codeglobally, and verifies theclaudebinaryTests
test/claude-code/scenarios.json: Test matrix defininginstall_claude_code_latestandinstall_claude_code_specific_versionscenariostest/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 installationtest/claude-code/install_claude_code_specific_version.sh: Scenario script for pinned version installationCI/CD
.github/workflows/test-pr.yml: Addclaude-codepath filter to the change detection job so the test matrix runs when feature files changeDocumentation & Tooling
README.md: Add table of contents, Claude Code feature section (options, examples, API key setup, config persistence), and--no-cacheusage exampletest-local.sh: Add--no-cacheflag that prunes Docker build cache before running tests, enabling clean rebuilds during local debuggingTest plan
./test-local.sh claude-code— all scenarios pass./test-local.sh claude-code install_claude_code_specific_version— pinned version installs correctly./test-local.sh --no-cache claude-code— Docker cache is pruned and build succeedssrc/claude-code/and verify the GitHub Actions test job triggersGenerated with awf commit workflow