Key connection report on Test Group; rename to "Connection Lifecycle" - #81
Conversation
…cle" Refactors the connection report from an epic-keyed view to a general Test-Group-keyed view. The testGroup label (Meshery Test Plan "Latest" tab Test Group, col B) is the general report key: any Test Group can drive its own filtered report by keying on it. - Add a general isTestGroup(labels, groupName) helper. - Rename the connections plugin report to "Connection Lifecycle" and filter on isTestGroup(labels, "Connection Lifecycle"); keep groupBy: ["client","suite","subSuite"]. - Transitional fallback: || isConnectionBehavior(labels) keeps the report populated with connection results emitted before the testGroup label existed. Drops once all connection results carry testGroup. - Keep the plugin key connections so the published URL (https://qa.meshery.io/connections/) is unchanged. - Document the report as a Test-Group-keyed view in the README and note the pattern generalizes to one filtered report per Test Group. Coordinated with meshery emitting the testGroup label (meshery#21089). Signed-off-by: marblom007 <158522975+marblom007@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Refactors the “connections” Allure report to be keyed by the testGroup label (Test Plan “Test Group”, col B) and renames the displayed report to “Connection Lifecycle”, with a transitional fallback to the legacy epic-based selector.
Changes:
- Added
isTestGroup(labels, groupName)helper to select results bytestGroup. - Updated the
connectionsplugin display name and filter to prefertestGroup == "Connection Lifecycle"with a temporary legacy fallback. - Updated README documentation to describe the new Test-Group-keyed report model and the transitional behavior.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
| allurerc.mjs | Introduces isTestGroup and updates the connections report’s display name + filter logic (with legacy fallback). |
| README.md | Updates report selection documentation to describe the new testGroup-keyed filtering and transition plan. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| filter: ({ labels }) => | ||
| isTestGroup(labels, "Connection Lifecycle") || | ||
| isConnectionBehavior(labels), |
| import: "@allurereport/plugin-awesome", | ||
| options: { | ||
| reportName: "Kubernetes Connections", | ||
| reportName: "Connection Lifecycle", |
| filter: ({ labels }) => | ||
| isTestGroup(labels, "Connection Lifecycle") || | ||
| isConnectionBehavior(labels), |
| Transitionally, the filter also matches the legacy epic-based selector | ||
| (`epic == "Kubernetes Connections"`, with a Kubernetes `componentUnderTest` | ||
| fallback for results carrying no `epic` label) so the report stays populated | ||
| with connection results emitted before the `testGroup` label existed. This | ||
| fallback drops once every connection result carries `testGroup`. The report is |
|
Warning Review limit reached
Next review available in: 24 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?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 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 configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughThe connections report is renamed to Connection Lifecycle. It primarily selects Allure results by ChangesConnection Lifecycle report
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
Suggested labels: Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 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 `@allurerc.mjs`:
- Around line 164-166: Update the filter predicate around isTestGroup and
isConnectionBehavior so the legacy isConnectionBehavior(labels) fallback runs
only when labels has no testGroup label; preserve direct matching for the
"Connection Lifecycle" test group and prevent results with any other testGroup
from matching through legacy labels.
🪄 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: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: d4af3ca8-e0ea-4165-a158-08487932278e
📒 Files selected for processing (2)
README.mdallurerc.mjs
…up literal Copilot/CodeRabbit review on meshery#81: - The transitional isConnectionBehavior fallback applied unconditionally, so a result carrying a *different* testGroup (but no epic, Kubernetes component) could leak into Connection Lifecycle. Gate it on `!hasTestGroup(labels)`: a result that already carries any testGroup is authoritative and is never pulled in by the legacy epic/component heuristic. Mirrors how isConnectionBehavior gates its component fallback on epic absence. - Introduce CONNECTION_LIFECYCLE_GROUP as the single source of truth for both the report display name and the testGroup filter value (no drift). - README: clarify the fallback applies only to results with no testGroup label. Signed-off-by: marblom007 <158522975+marblom007@users.noreply.github.com>
|
Thanks @coderabbitai and Copilot - both points addressed in 0441dfe:
Verified the filter truth table: CL-group -> in; other-group + k8s component -> out (the leak case); legacy epic / legacy k8s component with no testGroup -> in; unrelated -> out. |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
git show --no-ext-diff --unified=40 --format=fuller 0441dfeb0 -- allurerc.mjs README.mdLength of output: 15315
The 🐇 ✅ ✏️ Learnings added
You are interacting with an AI system. |
Description
Refactors the connection report in
allurerc.mjsfrom an epic-keyed view to a general Test-Group-keyed view, and renames it to Connection Lifecycle.The general report key is the
testGrouplabel, whose value is the Meshery Test Plan "Latest" tab Test Group (column B). Any Test Group can drive its own filtered report by keying on this label; Connection Lifecycle is the first consumer.Changes
isTestGroup(labels, groupName)-> true when a result carriestestGroup == groupName.connectionspluginreportNameto Connection Lifecycle; change itsfiltertoisTestGroup(labels, "Connection Lifecycle"); keepgroupBy: ["client","suite","subSuite"].filter = isTestGroup(labels,"Connection Lifecycle") || isConnectionBehavior(labels)so the report is not empty before freshtestGroup-labelled results land. The epic-based fallback is commented as transitional and drops once all connection results carrytestGroup.Report URL
The plugin key stays
connections, so the published report URL is unchanged: https://qa.meshery.io/connections/ (only the display name and filter change). Themeshery/,mesheryctl/subpaths confirm the plugin-key -> URL-subpath mapping.Coordinated change
mesheryemits thetestGroup="Connection Lifecycle"label from both the CLI (BATS[tg=...]token) and UI (Playwright) lanes: meshery#21089.Verification
node --check allurerc.mjs- passes.isTestGroupunit-checked in isolation (match / no-match / empty).Note (pre-existing, out of scope)
The
Publish Report to GitHub Pagesworkflow is currently failing on every run because its "Commit & push updated history" step rejectshistory.jsonl(now 101.42 MB, over GitHub's 100 MB limit). No report has deployed since - so/connections/is currently 404. This blocks all dashboard deploys, not just this report, and is flagged separately; this PR is correct and ready but the report will only go live once that pipeline is fixed.Summary by CodeRabbit
New Features
/connections/report URL is maintained.Bug Fixes