Skip to content

feat: implement issue #276 — [Fleet Monitor] petry-projects/markets — .github/workflows/pr-review.yml - #277

Merged
don-petry merged 8 commits into
mainfrom
dev-lead/issue-276-20260618-1048
Jun 20, 2026
Merged

don-petry merged 8 commits into
mainfrom
dev-lead/issue-276-20260618-1048

Conversation

@don-petry

Copy link
Copy Markdown
Contributor

Closes #276

Implemented by dev-lead agent. Please review.

@don-petry
don-petry requested a review from a team as a code owner June 18, 2026 10:56
@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.

@gemini-code-assist

Copy link
Copy Markdown

Note

Gemini is unable to generate a review for this pull request due to the file types involved not being currently supported.

@coderabbitai

coderabbitai Bot commented Jun 18, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

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

More reviews will be available in 50 minutes and 1 second. Learn how PR review limits work.

Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file).

⌛ How to resolve this issue?

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 credits.

🚦 How do rate limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan refill rate.

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, the refill rate gradually slows as usage increases. The highest same-day bursts are limited more strictly.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 43ad026b-6edc-45b5-abec-cfa15c7fbd46

📥 Commits

Reviewing files that changed from the base of the PR and between aee8267 and f734233.

📒 Files selected for processing (1)
  • .github/workflows/pr-review.yml
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dev-lead/issue-276-20260618-1048

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 and usage tips.

@don-petry

Copy link
Copy Markdown
Contributor Author

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

No changes were needed for this PR.

@don-petry
don-petry enabled auto-merge (squash) June 18, 2026 10:57
@donpetry-bot

Copy link
Copy Markdown
Contributor

Advisory bots were rate-limited; auto-approval is withheld until they recover. pr-review-sweep will re-review this PR after 2026-06-18T11:58:10Z.

@donpetry-bot

donpetry-bot commented Jun 18, 2026 •

Copy link
Copy Markdown
Contributor
Superseded by automated re-review at b9c67dc32c2d0e20b8a7352ada999189d2e32c8d — click to expand prior review.

Review — fix requested (cycle 1/3)

The automated review identified the following issues. Please address each one:

Findings to fix

Automated review — NEEDS HUMAN REVIEW

Risk: MEDIUM
Reviewed commit: 13bde5e5719648d39c05c925d33b52e3ac200f59
Review mode: triage-approved (single reviewer)

Summary

Adds a per-PR concurrency group (cancel-in-progress) and a job-level if-guard to the pr-review.yml thin caller, collapsing the duplicate/cancelled runs flagged by Fleet Monitor issue #276. The change is low-risk, correct, and CI is fully green — but this agent's own prior pass placed an active hold withholding auto-approval until rate-limited advisory bots recover (reset 2026-06-18T11:58:10Z); it is currently ~11:00Z, before that recovery. Withholding auto-approval to respect the scheduled pr-review-sweep re-review.

Linked issue analysis

Issue #276 is a Fleet Monitor WARNING: pr-review.yml at 12.5% failure rate (1/8) with 2 cancelled runs. The cancelled runs stem from concurrent duplicate reviews fired by overlapping synchronize + check_suite triggers on the same head. The new concurrency block groups by PR (number/url) with cancel-in-progress, collapsing those duplicates, and the if-guard drops PR-less check_suite completions. This directly and proportionately addresses the root cause.

Findings

  • Concurrency group expression: the || fallback chain resolves a stable per-PR key for pull_request, pull_request_review, check_suite (with PR), workflow_dispatch (pr_url), and repository_dispatch (client_payload.pr_url), falling back to unique github.run_id for batch/no-PR runs so those never cancel each other. Correct.
  • cancel-in-progress: true is safe here — a cancelled mid-flight review is superseded by a run against the latest head; SHA-marker idempotency prevents lost coverage. No injection vector (values used only in concurrency.group and job if: expressions, never shell).
  • Job-level if correctly limits the skip to check_suite events with no associated PR; all other triggers proceed.
  • No code-level findings. No changes to permissions, secrets, or the pinned reusable-workflow ref.

Blocking concern (process, not code): The pr-review-agent's prior comment at 10:58Z explicitly withheld auto-approval because advisory bots (CodeRabbit rate-limited, Codex usage-limited, Gemini unsupported file type) could not review, and scheduled pr-review-sweep to re-review after 2026-06-18T11:58:10Z. Current time ~11:00Z is before that window. Triage cleared the PR but did not account for this active hold. Auto-approving now would subvert the deliberate hold ahead of its scheduled recovery.

CI status

