Conversation
|
Warning Rate limit exceeded
You’ve run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (37)
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. Comment |
There was a problem hiding this comment.
Pull request overview
Pulls in upstream Copier template updates, including dependency/version bumps, tooling/workflow adjustments, and a new Claude skill for addressing PR comments.
Changes:
- Bump tooling dependencies (e.g.,
copier9.15.1,ty0.0.38) and update various pinned tool versions across the template. - Add an
address-pr-commentsskill (scripts + documentation) and expand Claude Code permission configuration to support it. - Update CI/workflow behavior: devcontainer hash behavior (special-casing
uv.lockroot version), docker-image workflow tagging options, and CI template-instantiation checks.
Reviewed changes
Copilot reviewed 36 out of 38 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| uv.lock | Updates locked dependency versions for copier + ty. |
| pyproject.toml | Bumps declared dev dependencies (copier, ty). |
| extensions/context.py | Updates template context versions and renames template_uses_javascript → template_uses_typescript. |
| copier.yml | Adds task to chmod +x the new skill scripts after copy. |
| ruff.toml | Tweaks the D413 ignore comment text. |
| template/ruff.toml | Same D413 ignore comment tweak in the template copy. |
| tests/unit/copier_tasks/test_remove_precommit_hooks.py | Refactors subprocess invocation to use a shared helper. |
| tests/unit/copier_tasks/helpers.py | Adds run_copier_task() helper for running copier task scripts in tests. |
| .pre-commit-config.yaml | Updates hook revisions and removes docformatter hook. |
| template/.pre-commit-config.yaml | Same pre-commit hook updates in the template copy. |
| .gitignore | Adds ignores for tmp/, .claude/scheduled_tasks.lock, and .nuxtrc. |
| template/.gitignore | Same ignore updates in the template copy. |
| .github/workflows/hash_git_files.py | Changes devcontainer context filtering and special-cases hashing for uv.lock (strip root version). |
| template/.github/workflows/hash_git_files.py | Same hashing changes in the template copy. |
| .github/workflows/ci.yaml | Adds explicit Node version for dependency install and validates .copier-answers.yml exists post-instantiation. |
| .github/reusable_workflows/build-docker-image.yaml | Adds release-tag and artifact retention inputs; makes ECR tagging idempotent/safer. |
| .devcontainer/install-ci-tooling.py | Bumps UV/PNPM/Copier versions used by CI tooling installer. |
| .devcontainer/devcontainer.json | Bumps Claude Code extension version; updates devcontainer context hash comment. |
| template/.devcontainer/devcontainer.json.jinja | Switches conditional Node feature + tooling from template_uses_javascript to template_uses_typescript; bumps Claude Code extension version. |
| AGENTS.md | Adds additional testing/coverage guidance and a note about cd permissions. |
| template/AGENTS.md | Same AGENTS guidance updates in the template copy. |
| .copier-answers.yml | Updates upstream commit reference and answers keys (adds copier_answers_directory, template_uses_typescript, etc.). |
| .claude/skills/address-pr-comments/SKILL.md | Adds new skill documentation for addressing PR comments. |
| template/.claude/skills/address-pr-comments/SKILL.md | Same skill documentation in the template copy. |
| .claude/skills/address-pr-comments/utils.py | Adds git-remote parsing helper for owner/repo detection. |
| template/.claude/skills/address-pr-comments/utils.py | Same helper in the template copy. |
| .claude/skills/address-pr-comments/fetch-pr-comments.py | Adds script to fetch/group PR comments into actionable threads. |
| template/.claude/skills/address-pr-comments/fetch-pr-comments.py | Same fetch script in the template copy. |
| .claude/skills/address-pr-comments/post-reply.py | Adds script to post replies via gh api. |
| template/.claude/skills/address-pr-comments/post-reply.py | Same post script in the template copy. |
| .claude/skills/address-pr-comments/check-footer.py | Adds script to ensure AI attribution footer exists in reply files. |
| template/.claude/skills/address-pr-comments/check-footer.py | Same footer script in the template copy. |
| .claude/settings/permissions/write.jsonc | Expands write permissions to include workspace/tmp paths. |
| template/.claude/settings/permissions/write.jsonc | Same write permission changes in the template copy. |
| .claude/settings/permissions/bash.jsonc | Expands allowed Bash commands/paths used by the new skill workflow. |
| template/.claude/settings/permissions/bash.jsonc | Same bash permission changes in the template copy. |
| .claude/settings/permissions/additional-dirs.jsonc | Adds additionalDirectories permissions for /tmp and /workspaces. |
| template/.claude/settings/permissions/additional-dirs.jsonc | Same additionalDirectories file in the template copy. |
Comments suppressed due to low confidence (2)
.claude/skills/address-pr-comments/fetch-pr-comments.py:111
- This
subprocess.run(...)call is missing a Bandit/Ruff suppression (S603). Since the arguments are fixed andghis expected on PATH, add a local# noqa: S603(and optionally a brief rationale) to keep the non-src Ruff hook passing.
def fetch_current_user_login() -> str:
result = subprocess.run(
["gh", "api", "user", "--jq", ".login"], # noqa: S607 — gh is expected on PATH
capture_output=True,
text=True,
check=True,
timeout=GH_TIMEOUT_SECONDS,
)
return result.stdout.strip()
template/.claude/skills/address-pr-comments/fetch-pr-comments.py:111
- This
subprocess.run(...)call is missing Ruff/Bandit suppression S603. Add a local# noqa: S603(with rationale) so template linting passes.
def fetch_current_user_login() -> str:
result = subprocess.run(
["gh", "api", "user", "--jq", ".login"], # noqa: S607 — gh is expected on PATH
capture_output=True,
text=True,
check=True,
timeout=GH_TIMEOUT_SECONDS,
)
return result.stdout.strip()
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| result = subprocess.run( | ||
| ["git", "remote", "get-url", "origin"], # noqa: S607 — git is expected on PATH | ||
| capture_output=True, | ||
| text=True, | ||
| check=True, | ||
| timeout=15, | ||
| ) |
| from typing import Any | ||
|
|
||
| sys.path.insert(0, str(Path(__file__).parent)) | ||
| from utils import owner_repo_from_remote |
| from pathlib import Path | ||
|
|
||
| sys.path.insert(0, str(Path(__file__).parent)) | ||
| from utils import owner_repo_from_remote |
| result = subprocess.run( | ||
| ["git", "remote", "get-url", "origin"], # noqa: S607 — git is expected on PATH | ||
| capture_output=True, | ||
| text=True, | ||
| check=True, | ||
| timeout=15, | ||
| ) |
| from typing import Any | ||
|
|
||
| sys.path.insert(0, str(Path(__file__).parent)) | ||
| from utils import owner_repo_from_remote |
| from pathlib import Path | ||
|
|
||
| sys.path.insert(0, str(Path(__file__).parent)) | ||
| from utils import owner_repo_from_remote |
Pull in upstream template changes