Skip to content

Claude code feature#99

Merged
ejfine merged 17 commits intomainfrom
claude
Oct 9, 2025
Merged

Claude code feature#99
ejfine merged 17 commits intomainfrom
claude

Conversation

@ejfine
Copy link
Contributor

@ejfine ejfine commented Oct 9, 2025

Link to Issue or Message thread

#98

Why is this change necessary?

Add ability to enable Claude Code

How does this change address the issue?

Adds it as a question and if so, then adds it to the devcontainer installation

What side effects does this change have?

None

How is this change tested?

N/A

Other

Bumped some other library versions

Summary by CodeRabbit

  • New Features
    • Optional Claude CLI in the devcontainer, with VS Code extension and ANTHROPIC_API_KEY passthrough.
  • Improvements
    • Upgraded development tooling and templates (e.g., uv, pnpm, TypeScript, Pyright, AWS CLI, Node, extensions).
    • Added installer flag to allow uv to install Python, improving lockfile generation.
    • Excluded SVG files from certain pre-commit formatters.
  • Documentation
    • Updated setup steps to include the new installer flag; branding and typo fixes.
  • Chores
    • Adjusted ignore list, allowing certain test cache directories to be tracked.

@ejfine ejfine requested a review from Copilot October 9, 2025 13:34
@ejfine ejfine self-assigned this Oct 9, 2025
@coderabbitai
Copy link

coderabbitai bot commented Oct 9, 2025

Caution

Review failed

The pull request is closed.

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

Walkthrough

Project updates include version bumps for tooling and extensions, a new install_claude_cli option across copier templates and tests, conditional Anthropic env wiring in devcontainer, an added --allow-uv-to-install-python flag in the installer, README/CONTRIBUTING text tweaks, pre-commit exclusions for SVGs, and .gitignore cache entries removal.

Changes

Cohort / File(s) Summary
Devcontainer root config and installer
./.devcontainer/devcontainer.json, ./.devcontainer/install-ci-tooling.py
Devcontainer context hash updated; UV_VERSION bumped 0.8.22 → 0.9.0.
Template devcontainer configuration
template/.devcontainer/devcontainer.json.jinja-base, template/.devcontainer/docker-compose.yml.jinja-base, template/.devcontainer/install-ci-tooling.py.jinja-base
AWS CLI feature 1.1.1 → 1.1.2; Node feature 1.6.1 → 1.6.3; conditional Claude CLI feature and extension; conditional ANTHROPIC_API_KEY env; added --allow-uv-to-install-python flag and UV_PYTHON_PREFERENCE logic.
Context and copier schema
extensions/context.py, template/extensions/context.py.jinja-base, copier.yaml, template/copier.yml.jinja-base
Dependency versions bumped (uv, pnpm, pyright, etc.); added vue_eslint_parser_version; added install_claude_cli boolean question.
Tests and copier data
template/tests/copier_data/data1.yaml.jinja-base, template/tests/copier_data/data2.yaml.jinja-base, tests/copier_data/data1.yaml, tests/copier_data/data2.yaml
Added install_claude_cli field (false/true variants) to template and runtime test data.
Docs
README.md, template/README.md.jinja-base, CONTRIBUTING.md
Updated commands to include --allow-uv-to-install-python; capitalization fixes for GitHub; clarified lock generation invocation.
Pre-commit and lint/tooling text
./.pre-commit-config.yaml, _typos.toml, ruff-test.toml, pyproject.toml
Excluded .*.svg from end-of-file-fixer and xml-formatter; typo/comment fixes; pyright[nodejs] 1.1.405 → 1.1.406.
Ignore rules
./.gitignore
Removed .pytest_cache/ and .mypy_cache/ from ignore list.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  actor Dev as Developer
  participant Inst as install-ci-tooling.py
  participant UV as uv
  Note over Dev,Inst: Installer invocation with optional flag
  Dev->>Inst: python install-ci-tooling.py [--allow-uv-to-install-python]
  Inst->>Inst: Set UV_PYTHON = requested version
  alt Flag not provided
    Inst->>Inst: Set UV_PYTHON_PREFERENCE = "only-system"
  else Flag provided
    Inst->>Inst: Do not set UV_PYTHON_PREFERENCE
  end
  Inst->>UV: Install tools using configured env
  UV-->>Inst: Exit status
  Inst-->>Dev: Completion
Loading
sequenceDiagram
  autonumber
  actor User as Template user
  participant Copier as Copier
  participant Devc as Devcontainer
  participant Compose as docker-compose.yml
  Note over User,Copier: Project generation with new option
  User->>Copier: Answer install_claude_cli = true/false
  Copier-->>Devc: Render devcontainer.json and extensions
  alt install_claude_cli = true
    Devc->>Devc: Include Claude CLI feature and extension
    Devc->>Compose: Render ANTHROPIC_API_KEY passthrough
  else install_claude_cli = false
    Devc->>Devc: Exclude Claude CLI feature/extension
    Devc->>Compose: No Anthropic env
  end
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • Bump Fast API and Uvicorn #96: Updates UV version constants and related context entries, overlapping with this PR’s UV bumps.
  • Bump context #73: Modifies ContextUpdater to adjust version keys, similar to this PR’s context version updates.
  • Bump pytest-cov #92: Changes UV tooling and lock-file behavior, related to the new --allow-uv-to-install-python workflow.