All checks green or skipped: CodeQL (actions) SUCCESS, SonarCloud SUCCESS, Secret scan (gitleaks) SUCCESS, AgentShield SUCCESS, CI Detect ecosystems SUCCESS. No failing checks. mergeStateStatus is BLOCKED only on the required org-leads review. Note: LLM advisory bots (CodeRabbit/Codex/Gemini) did not produce substantive reviews due to rate/usage limits.


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

Additional tasks

  1. Resolve all unresolved review thread comments from other reviewers
  2. Ensure all CI checks pass after your changes
  3. Rebase on the target branch if behind
  4. Do NOT modify files unrelated to the findings above

The review cascade will automatically re-review after new commits are pushed.

@don-petry
don-petry disabled auto-merge June 19, 2026 16:21
@don-petry

Copy link
Copy Markdown
Contributor Author

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

No changes were needed for this PR.

@don-petry
don-petry enabled auto-merge (squash) June 19, 2026 16:22
@don-petry
don-petry disabled auto-merge June 19, 2026 16:36
@don-petry

Copy link
Copy Markdown
Contributor Author

Dev-Lead — fix-bot-comment (no-changes)

Agent reasoning
## Summary
**No action required.** The SonarCloud bot comment reports a **passed quality gate** with **0 new issues**, **0 security hotspots**, and **0.0% coverage issues**. 
**Current state:**
- ✅ Quality Gate: **Passed**
- ✅ New Issues: **0**
- ✅ Security Hotspots: **0**
- ✅ Review Threads: **0 open**
- ✅ CI Blockers: **None failed**
**Changed files:** `.github/workflows/pr-review.yml` (workflow configuration only)
Since the SonarCloud analysis shows no issues and there are no open review threads from any bot, the PR is clean and ready. The remaining CI checks (SonarCloud, Analyze, AgentShield, etc.) are still running but the quality gate has already passed based on the analysis completed.

@don-petry
don-petry enabled auto-merge (squash) June 19, 2026 16:37
@donpetry-bot

Copy link
Copy Markdown
Contributor

Advisory bots were rate-limited; auto-approval is withheld until they recover. pr-review-sweep will re-review this PR after 2026-06-19T17:50:21Z.

@don-petry
don-petry disabled auto-merge June 19, 2026 16:51
@don-petry

Copy link
Copy Markdown
Contributor Author

Dev-Lead — fix-bot-comment (no-changes)

Agent reasoning
- ✓ 0.0% Duplication on New Code
**Review state:**
- No open review threads from any bot
- All substantive CI checks passed (SonarCloud, CodeQL, Analyze, CodeRabbit)
- The two cancelled "dev-lead" checks (ci-relay, dispatch) are infrastructure orchestration — they were cancelled by the new concurrency configuration in this PR, which is the intended behavior to prevent duplicate runs
**Changes in PR:**
- Only modifies `.github/workflows/pr-review.yml`
- Adds concurrency controls and a condition to skip redundant check_suite events
- No code or security issues introduced
The PR is ready for merge — all quality gates passed and there are no issues to fix.

@don-petry
don-petry enabled auto-merge (squash) June 19, 2026 16:52
@don-petry
don-petry disabled auto-merge June 19, 2026 17:04
@don-petry

Copy link
Copy Markdown
Contributor Author

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

No changes were needed for this PR.

@don-petry
don-petry enabled auto-merge (squash) June 19, 2026 17:05
@don-petry
don-petry disabled auto-merge June 19, 2026 17:10
@don-petry
don-petry enabled auto-merge (squash) June 19, 2026 17:10
@don-petry
don-petry disabled auto-merge June 19, 2026 17:11
@don-petry
don-petry enabled auto-merge (squash) June 19, 2026 17:11
@don-petry
don-petry disabled auto-merge June 20, 2026 01:38
@don-petry

Copy link
Copy Markdown
Contributor Author

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

No changes were needed for this PR.

@don-petry
don-petry enabled auto-merge (squash) June 20, 2026 01:38
@donpetry-bot

Copy link
Copy Markdown
Contributor

Advisory bots were rate-limited; auto-approval is withheld until they recover. pr-review-sweep will re-review this PR after 2026-06-20T02:42:49Z.

@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: b9c67dc32c2d0e20b8a7352ada999189d2e32c8d
Cascade: triage → deep (triage: haiku 4.5 → deep: opus 4.8 + duck: o4-mini → audit: fable 5)

Summary

