Skip to content

feat: implement issue #985 — [Fleet Monitor] petry-projects/.github-private — .github/workflows/feature-ideation.yml - #986

Merged
don-petry merged 2 commits into
mainfrom
dev-lead/issue-985-20260628-0928
Jun 28, 2026
Merged

don-petry merged 2 commits into
mainfrom
dev-lead/issue-985-20260628-0928

Conversation

@don-petry

@don-petry don-petry commented Jun 28, 2026 •

Copy link
Copy Markdown
Collaborator

Closes #985

Implemented by dev-lead agent. Please review.

Summary by CodeRabbit

  • Tests
    • Added regression coverage to verify the workflow’s event-handling path stays correctly guarded.
    • Confirmed reusable workflow calls are not triggered directly from discussion events.
    • Ensured the redispatch step follows the expected bridge path instead of invoking the reusable workflow inline.

…rivate — .github/workflows/feature-ideation.yml
@don-petry
don-petry requested a review from a team as a code owner June 28, 2026 09:46
@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 Jun 28, 2026 •

Copy link
Copy Markdown

Review Change Stack

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 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 @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 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 configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: feb814db-59f1-4f9f-a434-85fcad0a059b

📥 Commits

Reviewing files that changed from the base of the PR and between 19b25a8 and 80289d5.

📒 Files selected for processing (1)
  • tests/test_feature_ideation.bats
📝 Walkthrough

Walkthrough

Adds two yq-based regression tests to tests/test_feature_ideation.bats enforcing the discussion-event bridge invariant: no job calling feature-ideation-reusable.yml may be gated on github.event_name == 'discussion', and the redispatch job must not directly uses the reusable.

Changes

Discussion-event bridge regression tests

Layer / File(s) Summary
Discussion-event bridge invariant assertions
tests/test_feature_ideation.bats
Adds a test locating all jobs calling feature-ideation-reusable.yml, asserting at least one exists and none are conditioned on discussion events. Adds a second test asserting the redispatch job does not directly uses the reusable.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~5 minutes

Suggested labels

needs-human-review

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Linked Issues check ⚠️ Warning The PR only adds regression tests and does not change .github/workflows/feature-ideation.yml, so it doesn't address the degraded workflow behavior. Update the feature-ideation.yml workflow so the failure mode is fixed, then keep the tests as regression coverage.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title names the target issue and workflow file, matching the main change area.
Out of Scope Changes check ✅ Passed The added test coverage is directly related to the workflow invariant in issue #985 and no unrelated changes are shown.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dev-lead/issue-985-20260628-0928

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.

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

Comment thread tests/test_feature_ideation.bats Outdated
@don-petry

Copy link
Copy Markdown
Collaborator Author

Dev-Lead — waiting on PR blockers (intent: review-changes)

PR: #986
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-06-28T10:17:55Z

@don-petry

Copy link
Copy Markdown
Collaborator Author

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.
Next attempt after: 2026-06-28T10:17:55Z

@don-petry
don-petry enabled auto-merge (squash) June 28, 2026 09:48

@coderabbitai coderabbitai 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.

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

📥 Commits

Reviewing files that changed from the base of the PR and between 66d67cc and 19b25a8.

📒 Files selected for processing (1)
  • tests/test_feature_ideation.bats

Comment thread tests/test_feature_ideation.bats Outdated
Comment thread tests/test_feature_ideation.bats Outdated
@don-petry
don-petry disabled auto-merge June 28, 2026 09:50
coderabbitai[bot]
coderabbitai Bot previously approved these changes Jun 28, 2026
@don-petry

Copy link
Copy Markdown
Collaborator Author

Dev-Lead — fix-reviews (applied)

Changes committed and pushed.

@sonarqubecloud

Copy link
Copy Markdown

@don-petry

Copy link
Copy Markdown
Collaborator Author

Dev-Lead — waiting on PR blockers (intent: review-changes)

PR: #986
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-06-28T10:24:56Z

@don-petry

Copy link
Copy Markdown
Collaborator Author

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.
Next attempt after: 2026-06-28T10:24:56Z

@don-petry
don-petry enabled auto-merge (squash) June 28, 2026 09:55
@don-petry
don-petry disabled auto-merge June 28, 2026 11:58

@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: 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.

@don-petry

Copy link
Copy Markdown
Collaborator Author

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

No changes were needed for this PR.

don-petry added a commit that referenced this pull request Aug 2, 2026
…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>
don-petry added a commit that referenced this pull request Aug 3, 2026
…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>
don-petry added a commit that referenced this pull request Aug 3, 2026
…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>
don-petry added a commit that referenced this pull request Aug 3, 2026
…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>
don-petry added a commit that referenced this pull request Aug 7, 2026
…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>
don-petry added a commit that referenced this pull request Aug 7, 2026
…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>
don-petry added a commit that referenced this pull request Aug 7, 2026
…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>
don-petry added a commit that referenced this pull request Aug 7, 2026
…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>
don-petry added a commit that referenced this pull request Aug 7, 2026
…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>
don-petry added a commit that referenced this pull request Aug 7, 2026
…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>
don-petry added a commit that referenced this pull request Aug 7, 2026
…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>
don-petry added a commit that referenced this pull request Aug 7, 2026
…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>
don-petry added a commit that referenced this pull request Aug 8, 2026
…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>
don-petry added a commit that referenced this pull request Aug 8, 2026
…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>
don-petry added a commit that referenced this pull request Aug 18, 2026
…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>
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/.github-private — .github/workflows/feature-ideation.yml

2 participants