Add semi-automated release flow, scope docker latest tag to releases - #39
Conversation
- npm run release <patch|minor|major> bumps package.json/package-lock.json, tags, pushes, and publishes a GitHub release with generated notes - container workflow: only tag latest on release tag pushes, not on every push to main (main pushes now only produce the "main" image tag)
|
Warning Review limit reached
Next review available in: 50 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (4)
📝 WalkthroughWalkthroughThe PR adds a validated ChangesRelease automation
Estimated code review effort: 3 (Moderate) | ~20 minutes Sequence Diagram(s)sequenceDiagram
participant Developer
participant release.mjs
participant Git
participant GitHubCLI
participant ContainerWorkflow
Developer->>release.mjs: Run release command with bump type
release.mjs->>Git: Validate repository state
release.mjs->>GitHubCLI: Validate authentication
release.mjs->>Git: Bump version, tag, and push refs
release.mjs->>GitHubCLI: Create GitHub release
GitHubCLI->>ContainerWorkflow: Trigger tag workflow
ContainerWorkflow->>ContainerWorkflow: Add latest tag
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
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.
Actionable comments posted: 2
🤖 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 `@scripts/release.mjs`:
- Around line 61-69: Update the release flow around the version bump, branch/tag
pushes, and gh release create so reruns can resume an incomplete publication
instead of invoking npm version again. Add a dedicated resume path that detects
and reuses an existing release tag, and make the branch and tag publication
atomic where supported; when release creation fails, print an exact command that
invokes this resume path.
- Around line 19-24: Update run and capture in scripts/release.mjs to use
execFileSync with separate executable and argument arrays instead of shell
command strings, and refactor their callers accordingly. Tighten explicit X.Y.Z
validation to reject trailing or injected content before invoking npm version,
then pass the validated tag as an argument to Git and GitHub CLI commands rather
than interpolating it into shell strings.
🪄 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: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 61cbce2c-4692-49dc-846a-5f38677cc396
📒 Files selected for processing (4)
.github/workflows/container.ymlREADME.mdpackage.jsonscripts/release.mjs
Summary
npm run release <patch|minor|major>bumpspackage.json/package-lock.json, commits, tags, pushes, and publishes a GitHub release with auto-generated notes (scripts/release.mjs)latestDocker tag on release tag pushes (v*.*.*); pushes tomainonly produce themainimage tagTest plan
npm version <bump>bumps bothpackage.jsonandpackage-lock.json, commits, and tags in a scratch repocontainer.ymlYAML syntaxnpm run release patchon a real release to confirm end-to-end (tag push →latest/vX.Y.Zimage; plainmainpush → onlymainimage, nolatest)🤖 Generated with Claude Code
Summary by CodeRabbit
latesttag only for tagged releases.