Skip to content

feat: implement issue #1184 — F2: cut-release.sh learns v<major>-<tier> channels [#657] - #1185

Merged
don-petry merged 1 commit into
mainfrom
dev-lead/issue-1184-20260713-0416
Jul 13, 2026
Merged

don-petry merged 1 commit into
mainfrom
dev-lead/issue-1184-20260713-0416

Conversation

@don-petry

Copy link
Copy Markdown
Collaborator

Closes #1184

Implemented by dev-lead agent. Please review.

@don-petry
don-petry requested a review from a team as a code owner July 13, 2026 04:23
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@coderabbitai

coderabbitai Bot commented Jul 13, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@don-petry, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 22 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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 configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 63b8da2e-abfd-4c5c-a23b-9bb89db77475

📥 Commits

Reviewing files that changed from the base of the PR and between 24a0ff1 and 81f0933.

📒 Files selected for processing (4)
  • .github/workflows/lint.yml
  • scripts/cut-release.sh
  • tests/test_cut_release.bats
  • tests/test_cut_release_cross_repo.bats
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dev-lead/issue-1184-20260713-0416

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.

@sonarqubecloud

Copy link
Copy Markdown

@don-petry

Copy link
Copy Markdown
Collaborator Author

Dev-Lead — review-changes (no-changes)

No changes were needed for this PR.

@don-petry
don-petry enabled auto-merge (squash) July 13, 2026 04:24

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Code Review

This pull request introduces major-scoped channel tags to the release process in scripts/cut-release.sh. Specifically, it updates the channel_ref helper to prefix bare tier channels (like stable or next) with the major version component of the release (e.g., v1-stable or v2-next), while allowing fully-qualified channels to pass through. It also adds a new major_of helper function and updates the corresponding unit and integration tests to verify this new behavior. I have no feedback to provide as there are no review comments and the implementation is clean and well-tested.

@don-petry
don-petry disabled auto-merge July 13, 2026 04:26
@don-petry
don-petry enabled auto-merge (squash) July 13, 2026 04:27
@don-petry

Copy link
Copy Markdown
Collaborator Author

Dev-Lead — waiting on PR blockers (intent: fix-reviews)

PR: #1185
No changes were committed, but the PR still has blocking checks or reviews (failing or cancelled checks, or changes-requested reviews). The retry cron will re-attempt automatically. Next attempt after: 2026-07-13T05:01:38Z

@donpetry-bot donpetry-bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Automated review — APPROVED ✓

Risk: MEDIUM
Reviewed commit: 81f093308dc86397a14a9f1f11a020ba7f33e018
Review mode: triage-approved (single reviewer)

Summary

Implements major-scoped release channels (v-) in scripts/cut-release.sh per issue #1184 (epic #657). channel_ref now takes the version and derives the major for bare tiers (stable → v2-stable for a 2.x release), while fully-qualified v- channels pass through unchanged. A new major_of helper extracts the major component. Immutable /vX.Y.Z release tags are untouched, and the --promote path inherits the major-scoped channel automatically since it shares the same channel_ref call site. The lint workflow change adds tests/test_cut_release_cross_repo.bats to the bats run — closing a pre-existing gap where that test file was not executed in CI.

Linked issue analysis

Issue #1184 (F2 of epic #657) is substantively and completely addressed. All checklist items are met: (1) channel_ref resolves to /v- with pass-through for fully-qualified names — implemented exactly as specified; (2) --promote --channel moves the major-scoped channel, verified by a dedicated cross-repo test; (3) immutable vX.Y.Z release tags are unchanged (release_ref untouched, verified by test asserting the un-prefixed tag ref is still created); (4) usage/header docs updated with v- examples; (5) the App-token gh-api path for protected channel moves is preserved — no changes to gh_move_tag or the API plumbing. All four test scenarios named in the issue are present. Out-of-scope items (F3–F5, backward-compat migration) are correctly not included.

Findings

No blocking findings.

  • Correctness: validate_version enforces MAJOR.MINOR.PATCH before channel_ref runs, so major_of (${1%%.*}) always receives a well-formed version. The single call site in main() passes the version correctly, covering both the cut and --promote paths.
  • Tests: strong coverage — unit tests for major_of and channel_ref (bare tier, pass-through, explicit-major-wins, major-bump reflection) plus cross-repo integration tests (dry-run planning, pass-through, --push tag creation with API-call assertions, --promote).
  • Security: no secrets, no auth changes; gitleaks and Agent Security Scan passed. The secret-scanning MCP tool was unavailable in this environment (noted; gitleaks CI check covers this).
  • Minor, non-blocking: the pass-through regex ^v[0-9]+- accepts arbitrary tier suffixes (e.g. v1-typo) without validating against the known tier set (stable|next|ring0|ring1). Tier names were not validated before this change either, and F5 migration/audit is the designated place for channel-name enforcement — acceptable as-is.
  • The lint.yml edit is a one-line addition to the bats file list (not a protected thin-caller stub) and fixes a real CI coverage gap.

CI status

All checks green at 81f0933: Lint, ShellCheck, shellcheck, bats, unit-tests, CodeQL (actions + python), SonarCloud (quality gate passed, 0 new issues), gitleaks secret scan, Agent Security Scan, AgentShield, Compile agentic workflows, template-drift, validate-agent-profiles, gh-aw-compile, holdout-guard, test-deletion guard — all SUCCESS. Remaining checks SKIPPED by design (dependabot-automerge, dependency-audit ecosystem jobs, mention triggers). Mergeable; blocked only on required review.


Reviewed automatically by the PR-review agent (single-reviewer mode: fable 5). Reply if you need a human review.

@don-petry
don-petry merged commit ee362d8 into main Jul 13, 2026
46 of 49 checks passed
@don-petry
don-petry deleted the dev-lead/issue-1184-20260713-0416 branch July 13, 2026 05:18
don-petry added a commit that referenced this pull request Aug 2, 2026
…r> channels [#657] (#1185)

Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com>
don-petry added a commit that referenced this pull request Aug 3, 2026
…r> channels [#657] (#1185)

Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com>
don-petry added a commit that referenced this pull request Aug 3, 2026
…r> channels [#657] (#1185)

Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com>
don-petry added a commit that referenced this pull request Aug 7, 2026
…r> channels [#657] (#1185)

Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com>
don-petry added a commit that referenced this pull request Aug 7, 2026
…r> channels [#657] (#1185)

Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com>
don-petry added a commit that referenced this pull request Aug 7, 2026
…r> channels [#657] (#1185)

Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com>
don-petry added a commit that referenced this pull request Aug 7, 2026
…r> channels [#657] (#1185)

Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com>
don-petry added a commit that referenced this pull request Aug 7, 2026
…r> channels [#657] (#1185)

Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com>
don-petry added a commit that referenced this pull request Aug 7, 2026
…r> channels [#657] (#1185)

Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com>
don-petry added a commit that referenced this pull request Aug 8, 2026
…r> channels [#657] (#1185)

Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com>
don-petry added a commit that referenced this pull request Aug 8, 2026
…r> channels [#657] (#1185)

Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com>
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.

F2: cut-release.sh learns v<major>-<tier> channels [#657]

2 participants