Skip to content

ci: Notify pending release approvals via auto-managed issue#1950

Merged
hatayama merged 4 commits into
v3-betafrom
feature/release-approval-pending-notify
Jul 22, 2026
Merged

ci: Notify pending release approvals via auto-managed issue#1950
hatayama merged 4 commits into
v3-betafrom
feature/release-approval-pending-notify

Conversation

@hatayama

@hatayama hatayama commented Jul 22, 2026

Copy link
Copy Markdown
Owner

Summary

  • Pending release approvals no longer disappear silently in the Actions run list — a tracking issue now surfaces them until they're approved.

User Impact

  • Before: a release publish waiting on the cli-release environment's manual approval would sit as a waiting run in the Actions tab. Nothing else pointed at it, so it was easy to lose track of — as happened on 2026-07-22, when a waiting run after release PR chore: release v3-beta #1933 sat unapproved and blocked the v3.0.0-beta.60 package release.
  • After: a scheduled check (every 15 minutes, plus right after each publish workflow finishes) opens or updates a single issue listing every currently-waiting approval, each with a direct link to the approval screen. Once every pending approval is resolved, the issue is automatically closed with a confirmation comment.

Changes

  • New Go command that lists repository-wide waiting workflow runs, resolves each one's pending environment, and reconciles a single tracking issue (create while waiting, update if the waiting set changes, close once resolved).
  • New scheduled workflow that runs the command on a 15-minute cron, on workflow_dispatch, and on completion of the two publish workflows.

Verification

  • scripts/check-go-cli.sh: format / vet / lint / tests / build all green (includes new unit tests for the issue-state decision logic and the gh-CLI-backed orchestration).
  • Ran the new command locally against the live repository (GH_TOKEN=$(gh auth token) GITHUB_REPOSITORY=hatayama/unity-cli-loop go run ./cmd/notify-pending-release-approvals) twice in a row: no waiting runs currently exist, so both runs correctly reported "No changes needed." and the label was created idempotently without any issue being opened. The create/update/close paths against actual waiting runs are covered by unit tests, since no run is currently stuck waiting to exercise them live.

Review in cubic

hatayama added 3 commits July 22, 2026 21:35
Adds a reconcile-style command that lists repository-wide waiting
workflow runs, resolves each one's pending environment deployment, and
creates/updates/closes a single tracking issue accordingly. TDD-covered
with unit tests for the pure plan decision, body generation, and the
gh-CLI-backed orchestration layer, following the deps-injection pattern
from cancel-superseded-waiting-runs.
Runs every 15 minutes plus on native-cli-publish/dispatcher-publish
completion, so an approval-waiting release run is never left silently
stuck the way run 29917524403 was after PR #1933.
scripts/check-go-cli.sh flagged both on the new command.
@coderabbitai

coderabbitai Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

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

Next review available in: 19 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: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: c25d26cb-558f-4d0a-9a47-bc5d16d4c18a

📥 Commits

Reviewing files that changed from the base of the PR and between adefc74 and 49d599a.

📒 Files selected for processing (4)
  • .github/workflows/release-approval-pending-notify.yml
  • cli/release-automation/cmd/notify-pending-release-approvals/main.go
  • cli/release-automation/internal/automation/notify_pending_release_approvals.go
  • cli/release-automation/internal/automation/notify_pending_release_approvals_test.go
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feature/release-approval-pending-notify

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.

schedule/workflow_run only trigger from workflow files on the default
branch (main), which has no cli/ directory; pin checkout to v3-beta so
the scheduled run finds the reconcile implementation. Also add a
concurrency group so an overlapping schedule + workflow_run trigger
can't race to create duplicate tracking issues.
@hatayama
hatayama merged commit 5d59f98 into v3-beta Jul 22, 2026
12 checks passed
@hatayama
hatayama deleted the feature/release-approval-pending-notify branch July 22, 2026 13:05
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.

1 participant