PR #277 adds a per-PR concurrency group (cancel-in-progress) plus a job if-guard skipping PR-less check_suite events to the markets thin caller stub .github/workflows/pr-review.yml, directly and proportionately fixing issue #276 (duplicate/cancelled overlapping review runs). The change is correct across all five trigger types, introduces no security smell (interpolated values are used only in concurrency.group and the job if:, never in shell; pinned ref, secrets: inherit, permissions, and triggers are all unchanged), and all CI gates are green with no unresolved review threads. The prior cycle-1 withhold was a process-only hold on rate-limited advisory bots whose recovery windows have since elapsed; SonarCloud and CodeRabbit now report SUCCESS, so the change is approvable.

Findings

  • INFO: MCP run_secret_scanning unavailable (repository does not have GitHub Advanced Security enabled). Not blocking; the gitleaks CI secret-scan check passed SUCCESS at this head, and the added content is pure workflow concurrency YAML with no credential material.
  • INFO: Concurrency group key chain resolves a stable per-PR identifier for pull_request, pull_request_review, check_suite (with PR), workflow_dispatch (pr_url), and repository_dispatch (client_payload.pr_url), falling back to unique github.run_id so no-PR/batch runs never cancel each other. Minor inconsistency: workflow_dispatch keys on pr_url (URL) while pull_request keys on number, so a manual force-review and an automatic synchronize for the same PR land in different groups and won't cancel each other — this errs toward not-cancelling and is safe.
  • INFO: No security-relevant change: no script-injection vector (interpolated event values used only in concurrency.group and job if:, never in run:), pinned reusable-workflow ref (@pr-review/stable), secrets: inherit, permissions, and trigger set are all unchanged.

Reviewed by the PR-review cascade (triage: haiku 4.5 → deep: opus 4.8 + duck: o4-mini → audit: fable 5). Reply if you need a human review.

@sonarqubecloud

Copy link
Copy Markdown

@don-petry
don-petry merged commit ef621ff into main Jun 20, 2026
23 of 26 checks passed
@don-petry
don-petry deleted the dev-lead/issue-276-20260618-1048 branch June 20, 2026 01:48
@donpetry-bot

Copy link
Copy Markdown
Contributor

Advisory bots were rate-limited; auto-approval is withheld until they recover. pr-review-sweep will re-review this PR after 2026-06-20T02:49:58Z.

@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: f734233040926b131e94d0d7b39816876ccb98a0
Review mode: triage-approved (single reviewer)

Summary

Adds a concurrency group (keyed per-PR with a run_id fallback, cancel-in-progress) and a job-level if-guard that skips check_suite completions with no associated PR, to .github/workflows/pr-review.yml. +22/-0, single file. Directly targets the duplicate/cancelled overlapping runs flagged by Fleet Monitor issue #276.

Linked issue analysis

Linked issue #276 (Fleet Monitor WARNING: 12.5% failure rate, 2 cancelled runs on pr-review.yml). The change addresses the root cause: high-frequency triggers (synchronize + resulting check_suite completions) spawned concurrent duplicate reviews. The concurrency group collapses redundant runs per PR, and the if-guard avoids pure-waste runs for check_suite events with no PR. Substantively addressed.

Findings

  • No security concerns. Expressions (pull_request.number, check_suite.pull_requests[0].number, inputs.pr_url, client_payload.pr_url, run_id) are interpolated only into a concurrency group name, never into a run: shell context — no injection surface.
  • permissions block unchanged (pull-requests: write, checks: read); no new secrets, no trigger changes, no change to the pinned reusable-workflow ref (@pr-review/stable).
  • Sound design: run_id fallback keeps batch/dispatch/no-PR runs from cancelling each other.
  • Minor note (non-blocking): cancel-in-progress will itself produce intentional 'cancelled' supersede events; net effect is fewer total concurrent runs, the intended tradeoff.
  • MCP secret scan not run (repo lacks GitHub Advanced Security); gitleaks CI check passed and the diff contains no secret-like content.

CI status

Latest run of each check is green or N/A: CodeQL SUCCESS, gitleaks SUCCESS, agent-shield/AgentShield SUCCESS, SonarCloud SUCCESS, CodeRabbit SUCCESS, dependency-audit SUCCESS, Backend/Frontend CI SKIPPED (not applicable to a workflow-only change). The CANCELLED entries (ci-relay, dispatch, review) are superseded duplicate runs, each with a corresponding SUCCESS — consistent with the concurrency behavior this PR introduces. reviewDecision: APPROVED. No unresolved review threads or unanswered human questions.


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

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.

[Fleet Monitor] petry-projects/markets — .github/workflows/pr-review.yml

2 participants