Poem

A carrot of flags in my little dev den,
I flip a switch—UV hums again.
Claude pops in if I say “oui!”,
Keys pass softly in compose’s sea.
Caches unmasked, versions hop—
Thump, thump, ship it, don’t stop! 🥕🐇

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch claude

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 27a524d and 2628502.

⛔ Files ignored due to path filters (1)
  • uv.lock is excluded by !**/*.lock
📒 Files selected for processing (21)
  • .devcontainer/devcontainer.json (1 hunks)
  • .devcontainer/install-ci-tooling.py (1 hunks)
  • .gitignore (0 hunks)
  • .pre-commit-config.yaml (2 hunks)
  • CONTRIBUTING.md (1 hunks)
  • README.md (1 hunks)
  • _typos.toml (1 hunks)
  • copier.yaml (1 hunks)
  • extensions/context.py (3 hunks)
  • pyproject.toml (1 hunks)
  • ruff-test.toml (1 hunks)
  • template/.devcontainer/devcontainer.json.jinja-base (3 hunks)
  • template/.devcontainer/docker-compose.yml.jinja-base (1 hunks)
  • template/.devcontainer/install-ci-tooling.py.jinja-base (1 hunks)
  • template/README.md.jinja-base (1 hunks)
  • template/copier.yml.jinja-base (1 hunks)
  • template/extensions/context.py.jinja-base (1 hunks)
  • template/tests/copier_data/data1.yaml.jinja-base (1 hunks)
  • template/tests/copier_data/data2.yaml.jinja-base (1 hunks)
  • tests/copier_data/data1.yaml (1 hunks)
  • tests/copier_data/data2.yaml (1 hunks)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds Claude CLI integration to the copier template, allowing users to optionally install the Claude Code extension in their devcontainer environment. It also includes several dependency version bumps and minor improvements.

  • Adds a new install_claude_cli configuration option to enable Claude CLI installation
  • Updates multiple dependency versions including UV, Node.js features, VS Code extensions, and Python packages
  • Includes minor documentation improvements and spelling corrections

Reviewed Changes

Copilot reviewed 20 out of 22 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
copier.yaml Adds install_claude_cli configuration option
template/copier.yml.jinja-base Adds install_claude_cli question to template
template/.devcontainer/devcontainer.json.jinja-base Conditionally installs Claude Code feature and extension
template/.devcontainer/docker-compose.yml.jinja-base Adds ANTHROPIC_API_KEY environment variable when Claude CLI enabled
extensions/context.py Updates multiple dependency versions
template/.devcontainer/install-ci-tooling.py.jinja-base Adds --allow-uv-to-install-python flag support
tests/copier_data/data*.yaml Updates test data with Claude CLI configuration
template/tests/copier_data/data*.yaml.jinja-base Updates template test data
pyproject.toml Updates pyright version
.devcontainer/install-ci-tooling.py Updates UV version
README.md Updates installation instructions
CONTRIBUTING.md Fixes GitHub spelling
_typos.toml Fixes "misspell" spelling
ruff-test.toml Fixes "don't" contraction
.pre-commit-config.yaml Adds SVG file exclusions
.devcontainer/devcontainer.json Updates devcontainer hash

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Comment on lines +19 to +20
- AWS_DEFAULT_REGION={% endraw %}{{ aws_region_for_stack if (aws_region_for_stack is defined and aws_region_for_stack != "") else "us-east-1" }}{% raw %}{% endraw %}{% if install_claude_cli %}{% raw %},
- ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY}{% endraw %}{% endif %}{% raw %}
Copy link

Copilot AI Oct 9, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The YAML syntax is incorrect. The comma should not be on the same line as the AWS_DEFAULT_REGION value, and the ANTHROPIC_API_KEY entry should not have a colon after the key name in the environment list.

Suggested change
- AWS_DEFAULT_REGION={% endraw %}{{ aws_region_for_stack if (aws_region_for_stack is defined and aws_region_for_stack != "") else "us-east-1" }}{% raw %}{% endraw %}{% if install_claude_cli %}{% raw %},
- ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY}{% endraw %}{% endif %}{% raw %}
- AWS_DEFAULT_REGION={% endraw %}{{ aws_region_for_stack if (aws_region_for_stack is defined and aws_region_for_stack != "") else "us-east-1" }}{% raw %}{% endraw %}{% if install_claude_cli %}{% raw %}
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}{% endraw %}{% endif %}{% raw %}

Copilot uses AI. Check for mistakes.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ejfine ejfine merged commit 900d196 into main Oct 9, 2025
6 checks passed
@ejfine ejfine mentioned this pull request Oct 9, 2025
@ejfine ejfine deleted the claude branch October 9, 2025 13:51
@coderabbitai coderabbitai bot mentioned this pull request Oct 16, 2025
@coderabbitai coderabbitai bot mentioned this pull request Oct 30, 2025
@coderabbitai coderabbitai bot mentioned this pull request Dec 1, 2025
@coderabbitai coderabbitai bot mentioned this pull request Jan 23, 2026
@coderabbitai coderabbitai bot mentioned this pull request Mar 2, 2026
@coderabbitai coderabbitai bot mentioned this pull request Mar 23, 2026
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.

2 participants