Skip to content

🤖 TRT-2622: test result aggregation: properties#5163

Merged
openshift-merge-bot[bot] merged 3 commits into
openshift:mainfrom
sosiouxme:20260506-TRT-2622-aggregator-property
May 15, 2026
Merged

🤖 TRT-2622: test result aggregation: properties#5163
openshift-merge-bot[bot] merged 3 commits into
openshift:mainfrom
sosiouxme:20260506-TRT-2622-aggregator-property

Conversation

@sosiouxme
Copy link
Copy Markdown
Member

@sosiouxme sosiouxme commented May 6, 2026

The aggregator now propagates properties of the testcases aggregated, choosing the properties of the first testcase instance as representative in the aggregated testcase.

🤖 Assisted by Claude Code

  • What changed (practical effect): The test-result aggregator now preserves testcase-level metadata when combining multiple JUnit test runs. For each aggregated testcase it will adopt the lifecycle attribute and the Properties list from the first observed testcase instance and will not overwrite them on subsequent aggregations. Censoring was extended so property names and values are redacted alongside suite/case names, messages and stdout/stderr.

  • Component(s) affected: jobrunaggregator (jobrunaggregatoranalyzer) and the junit package used to parse/manipulate JUnit XML.

  • Behavioral impact for CI users/operators:

    • Aggregated JUnit emitted by the aggregator will now include testcase-level lifecycle attributes and properties (e.g., lifecycle, owner) taken from the first seen testcase. This metadata becomes visible to downstream consumers (reporting, BigQuery, dashboards).
    • Property values are subject to the same secret-censoring as other fields, so secrets in property names/values will be redacted when CensorTestSuite is applied.
    • Because the aggregator treats the first-seen testcase as authoritative for lifecycle and properties, differing property values across runs will not be merged — later values are ignored. Operators whose tooling expects merged or last-seen property semantics should update their consumers or aggregation workflow.
  • Key implementation notes (what changed in code/tests):

    • Introduced junit.Property and added TestCase.Properties ([]*Property) and TestCase.Lifecycle fields; TestSuite.Properties now uses []*Property.
    • aggregateTestCase updated to copy Lifecycle into combined if combined.Lifecycle is empty and to copy Properties into combined if combined has no properties yet.
    • CensorTestSuite updated to censor Property.Name and Property.Value and replaced the previous per-value helper with censorStr to redact multiple string pointers in-place.
    • Unit tests and fixtures updated: new test TestAggregateTestCasePropagatesProperties verifies propagation and non-overwrite behavior; junit censor tests and YAML fixtures updated to include case-level properties; example e2e JUnit artifacts were adjusted to include explicit blocks.
  • Operator considerations:

    • Expect testcase elements and lifecycle attributes to appear in aggregated JUnit outputs. Update any downstream parsing or dashboards that assume properties are absent or that properties should be merged/updated across runs.
    • The change introduced a new exported type name (Property); downstream consumers importing junit types should review compatibility if they relied on the prior TestSuiteProperty type name.

Copilot AI review requested due to automatic review settings May 6, 2026 19:11
@openshift-merge-bot
Copy link
Copy Markdown
Contributor

Pipeline controller notification
This repo is configured to use the pipeline controller. Second-stage tests will be triggered either automatically or after lgtm label is added, depending on the repository configuration. The pipeline controller will automatically detect which contexts are required and will utilize /test Prow commands to trigger the second stage.

For optional jobs, comment /test ? to see a list of all defined jobs. To trigger manually all jobs from second stage use /pipeline required command.

This repository is configured in: automatic mode

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label May 6, 2026
@openshift-ci-robot
Copy link
Copy Markdown
Contributor

openshift-ci-robot commented May 6, 2026

@sosiouxme: This pull request references TRT-2622 which is a valid jira issue.

Details

In response to this:

The aggregator now propagates properties of the testcases aggregated, choosing the properties of the first testcase instance as representative in the aggregated testcase.

🤖 Assisted by Claude Code

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 6, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Unifies JUnit property types, adds test-case properties and lifecycle attributes, updates censoring to scrub test-case properties, propagates properties during test-case aggregation, adjusts fixtures and XML test artifacts, and adds a unit test verifying property propagation.

Changes

jUnit Type Unification, Censoring, Propagation, and Tests

