Repository navigation
feat: implement issue #985 — [Fleet Monitor] petry-projects/.github-private — .github/workflows/feature-ideation.yml - #986
Conversation
…rivate — .github/workflows/feature-ideation.yml
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
Warning Review limit reached
More reviews will be available in 53 minutes and 16 seconds. 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 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 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 see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughAdds two ChangesDiscussion-event bridge regression tests
Estimated code review effort🎯 2 (Simple) | ⏱️ ~5 minutes Suggested labels
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 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.
Code Review
This pull request adds structural BATS tests using yq to verify that all jobs calling the reusable workflow in feature-ideation.yml are gated off the discussion event, and that the discussion handler does not call it inline. A critical issue was identified in the yq queries where accessing .uses on jobs without that key will evaluate to null and cause a type error in the test function; a fix was suggested to guard the property access with a default empty string.
Dev-Lead — waiting on PR blockers (intent: review-changes)PR: #986 |
|
Note @don-petry I reviewed this PR and no code changes were needed, but it still has blocking checks or reviews (failing or cancelled checks, or changes-requested reviews), so I cannot mark it done yet. I'll re-check automatically. |
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 `@tests/test_feature_ideation.bats`:
- Around line 118-119: The current gate assertion in test_feature_ideation.bats
is only checking for a safe-looking substring in each reusable-calling job’s if
condition, so it can miss expressions that still run on discussion events.
Tighten the check around the yq query used for FEATURE_IDEATION_YML so it
rejects any job using feature-ideation-reusable.yml whose if logic can still
evaluate true for discussions, rather than merely containing event_name !=
'discussion'. Reference the ungated calculation and the reusable workflow filter
in the test to update the invariant being enforced.
- Around line 115-118: The feature ideation test is calling test() on a possibly
null .uses field, which can fail when a job like redispatch has no uses entry.
Update the yq filters in the test_feature_ideation.bats assertions to guard
.uses before matching, either by coalescing it to an empty string or filtering
out null values first, and apply the same protection in both the total and
ungated queries so the test remains stable.
🪄 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
Run ID: 16a3f956-7fa1-41b3-853a-48b62f764b3d
📒 Files selected for processing (1)
tests/test_feature_ideation.bats
Dev-Lead — fix-reviews (applied)Changes committed and pushed. |
|
Dev-Lead — waiting on PR blockers (intent: review-changes)PR: #986 |
|
Note @don-petry I reviewed this PR and no code changes were needed, but it still has blocking checks or reviews (failing or cancelled checks, or changes-requested reviews), so I cannot mark it done yet. I'll re-check automatically. |
donpetry-bot
left a comment
There was a problem hiding this comment.
Automated review — APPROVED ✓
Risk: LOW
Reviewed commit: 80289d58083ef41c0e9347448340da11fdcf8837
Review mode: triage-approved (single reviewer)
Summary
Test-only PR (+29/-0, single file tests/test_feature_ideation.bats) adding two yq-based regression tests that pin the discussion-event bridge invariant for feature-ideation.yml (#985): every job calling feature-ideation-reusable.yml must be gated off the discussion event, and the redispatch handler must not call the reusable inline. The underlying #985 fix (redispatch workflow_dispatch bridge + clean event_name != 'discussion' gate on the ideate job) already ships on main; this PR adds the regression coverage that locks it in. Verified both assertions pass against the PR head SHA's workflow (ungated=0, redispatch.uses=null).
Linked issue analysis
Closes #985 (Fleet Monitor: feature-ideation.yml DEGRADED, ~33% failure rate from 'Unsupported event type: discussion' aborts). The code fix is already present on main — the ideate job is gated 'github.event_name != 'discussion'' and a redispatch job bridges discussion events via workflow_dispatch instead of invoking the reusable inline. This PR contributes the missing regression tests. NOTE: CodeRabbit's 'Linked Issues' pre-merge check warns the PR does not modify the workflow; that is technically true but the workflow fix already landed, so adding regression coverage is the correct complementary change rather than a gap. Confirmed against PR head 80289d5: jobs are [redispatch, ideate], ideate.if has no '||' branch, ungated count = 0, redispatch.uses = null — both new tests pass.
Findings
No blocking findings. The two new tests are well-constructed: test 1 guards against a vacuous pass (asserts at least one reusable-calling job exists) before checking that none are ungated, and treats an '||' in the job's if: as ungated (defends against an OR-branch re-enabling discussion execution); test 2 asserts the redispatch handler does not 'uses:' the reusable inline. No secrets, no security-sensitive surface (bats test file only; no workflow/action changes in this diff). MCP secret-scanning tool not available in this run — relying on the green gitleaks CI check; no secret-like content in the diff.
CI status
All required checks green: bats, unit-tests, shellcheck/ShellCheck, Lint, CodeQL, Analyze (actions/python), Secret scan (gitleaks), SonarCloud, AgentShield, Agent Security Scan, validate-agent-profiles, gh-aw-compile. The duplicate 'review / review' shows one CANCELLED superseded by a SUCCESS re-run; dependency-audit/dependabot entries are SKIPPED (not applicable). mergeStateStatus BLOCKED is due to REVIEW_REQUIRED, which this approval satisfies.
Reviewed automatically by the PR-review agent (single-reviewer mode: fable 5). Reply if you need a human review.
Dev-Lead — review-changes (no-changes)No changes were needed for this PR. |
…rivate — .github/workflows/feature-ideation.yml (#986) * feat: implement issue #985 — [Fleet Monitor] petry-projects/.github-private — .github/workflows/feature-ideation.yml * fix(reviews): address review comments [skip ci-relay] --------- Co-authored-by: donpetry-bot <{}+donpetry-bot@users.noreply.github.com> Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com>
…rivate — .github/workflows/feature-ideation.yml (#986) * feat: implement issue #985 — [Fleet Monitor] petry-projects/.github-private — .github/workflows/feature-ideation.yml * fix(reviews): address review comments [skip ci-relay] --------- Co-authored-by: donpetry-bot <{}+donpetry-bot@users.noreply.github.com> Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com>
…rivate — .github/workflows/feature-ideation.yml (#986) * feat: implement issue #985 — [Fleet Monitor] petry-projects/.github-private — .github/workflows/feature-ideation.yml * fix(reviews): address review comments [skip ci-relay] --------- Co-authored-by: donpetry-bot <{}+donpetry-bot@users.noreply.github.com> Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com>
…rivate — .github/workflows/feature-ideation.yml (#986) * feat: implement issue #985 — [Fleet Monitor] petry-projects/.github-private — .github/workflows/feature-ideation.yml * fix(reviews): address review comments [skip ci-relay] --------- Co-authored-by: donpetry-bot <{}+donpetry-bot@users.noreply.github.com> Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com>
…rivate — .github/workflows/feature-ideation.yml (#986) * feat: implement issue #985 — [Fleet Monitor] petry-projects/.github-private — .github/workflows/feature-ideation.yml * fix(reviews): address review comments [skip ci-relay] --------- Co-authored-by: donpetry-bot <{}+donpetry-bot@users.noreply.github.com> Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com>
…rivate — .github/workflows/feature-ideation.yml (#986) * feat: implement issue #985 — [Fleet Monitor] petry-projects/.github-private — .github/workflows/feature-ideation.yml * fix(reviews): address review comments [skip ci-relay] --------- Co-authored-by: donpetry-bot <{}+donpetry-bot@users.noreply.github.com> Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com>
…rivate — .github/workflows/feature-ideation.yml (#986) * feat: implement issue #985 — [Fleet Monitor] petry-projects/.github-private — .github/workflows/feature-ideation.yml * fix(reviews): address review comments [skip ci-relay] --------- Co-authored-by: donpetry-bot <{}+donpetry-bot@users.noreply.github.com> Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com>
…rivate — .github/workflows/feature-ideation.yml (#986) * feat: implement issue #985 — [Fleet Monitor] petry-projects/.github-private — .github/workflows/feature-ideation.yml * fix(reviews): address review comments [skip ci-relay] --------- Co-authored-by: donpetry-bot <{}+donpetry-bot@users.noreply.github.com> Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com>
…rivate — .github/workflows/feature-ideation.yml (#986) * feat: implement issue #985 — [Fleet Monitor] petry-projects/.github-private — .github/workflows/feature-ideation.yml * fix(reviews): address review comments [skip ci-relay] --------- Co-authored-by: donpetry-bot <{}+donpetry-bot@users.noreply.github.com> Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com>
…rivate — .github/workflows/feature-ideation.yml (#986) * feat: implement issue #985 — [Fleet Monitor] petry-projects/.github-private — .github/workflows/feature-ideation.yml * fix(reviews): address review comments [skip ci-relay] --------- Co-authored-by: donpetry-bot <{}+donpetry-bot@users.noreply.github.com> Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com>
…rivate — .github/workflows/feature-ideation.yml (#986) * feat: implement issue #985 — [Fleet Monitor] petry-projects/.github-private — .github/workflows/feature-ideation.yml * fix(reviews): address review comments [skip ci-relay] --------- Co-authored-by: donpetry-bot <{}+donpetry-bot@users.noreply.github.com> Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com>
…rivate — .github/workflows/feature-ideation.yml (#986) * feat: implement issue #985 — [Fleet Monitor] petry-projects/.github-private — .github/workflows/feature-ideation.yml * fix(reviews): address review comments [skip ci-relay] --------- Co-authored-by: donpetry-bot <{}+donpetry-bot@users.noreply.github.com> Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com>
…rivate — .github/workflows/feature-ideation.yml (#986) * feat: implement issue #985 — [Fleet Monitor] petry-projects/.github-private — .github/workflows/feature-ideation.yml * fix(reviews): address review comments [skip ci-relay] --------- Co-authored-by: donpetry-bot <{}+donpetry-bot@users.noreply.github.com> Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com>
…rivate — .github/workflows/feature-ideation.yml (#986) * feat: implement issue #985 — [Fleet Monitor] petry-projects/.github-private — .github/workflows/feature-ideation.yml * fix(reviews): address review comments [skip ci-relay] --------- Co-authored-by: donpetry-bot <{}+donpetry-bot@users.noreply.github.com> Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com>
…rivate — .github/workflows/feature-ideation.yml (#986) * feat: implement issue #985 — [Fleet Monitor] petry-projects/.github-private — .github/workflows/feature-ideation.yml * fix(reviews): address review comments [skip ci-relay] --------- Co-authored-by: donpetry-bot <{}+donpetry-bot@users.noreply.github.com> Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com>



Closes #985
Implemented by dev-lead agent. Please review.
Summary by CodeRabbit