Added 'update-deps' skill and updated 'moby/docker' to 29.5.2.#383
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughThis PR adds an ChangesDependency Update Automation
🎯 2 (Simple) | ⏱️ ~10 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.claude/skills/update-deps/SKILL.md:
- Around line 23-25: The fenced code block containing the Renovate regex should
include a language identifier for proper highlighting; update the block around
the regex pattern (the triple-backtick block that starts with the regex pattern
for "#\s*renovate:...") to use "regex" (i.e., ```regex) so the pattern inside
(including named groups like (?<datasource>...), (?<depName>...),
(?<currentValue>...)) is rendered correctly.
- Around line 67-73: The fenced code block that contains the dependency table in
the SKILL.md example is missing a language identifier; update the opening
backticks for that block to include "markdown" (i.e., change the starting ``` to
```markdown for the fenced code block that wraps the table) so the table renders
with proper syntax highlighting and formatting.
In @.gitignore:
- Around line 1-4: Remove the redundant negation lines "! .claude",
"!.claude/skills", and "!.claude/skills/*" from .gitignore and keep only the
explicit ignore for ".claude/settings.local.json"; if your real intent was to
ignore all files under .claude except the skills directory instead, replace the
current lines with a pattern that first ignores ".claude/*" and then selectively
unignore ".claude/skills/" and its contents (use ".claude/*",
"!.claude/skills/", "!.claude/skills/**") while preserving the
".claude/settings.local.json" ignore.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: c16047d3-f7b8-48f9-9b77-1dfd55b54e8c
📒 Files selected for processing (3)
.claude/skills/update-deps/SKILL.md.gitignoreDockerfile
| !.claude | ||
| !.claude/skills | ||
| !.claude/skills/* | ||
| .claude/settings.local.json |
There was a problem hiding this comment.
🧹 Nitpick | 🔵 Trivial | ⚡ Quick win
Simplify gitignore logic by removing redundant negation patterns.
The negation patterns (lines 1-3) attempt to explicitly include .claude/skills, but Git tracks all files by default unless explicitly ignored. Negation patterns only make sense when negating a previous ignore rule. Since .claude is not being ignored anywhere, these negation patterns are redundant and potentially confusing.
If the intent is to track .claude/skills/* while ignoring settings.local.json, only line 4 is needed.
♻️ Simplified approach
-!.claude
-!.claude/skills
-!.claude/skills/*
.claude/settings.local.jsonAlternatively, if you want to ignore everything in .claude/ except the skills/ subdirectory:
-!.claude
-!.claude/skills
-!.claude/skills/*
+.claude/*
+!.claude/skills/
.claude/settings.local.json📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| !.claude | |
| !.claude/skills | |
| !.claude/skills/* | |
| .claude/settings.local.json | |
| .claude/settings.local.json |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.gitignore around lines 1 - 4, Remove the redundant negation lines "!
.claude", "!.claude/skills", and "!.claude/skills/*" from .gitignore and keep
only the explicit ignore for ".claude/settings.local.json"; if your real intent
was to ignore all files under .claude except the skills directory instead,
replace the current lines with a pattern that first ignores ".claude/*" and then
selectively unignore ".claude/skills/" and its contents (use ".claude/*",
"!.claude/skills/", "!.claude/skills/**") while preserving the
".claude/settings.local.json" ignore.
There was a problem hiding this comment.
Not adopting. The negation patterns counteract a rule in the user's global ~/.gitignore that excludes .claude/ across all repos. Without these explicit un-ignores, the project-scoped Claude skill files in .claude/skills/ would be silently ignored. The negations look redundant when viewing only the project gitignore, but they are load-bearing once the global rule is in play.
There was a problem hiding this comment.
@AlexSkrypnyk, understood — thank you for the explanation. That context makes the negation patterns completely sensible: they exist to override a global ~/.gitignore rule that blanket-ignores .claude/ across all repositories, ensuring the project-scoped skill files in .claude/skills/ are still tracked. I'll record this so I don't flag it in future reviews.
✏️ Learnings added
Learnt from: AlexSkrypnyk
Repo: drevops/ci-runner PR: 383
File: .gitignore:1-4
Timestamp: 2026-05-21T06:18:22.340Z
Learning: In the `drevops/ci-runner` repository, the `.gitignore` negation patterns `!.claude`, `!.claude/skills`, and `!.claude/skills/*` are intentional and load-bearing. They counteract a common global `~/.gitignore` rule that excludes the `.claude/` directory across all repos. Without these explicit un-ignores in the project-level `.gitignore`, files under `.claude/skills/` would be silently ignored. Do not flag these negation patterns as redundant.
Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.
…ks in 'SKILL.md'.
Summary
Adds a project-scoped Claude skill (
update-deps) that automates Dockerfile dependency version bumping. The skill scansDockerfilefor Renovate-annotated entries, resolves each dependency's latest upstream version via its datasource (GitHub releases, npm, Node.js LTS, or Docker Hub), prints a diff table, and edits the pinnedversion=...literals in place. Git operations (branching, committing, pushing) are explicitly out of scope and left to the caller.Also includes the first use of the skill: bumping
moby/dockerfrom28.5.2to29.5.2(a major version bump - upstream tagdocker-v29.5.2).Changes
.claude/skills/update-deps/SKILL.md(new)update-depsskill with four sections: dependency discovery, per-datasource version resolution, diff table rendering, and in-placeDockerfileediting.github-releases,npm,node(LTS), anddocker(base image digest).docker pullfallback for digest resolution).goss.yaml,versions-config.json, or README..gitignore(new).claude/skills/to be tracked while keepingsettings.local.jsonignored.Dockerfilemoby/docker(moby/mobyon GitHub) from28.5.2to29.5.2in the pinnedversion=literal.Summary by CodeRabbit
New Features
Chores