Layer / File(s) Summary
Data shapes and XML bindings
pkg/junit/types.go
Introduce exported Property type (xml:"property" with Name/Value), replace TestSuiteProperty with []*Property, add TestCase.Properties []*Property and TestCase.Lifecycle string with XML tags.
Censoring implementation
pkg/junit/censor.go
Extend CensorTestSuite to censor suite and test-case Properties (both Name and Value) using an in-place variadic censor helper; continue censoring names, messages, system-out/err, and recurse into child suites.
Aggregation behavior
pkg/jobrunaggregator/jobrunaggregatoranalyzer/junit.go
aggregateTestCase now sets combined.Lifecycle if empty and copies toAdd.Properties into combined.Properties when the combined case has no properties, preserving order/content.
Fixtures and testdata updates
pkg/junit/censor_test.go, pkg/junit/testdata/zz_fixture_TestCensorTestSuite.yaml, test/e2e/*/artifacts/*.xml, test/e2e/simple/artifacts/junit_operator.xml
Update test fixtures to use the new Property type; add Properties: blocks to many TestCase entries in YAML; expand/format <testcase> entries to include explicit <properties></properties> blocks; one e2e failure message expanded.
Unit tests
pkg/jobrunaggregator/jobrunaggregatoranalyzer/analyzer_test.go
Add TestAggregateTestCasePropagatesProperties verifying that aggregateTestCase copies TestCase.Properties on first aggregation, preserves property order (lifecycle then owner), and does not overwrite properties on subsequent aggregations.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

🚥 Pre-merge checks | ✅ 12 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 14.29% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Go Error Handling ⚠️ Warning Critical error handling violation in aggregateTestCase(): yaml.Marshal() error is ignored by returning nil instead of propagating it. Change return nil to return err or return fmt.Errorf("failed to marshal details: %w", err) in aggregateTestCase() yaml.Marshal error handler.
✅ Passed checks (12 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title references TRT-2622 and mentions the core change (properties propagation in test result aggregation), aligning with the PR's main objective.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Test Coverage For New Features ✅ Passed All new and modified functionality has comprehensive unit test coverage. Tests added for property/lifecycle propagation, and property censoring tested via fixture comparison at multiple levels.
Stable And Deterministic Test Names ✅ Passed No Ginkgo tests are present in this PR. All test files use standard Go testing package (testing.T). The check for Ginkgo test name stability is not applicable to this codebase change.
Test Structure And Quality ✅ Passed Custom check is for Ginkgo test quality, but this PR contains only standard Go testing package tests (not Ginkgo). The check is not applicable.
Microshift Test Compatibility ✅ Passed No new Ginkgo e2e tests added. PR contains only internal unit tests, source code changes, and XML fixture updates. MicroShift check applies only to e2e tests.
Single Node Openshift (Sno) Test Compatibility ✅ Passed No new Ginkgo e2e tests are added. Changes are unit tests (standard Go), implementation files, and test fixture data. The SNO compatibility check is not applicable.
Topology-Aware Scheduling Compatibility ✅ Passed This PR modifies test code, JUnit XML schema type definitions, and test fixtures/artifacts—not deployment manifests, operator code, or controllers. The custom check does not apply to this PR.
Ote Binary Stdout Contract ✅ Passed Changes are library/test code only. No entry points or process-level stdout writes modified.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed No new Ginkgo e2e tests added. PR contains only standard Go unit tests and library code changes. The XML files updated are test artifacts, not test definitions.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR extends the JUnit aggregation flow so aggregated TestCases can carry forward <properties> from the source testcases (using the first encountered testcase instance as the representative), and consolidates suite/testcase property modeling in pkg/junit.

Changes:

  • Unify test suite properties under a shared junit.Property type and add TestCase.Properties support in the JUnit types.
  • Propagate TestCase.Properties during aggregation (first testcase instance wins).
  • Add/update fixtures and tests to reflect the new struct fields and aggregation behavior.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
pkg/junit/types.go Unifies property modeling and adds TestCase.Properties to the JUnit data model.
pkg/junit/censor_test.go Updates censor test to use the unified Property type.
pkg/junit/testdata/zz_fixture_TestCensorTestSuite.yaml Updates golden fixture for the new TestCase.Properties field presence.
pkg/jobrunaggregator/jobrunaggregatoranalyzer/junit.go Copies testcase properties into the aggregated testcase (first source wins).
pkg/jobrunaggregator/jobrunaggregatoranalyzer/analyzer_test.go Adds coverage for properties propagation behavior in aggregation.
Comments suppressed due to low confidence (1)

pkg/junit/types.go:56

  • Renaming/removing the exported TestSuiteProperty type is a breaking API change for any downstream code importing pkg/junit. Consider keeping backwards compatibility by adding a type alias (e.g., type TestSuiteProperty = Property) or retaining the old name as a deprecated wrapper type.
	// Properties holds other properties of the test suite as a mapping of name to value
	Properties []*Property `xml:"properties>property,omitempty"`

	// TestCases are the test cases contained in the test suite
	TestCases []*TestCase `xml:"testcase"`

	// Children holds nested test suites
	Children []*TestSuite `xml:"testsuite"`
}

// Property contains a mapping of a property name to a value
type Property struct {
	XMLName xml.Name `xml:"property"`

	Name  string `xml:"name,attr"`
	Value string `xml:"value,attr"`
}

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread pkg/junit/types.go
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
pkg/junit/types.go (1)

41-55: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Keep a compatibility alias for TestSuiteProperty.

pkg/junit is already consumed from openshift/release, and those callers still construct []*junit.TestSuiteProperty. Replacing the exported type name here turns this into a cross-repo compile break even though the XML shape is effectively the same. A temporary alias keeps this PR safe while downstream code migrates.

Suggested compatibility shim
 // Property contains a mapping of a property name to a value
 type Property struct {
 	XMLName xml.Name `xml:"property"`

 	Name  string `xml:"name,attr"`
 	Value string `xml:"value,attr"`
 }
+
+// TestSuiteProperty is kept as an alias while downstream consumers migrate.
+type TestSuiteProperty = Property
🤖 Prompt for 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.

In `@pkg/junit/types.go` around lines 41 - 55, Add a backwards-compatible exported
alias named TestSuiteProperty that points to the existing Property struct so
callers constructing []*junit.TestSuiteProperty continue to compile;
specifically, add a type alias declaration like "type TestSuiteProperty =
Property" near the Property type (with a short comment explaining it’s a
compatibility shim) and keep the XML tags and original Property definition
unchanged.
🤖 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 `@pkg/jobrunaggregator/jobrunaggregatoranalyzer/junit.go`:
- Around line 238-247: The current logic uses len(combined.Properties) to decide
whether to copy properties from toAdd, which can copy properties from a later
testcase if the first aggregated testcase had no properties; instead, introduce
or use a boolean sentinel that marks whether the first testcase has already been
aggregated (e.g., a field or local flag like firstAggregated) and change the
condition to check that flag when deciding to copy properties from toAdd to
combined; update the aggregation site where combined and toAdd are handled so
that when you process the very first testcase you set firstAggregated=true and
only allow properties to be copied when firstAggregated is false (use the
symbols combined, toAdd, combined.Properties, and the new firstAggregated flag
in your changes).

In `@pkg/junit/censor_test.go`:
- Around line 16-18: CensorTestSuite currently redacts suite-level Properties
but omits testcase-level Properties on TestSuite.TestCases; update the
CensorTestSuite function to iterate over each TestCase.Properties and call
censored(censor, ...) for both Name and Value (use the same pattern as suite
Properties), ensuring you reference TestSuite.TestCases[i].Properties and the
censored(censor, ...) helper; then update pkg/junit/censor_test.go to add
Properties with secret values to the testcase fixtures (the cases around the
existing lines where Properties are asserted) and extend the tests to verify
those testcase-level property names and values are redacted.

---

Outside diff comments:
In `@pkg/junit/types.go`:
- Around line 41-55: Add a backwards-compatible exported alias named
TestSuiteProperty that points to the existing Property struct so callers
constructing []*junit.TestSuiteProperty continue to compile; specifically, add a
type alias declaration like "type TestSuiteProperty = Property" near the
Property type (with a short comment explaining it’s a compatibility shim) and
keep the XML tags and original Property definition unchanged.
🪄 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: Repository YAML (base), Central YAML (inherited)

Review profile: CHILL

Plan: Enterprise

Run ID: 227929de-8311-4572-89c9-b07a79b2ee76

📥 Commits

Reviewing files that changed from the base of the PR and between 7a79153 and 1f57a25.

📒 Files selected for processing (5)
  • pkg/jobrunaggregator/jobrunaggregatoranalyzer/analyzer_test.go
  • pkg/jobrunaggregator/jobrunaggregatoranalyzer/junit.go
  • pkg/junit/censor_test.go
  • pkg/junit/testdata/zz_fixture_TestCensorTestSuite.yaml
  • pkg/junit/types.go

Comment thread pkg/jobrunaggregator/jobrunaggregatoranalyzer/junit.go
Comment thread pkg/junit/censor_test.go
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 `@pkg/junit/censor.go`:
- Around line 17-19: In the loop that iterates testSuite.TestCases[i].Properties
(in pkg/junit/censor.go) you must guard against nil property entries and censor
both the Value and Name fields; add a nil-check for
testSuite.TestCases[i].Properties[j] before dereferencing, and call
censored(censor, ...) on both Properties[j].Value and Properties[j].Name so
user-provided names cannot leak secrets (keep using the existing censored
function).
🪄 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: Repository YAML (base), Central YAML (inherited)

Review profile: CHILL

Plan: Enterprise

Run ID: b333610c-0470-4031-9164-61ea21a03a9f

📥 Commits

Reviewing files that changed from the base of the PR and between 1f57a25 and c135517.

📒 Files selected for processing (3)
  • pkg/junit/censor.go
  • pkg/junit/censor_test.go
  • pkg/junit/testdata/zz_fixture_TestCensorTestSuite.yaml
✅ Files skipped from review due to trivial changes (1)
  • pkg/junit/censor_test.go
🚧 Files skipped from review as they are similar to previous changes (1)
  • pkg/junit/testdata/zz_fixture_TestCensorTestSuite.yaml

Comment thread pkg/junit/censor.go Outdated
Copilot AI review requested due to automatic review settings May 7, 2026 00:24
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 6 out of 6 changed files in this pull request and generated no new comments.

@sosiouxme
Copy link
Copy Markdown
Member Author

/override ci/prow/images

it's not me breaking it

@openshift-merge-bot
Copy link
Copy Markdown
Contributor

Scheduling tests matching the pipeline_run_if_changed or not excluded by pipeline_skip_if_only_changed parameters:
/test e2e

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented May 7, 2026

@sosiouxme: Overrode contexts on behalf of sosiouxme: ci/prow/images

Details

In response to this:

/override ci/prow/images

it's not me breaking it

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@sosiouxme
Copy link
Copy Markdown
Member Author

/test e2e

@petr-muller
Copy link
Copy Markdown
Member

/cc

@openshift-ci openshift-ci Bot requested a review from petr-muller May 7, 2026 12:46
@sosiouxme
Copy link
Copy Markdown
Member Author

/test e2e
according to https://redhat.atlassian.net/browse/DPTP-4861 from ship-help it's just a matter of which build cluster the job lands on (broken on build-05,6,7). would be nice to see it succeed.

@openshift-merge-bot
Copy link
Copy Markdown
Contributor

Tests from second stage were triggered manually. Pipeline can be controlled only manually, until HEAD changes. Use command to trigger second stage.

@sosiouxme
Copy link
Copy Markdown
Member Author

/test e2e

sosiouxme added 2 commits May 7, 2026 20:13
The aggregator now propagates properties of the testcases aggregated,
choosing the properties of the first testcase instance as representative
in the aggregated testcase.
@sosiouxme sosiouxme force-pushed the 20260506-TRT-2622-aggregator-property branch from 1f431f2 to 991c87d Compare May 8, 2026 00:13
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
pkg/junit/types.go (1)

41-55: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Preserve the old exported property type during rollout.

This renames a public model type from TestSuiteProperty to Property, and linked-repo findings already show openshift/release consumers in tools/junitreport and tools/gotest2junit still using TestSuiteProperty. Please keep a temporary compatibility alias here or land the companion updates in lockstep, otherwise this API change is likely to leave those consumers out of sync.

🤖 Prompt for 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.

In `@pkg/junit/types.go` around lines 41 - 55, You renamed the exported type
TestSuiteProperty to Property which breaks downstream consumers; add a temporary
exported compatibility alias by declaring "type TestSuiteProperty = Property"
alongside the new Property type (keep the existing Property struct unchanged and
ensure the alias is exported and documented as temporary) so code referencing
TestSuiteProperty continues to compile while consumers are migrated.
🧹 Nitpick comments (1)
pkg/jobrunaggregator/jobrunaggregatoranalyzer/analyzer_test.go (1)

483-515: ⚡ Quick win

Assert that properties are copied, not aliased.

These assertions still pass if aggregateTestCase keeps source.Properties by reference. A post-aggregation mutation on source would catch shared-slice/shared-element bugs and lock in the “representative properties come from the first testcase” behavior.

Suggested test tightening
 	err := aggregateTestCase("suite", combined, "logs/job", "run1", source)
 	assert.NoError(t, err)
 	assert.Equal(t, 2, len(combined.Properties))
 	assert.Equal(t, "lifecycle", combined.Properties[0].Name)
 	assert.Equal(t, "informing", combined.Properties[0].Value)
 	assert.Equal(t, "owner", combined.Properties[1].Name)
 	assert.Equal(t, "team-platform", combined.Properties[1].Value)
+
+	source.Properties[0].Value = "mutated-after-aggregation"
+	assert.Equal(t, "informing", combined.Properties[0].Value)
🤖 Prompt for 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.

In `@pkg/jobrunaggregator/jobrunaggregatoranalyzer/analyzer_test.go` around lines
483 - 515, The test currently only checks values but not that Properties were
deep-copied; after calling aggregateTestCase with source (and source2), mutate
source.Properties and/or the Property elements (e.g., change Values or replace
the slice) and then assert combined.Properties still retain the original values;
update TestAggregateTestCasePropagatesProperties to perform this
post-aggregation mutation and re-check combined to ensure aggregateTestCase (the
function under test) copies properties rather than aliasing source.Properties or
its elements.
🤖 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.

Outside diff comments:
In `@pkg/junit/types.go`:
- Around line 41-55: You renamed the exported type TestSuiteProperty to Property
which breaks downstream consumers; add a temporary exported compatibility alias
by declaring "type TestSuiteProperty = Property" alongside the new Property type
(keep the existing Property struct unchanged and ensure the alias is exported
and documented as temporary) so code referencing TestSuiteProperty continues to
compile while consumers are migrated.

---

Nitpick comments:
In `@pkg/jobrunaggregator/jobrunaggregatoranalyzer/analyzer_test.go`:
- Around line 483-515: The test currently only checks values but not that
Properties were deep-copied; after calling aggregateTestCase with source (and
source2), mutate source.Properties and/or the Property elements (e.g., change
Values or replace the slice) and then assert combined.Properties still retain
the original values; update TestAggregateTestCasePropagatesProperties to perform
this post-aggregation mutation and re-check combined to ensure aggregateTestCase
(the function under test) copies properties rather than aliasing
source.Properties or its elements.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited)

Review profile: CHILL

Plan: Enterprise

Run ID: 9cc2a237-8975-4c16-abfa-6087b527e3a1

📥 Commits

Reviewing files that changed from the base of the PR and between 1f431f2 and 991c87d.

📒 Files selected for processing (9)
  • pkg/jobrunaggregator/jobrunaggregatoranalyzer/analyzer_test.go
  • pkg/jobrunaggregator/jobrunaggregatoranalyzer/junit.go
  • pkg/junit/censor.go
  • pkg/junit/censor_test.go
  • pkg/junit/testdata/zz_fixture_TestCensorTestSuite.yaml
  • pkg/junit/types.go
  • test/e2e/observer/artifacts/multi-observers-junit_operator.xml
  • test/e2e/observer/artifacts/simple-observer-junit_operator.xml
  • test/e2e/simple/artifacts/junit_operator.xml
✅ Files skipped from review due to trivial changes (3)
  • test/e2e/simple/artifacts/junit_operator.xml
  • test/e2e/observer/artifacts/multi-observers-junit_operator.xml
  • test/e2e/observer/artifacts/simple-observer-junit_operator.xml
🚧 Files skipped from review as they are similar to previous changes (4)
  • pkg/jobrunaggregator/jobrunaggregatoranalyzer/junit.go
  • pkg/junit/censor_test.go
  • pkg/junit/testdata/zz_fixture_TestCensorTestSuite.yaml
  • pkg/junit/censor.go

@sosiouxme
Copy link
Copy Markdown
Member Author

/test e2e

@sosiouxme
Copy link
Copy Markdown
Member Author

/test e2e
/test images

@sosiouxme
Copy link
Copy Markdown
Member Author

@sosiouxme sosiouxme force-pushed the 20260506-TRT-2622-aggregator-property branch from f8d7c7a to 1ec51b3 Compare May 12, 2026 19:59
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (1)

pkg/junit/types.go:56

  • Renaming/removing the exported TestSuiteProperty type is a breaking API change for any external consumers of pkg/junit. If this package is intended to be used outside this repo, consider keeping TestSuiteProperty as a deprecated type alias to Property (or otherwise providing a compatibility shim) to avoid downstream compile breaks.
	// Properties holds other properties of the test suite as a mapping of name to value
	Properties []*Property `xml:"properties>property,omitempty"`

	// TestCases are the test cases contained in the test suite
	TestCases []*TestCase `xml:"testcase"`

	// Children holds nested test suites
	Children []*TestSuite `xml:"testsuite"`
}

// Property contains a mapping of a property name to a value
type Property struct {
	XMLName xml.Name `xml:"property"`

	Name  string `xml:"name,attr"`
	Value string `xml:"value,attr"`
}

@sosiouxme
Copy link
Copy Markdown
Member Author

/test frontend-checks
/test e2e

@openshift-merge-bot
Copy link
Copy Markdown
Contributor

Tests from second stage were triggered manually. Pipeline can be controlled only manually, until HEAD changes. Use command to trigger second stage.

@smg247
Copy link
Copy Markdown
Member

smg247 commented May 13, 2026

/lgtm

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label May 13, 2026
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented May 13, 2026

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: smg247, sosiouxme

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label May 13, 2026
@openshift-merge-bot
Copy link
Copy Markdown
Contributor

/retest-required

Remaining retests: 0 against base HEAD 68b5ac1 and 2 for PR HEAD 1ec51b3 in total

petr-muller added a commit to petr-muller/ci-tools that referenced this pull request May 13, 2026
petr-muller added a commit to petr-muller/ci-tools that referenced this pull request May 13, 2026
@openshift-merge-bot
Copy link
Copy Markdown
Contributor

/retest-required

Remaining retests: 0 against base HEAD 505823a and 1 for PR HEAD 1ec51b3 in total

@openshift-merge-bot
Copy link
Copy Markdown
Contributor

/retest-required

Remaining retests: 0 against base HEAD ffba034 and 0 for PR HEAD 1ec51b3 in total

petr-muller added a commit to petr-muller/ci-tools that referenced this pull request May 13, 2026
@openshift-merge-bot
Copy link
Copy Markdown
Contributor

/hold

Revision 1ec51b3 was retested 3 times: holding

@openshift-ci openshift-ci Bot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label May 13, 2026
@sosiouxme
Copy link
Copy Markdown
Member Author

/test lint

@petr-muller
Copy link
Copy Markdown
Member

/hold cancel

1 similar comment
@petr-muller
Copy link
Copy Markdown
Member

/hold cancel

@openshift-ci openshift-ci Bot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label May 15, 2026
@openshift-merge-bot
Copy link
Copy Markdown
Contributor

/retest-required

Remaining retests: 0 against base HEAD f86d520 and 2 for PR HEAD 1ec51b3 in total

@sosiouxme
Copy link
Copy Markdown
Member Author

this is ridiculous, it succeeded already.
/override ci/prow/images

@openshift-merge-bot
Copy link
Copy Markdown
Contributor

Scheduling tests matching the pipeline_run_if_changed or not excluded by pipeline_skip_if_only_changed parameters:
/test e2e

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented May 15, 2026

@sosiouxme: Overrode contexts on behalf of sosiouxme: ci/prow/images

Details

In response to this:

this is ridiculous, it succeeded already.
/override ci/prow/images

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented May 15, 2026

@sosiouxme: all tests passed!

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

@openshift-merge-bot openshift-merge-bot Bot merged commit 9cacb61 into openshift:main May 15, 2026
17 checks passed
@sosiouxme sosiouxme deleted the 20260506-TRT-2622-aggregator-property branch May 15, 2026 20:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. lgtm Indicates that a PR is ready to be merged.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants