Skip to content

MGMT-23548: Ensure tests w/ gomock controllers call Finish()#10024

Merged
openshift-merge-bot[bot] merged 1 commit intoopenshift:masterfrom
bluesort:fix-missing-test-finishes
Apr 12, 2026
Merged

MGMT-23548: Ensure tests w/ gomock controllers call Finish()#10024
openshift-merge-bot[bot] merged 1 commit intoopenshift:masterfrom
bluesort:fix-missing-test-finishes

Conversation

@bluesort
Copy link
Copy Markdown
Member

@bluesort bluesort commented Mar 18, 2026

Problem

Tests using gomock controllers were missing ctrl.Finish() calls in their teardown, causing false negatives where tests would pass even when mock expectations were violated. Without Finish():

  • .Times(N) constraints were never verified
  • .MaxTimes(0) violations were silently ignored
  • Mock call counts and ordering were not validated

The following 16 test files had controllers missing Finish() calls:

  • pkg/s3wrapper/filesystem_test.go
  • pkg/kafka/json_writer_test.go
  • internal/uploader/auth_utils_test.go
  • internal/uploader/events_uploader_test.go
  • internal/usage/manager_test.go
  • internal/stream/notification_stream_test.go
  • internal/metrics/directory_usage_collector_test.go
  • internal/installercache/installercache_test.go
  • internal/host/hostutil/update_host_test.go
  • internal/host/hostcommands/container_image_availability_cmd_test.go
  • internal/host/hostcommands/disk_performance_cmd_test.go
  • internal/host/hostcommands/domain_name_resolution_cmd_test.go
  • internal/provider/registry/registry_test.go
  • internal/cluster/common_test.go
  • internal/controller/controllers/clusterdeployments_controller_test.go
  • internal/spoke_k8s_client/factory_test.go
  • internal/host/refresh_status_preprocessor_test.go

The list of affected files was generated with the help of Claude code and verified with the following snippet:

rg -l 'gomock\.NewController' --multiline | while read file; do
  if ! rg -q '\.Finish\(\)' "$file"; then
    echo "$file"
  fi
done

Solution

Add Finish() calls to the above test files. A companion PR adds a dedicated unit-testing skill so generated tests adhere to this pattern in the future.

3 test files had incorrect EXPECT() invocations that were unchecked and thus went unnoticed:

  • internal/uploader/events_uploader_test.go
    • 2 UploadEvents specs simulating bad pull secret cases expected calls to V2GetEvents which should not be run when a pull secret error is encountered
  • internal/host/hostcommands/domain_name_resolution_cmd_test.go
    • 2 domainNameResolution specs covering error cases expected calls to GetReleaseImage which should not be run when the given errors are encountered
  • internal/host/refresh_status_preprocessor_test.go
    • Cluster Refresh Status Preprocessor specs expected a call to ValidateHost which never runs since the test hosts have infraEnv
    • Cluster Refresh Status Preprocessor specs expected a call to ValidateCluster, which is called by internal/cluster, not internal/host

Both failures have been addressed by removing the incorrect expects.

List all the issues related to this PR

  • New Feature
  • Enhancement
  • Bug fix
  • Tests
  • Documentation
  • CI/CD

What environments does this code impact?

  • Automation (CI, tools, etc)
  • Cloud
  • Operator Managed Deployments
  • None

How was this code tested?

  • assisted-test-infra environment
  • dev-scripts environment
  • Reviewer's test appreciated
  • Waiting for CI to do a full test run
  • Manual (Affected tests run in local development environment)
  • No tests needed

Reviewers Checklist

  • Are the title and description (in both PR and commit) meaningful and clear?
  • Is there a bug required (and linked) for this change?
  • Should this PR be backported?

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

@bluesort: This pull request references MGMT-23548 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the bug to target the "4.22.0" version, but no target version was set.

Details

In response to this:

Problem

Tests using gomock controllers were missing ctrl.Finish() calls in their teardown, causing false negatives where tests would pass even when mock expectations were violated. Without Finish():

  • .Times(N) constraints were never verified
  • .MaxTimes(0) violations were silently ignored
  • Mock call counts and ordering were not validated

The following 16 test files had controllers missing Finish() calls:

  • pkg/s3wrapper/filesystem_test.go
  • pkg/kafka/json_writer_test.go
  • internal/uploader/auth_utils_test.go
  • internal/uploader/events_uploader_test.go
  • internal/usage/manager_test.go
  • internal/stream/notification_stream_test.go
  • internal/metrics/directory_usage_collector_test.go
  • internal/installercache/installercache_test.go
  • internal/host/hostutil/update_host_test.go
  • internal/host/hostcommands/container_image_availability_cmd_test.go
  • internal/host/hostcommands/disk_performance_cmd_test.go
  • internal/host/hostcommands/domain_name_resolution_cmd_test.go
  • internal/provider/registry/registry_test.go
  • internal/cluster/common_test.go
  • internal/controller/controllers/clusterdeployments_controller_test.go
  • internal/spoke_k8s_client/factory_test.go
  • internal/host/refresh_status_preprocessor_test.go

Solution

Add Finish() calls to the above test files. Call attention to this pattern in CLAUDE.md to make the issue less likely to repeat.

2 test files had incorrect EXPECT() invocations that were unchecked and thus went unnoticed:

  • internal/uploader/events_uploader_test.go
    • 2 UploadEvents specs simulating bad pull secret cases expected calls to V2GetEvents which should not be run when a pull secret error is encountered
  • internal/host/hostcommands/domain_name_resolution_cmd_test.go
    • 2 domainNameResolution specs covering error cases expected calls to GetReleaseImage which should not be run when the given errors are encountered
      Both cases have been addressed by removing the incorrect expects.

List all the issues related to this PR

  • New Feature
  • Enhancement
  • Bug fix
  • Tests
  • Documentation
  • CI/CD

What environments does this code impact?

  • Automation (CI, tools, etc)
  • Cloud
  • Operator Managed Deployments
  • None

How was this code tested?

  • assisted-test-infra environment
  • dev-scripts environment
  • Reviewer's test appreciated
  • Waiting for CI to do a full test run
  • Manual (Affected tests run in local development environment)
  • No tests needed

Reviewers Checklist

  • Are the title and description (in both PR and commit) meaningful and clear?
  • Is there a bug required (and linked) for this change?
  • Should this PR be backported?

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 Mar 18, 2026

Important

Review skipped

Auto reviews are limited based on label configuration.

🚫 Review skipped — only excluded labels are configured. (1)
  • do-not-merge/work-in-progress

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 2f064953-3fe0-475e-b17b-ddf67ffbdc6f

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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

Adds a "Test Patterns" doc entry about gomock usage and updates many test suites to call ctrl.Finish() (or controller.Finish()) in Ginkgo AfterEach hooks; also removes a few redundant mock expectations in some error-path tests. No production code or public API changes.

Changes

Cohort / File(s) Summary
Documentation
CLAUDE.md
Adds "Test Patterns" guidance requiring ctrl.Finish() in AfterEach and explains verification implications for .Times(), .MaxTimes(0), .Do()/.DoAndReturn().
Cluster & controller tests
internal/cluster/common_test.go, internal/controller/controllers/clusterdeployments_controller_test.go
Added ctrl.Finish() / mockCtrl.Finish() in AfterEach hooks across several Describe scopes to finalize gomock controllers.
Host command tests
internal/host/hostcommands/container_image_availability_cmd_test.go, internal/host/hostcommands/disk_performance_cmd_test.go, internal/host/hostcommands/domain_name_resolution_cmd_test.go
Inserted ctrl.Finish() in AfterEach; removed mockVersions.GetReleaseImage(...) expectations in two negative domain-name-resolution tests.
Host util & preprocessor tests
internal/host/hostutil/update_host_test.go, internal/host/refresh_status_preprocessor_test.go
Added ctrl.Finish() in AfterEach; removed some mockOperatorManager.Validate* expectations in refresh status tests.
Installer cache & metrics tests
internal/installercache/installercache_test.go, internal/metrics/directory_usage_collector_test.go
Added ctrl.Finish() calls in AfterEach hooks (ensuring gomock finalization ordering with temp-dir/server teardown).
Provider / registry tests
internal/provider/registry/registry_test.go
Added AfterEach blocks calling ctrl.Finish() across multiple Describe suites.
Spoke k8s client tests
internal/spoke_k8s_client/factory_test.go
Added suite-level AfterEach calling controller.Finish() and defer controller.Finish() in table-driven test entries.
Stream & notification tests
internal/stream/notification_stream_test.go
Added ctrl.Finish() in AfterEach for Close and Notify suites to perform per-test gomock finalization.
Uploader tests
internal/uploader/auth_utils_test.go, internal/uploader/events_uploader_test.go
Added ctrl.Finish() in AfterEach; removed mockEvents.EXPECT().V2GetEvents(...) expectations in certain UploadEvents error-path tests.
Usage & package tests
internal/usage/manager_test.go, pkg/kafka/json_writer_test.go, pkg/s3wrapper/filesystem_test.go
Added ctrl.Finish() in AfterEach hooks to ensure gomock controllers are finalized per test.
Other tests (various)
internal/... (multiple test files listed in diff)
Standardized gomock teardown by adding ctrl.Finish() / controller.Finish() in AfterEach across additional test suites.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

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

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

@openshift-ci openshift-ci bot added the size/M Denotes a PR that changes 30-99 lines, ignoring generated files. label Mar 18, 2026
@openshift-ci openshift-ci bot requested review from jhernand and yoavsc0302 March 18, 2026 19:52
@openshift-ci openshift-ci bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Mar 18, 2026
It("Missing cluster name", func() {
cluster = common.Cluster{Cluster: models.Cluster{ID: &clusterID, BaseDNSDomain: baseDNSDomain}}
Expect(db.Create(&cluster).Error).ShouldNot(HaveOccurred())
mockVersions.EXPECT().GetReleaseImage(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return(&models.ReleaseImage{URL: swag.String("quay.io/release")}, nil)
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Handling for the error covered by this spec happens before GetReleaseImage is called

It("Missing domain base name", func() {
cluster = common.Cluster{Cluster: models.Cluster{ID: &clusterID, Name: name}}
Expect(db.Create(&cluster).Error).ShouldNot(HaveOccurred())
mockVersions.EXPECT().GetReleaseImage(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return(&models.ReleaseImage{URL: swag.String("quay.io/release")}, nil)
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Handling for the error covered by this spec happens before GetReleaseImage is called

})
It("fails to uploads event data when malformed pullsecret", func() {
createOCMPullSecretWithEmptyToken(*mockK8sClient)
mockEvents.EXPECT().V2GetEvents(
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Handling for the error covered by this spec happens before V2GetEvents is called

})
It("fails to uploads event data when pullsecret not found", func() {
createOCMPullSecretNotFound(*mockK8sClient)
mockEvents.EXPECT().V2GetEvents(
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Handling for the error covered by this spec happens before V2GetEvents is called

@bluesort
Copy link
Copy Markdown
Member Author

/cc @eliorerz

@openshift-ci openshift-ci bot requested a review from eliorerz March 18, 2026 19:55
@codecov
Copy link
Copy Markdown

codecov bot commented Mar 18, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 44.42%. Comparing base (19a2f27) to head (bee7ff1).
⚠️ Report is 36 commits behind head on master.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##           master   #10024      +/-   ##
==========================================
+ Coverage   44.27%   44.42%   +0.15%     
==========================================
  Files         416      415       -1     
  Lines       72549    72908     +359     
==========================================
+ Hits        32121    32391     +270     
- Misses      37522    37603      +81     
- Partials     2906     2914       +8     

see 9 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@bluesort
Copy link
Copy Markdown
Member Author

/retest

@bluesort bluesort force-pushed the fix-missing-test-finishes branch from 8f9b187 to 8178e7b Compare March 23, 2026 19:48
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 the current code and only fix it if needed.

Inline comments:
In `@pkg/s3wrapper/filesystem_test.go`:
- Around line 59-63: Reorder the AfterEach cleanup so gomock always verifies
expectations: call ctrl.Finish() before asserting removal succeeded (i.e.,
invoke ctrl.Finish() at the start of the AfterEach), then run err :=
os.RemoveAll(baseDir) and check err with Expect only after; also add a nil guard
(if ctrl != nil { ctrl.Finish() }) to avoid panics if the controller wasn't
created. Ensure you update the AfterEach closure surrounding the symbols
AfterEach, ctrl.Finish(), os.RemoveAll, baseDir, and Expect accordingly.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: d0368e8b-a480-4109-bd81-42dbeb3ed246

📥 Commits

Reviewing files that changed from the base of the PR and between 8f9b187 and 8178e7b.

📒 Files selected for processing (18)
  • CLAUDE.md
  • internal/cluster/common_test.go
  • internal/controller/controllers/clusterdeployments_controller_test.go
  • internal/host/hostcommands/container_image_availability_cmd_test.go
  • internal/host/hostcommands/disk_performance_cmd_test.go
  • internal/host/hostcommands/domain_name_resolution_cmd_test.go
  • internal/host/hostutil/update_host_test.go
  • internal/host/refresh_status_preprocessor_test.go
  • internal/installercache/installercache_test.go
  • internal/metrics/directory_usage_collector_test.go
  • internal/provider/registry/registry_test.go
  • internal/spoke_k8s_client/factory_test.go
  • internal/stream/notification_stream_test.go
  • internal/uploader/auth_utils_test.go
  • internal/uploader/events_uploader_test.go
  • internal/usage/manager_test.go
  • pkg/kafka/json_writer_test.go
  • pkg/s3wrapper/filesystem_test.go
✅ Files skipped from review due to trivial changes (3)
  • internal/metrics/directory_usage_collector_test.go
  • pkg/kafka/json_writer_test.go
  • CLAUDE.md
🚧 Files skipped from review as they are similar to previous changes (9)
  • internal/usage/manager_test.go
  • internal/host/hostcommands/disk_performance_cmd_test.go
  • internal/uploader/auth_utils_test.go
  • internal/stream/notification_stream_test.go
  • internal/installercache/installercache_test.go
  • internal/host/hostcommands/domain_name_resolution_cmd_test.go
  • internal/spoke_k8s_client/factory_test.go
  • internal/uploader/events_uploader_test.go
  • internal/controller/controllers/clusterdeployments_controller_test.go

@bluesort bluesort force-pushed the fix-missing-test-finishes branch from 8178e7b to 901eb1d Compare March 23, 2026 20:44
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 the current code and only fix it if needed.

Inline comments:
In `@internal/controller/controllers/clusterdeployments_controller_test.go`:
- Around line 2058-2060: The nested "cluster deletion" spec is calling
mockCtrl.Finish() in its AfterEach while the parent suite already calls
mockCtrl.Finish(), causing a duplicate Finish invocation; remove the inner
AfterEach or its mockCtrl.Finish() call so mockCtrl.Finish() is only invoked
once for the suite (locate the nested AfterEach block that contains
mockCtrl.Finish() in the cluster deletion tests and delete that line or the
entire AfterEach if it's empty otherwise leave other teardown code intact).

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 5abd904b-4298-4ead-a7f3-45c0122ddb11

📥 Commits

Reviewing files that changed from the base of the PR and between 8178e7b and 901eb1d.

📒 Files selected for processing (18)
  • CLAUDE.md
  • internal/cluster/common_test.go
  • internal/controller/controllers/clusterdeployments_controller_test.go
  • internal/host/hostcommands/container_image_availability_cmd_test.go
  • internal/host/hostcommands/disk_performance_cmd_test.go
  • internal/host/hostcommands/domain_name_resolution_cmd_test.go
  • internal/host/hostutil/update_host_test.go
  • internal/host/refresh_status_preprocessor_test.go
  • internal/installercache/installercache_test.go
  • internal/metrics/directory_usage_collector_test.go
  • internal/provider/registry/registry_test.go
  • internal/spoke_k8s_client/factory_test.go
  • internal/stream/notification_stream_test.go
  • internal/uploader/auth_utils_test.go
  • internal/uploader/events_uploader_test.go
  • internal/usage/manager_test.go
  • pkg/kafka/json_writer_test.go
  • pkg/s3wrapper/filesystem_test.go
✅ Files skipped from review due to trivial changes (7)
  • internal/metrics/directory_usage_collector_test.go
  • internal/cluster/common_test.go
  • internal/provider/registry/registry_test.go
  • internal/installercache/installercache_test.go
  • internal/host/hostcommands/disk_performance_cmd_test.go
  • pkg/s3wrapper/filesystem_test.go
  • CLAUDE.md
🚧 Files skipped from review as they are similar to previous changes (7)
  • internal/uploader/auth_utils_test.go
  • internal/host/refresh_status_preprocessor_test.go
  • internal/host/hostcommands/domain_name_resolution_cmd_test.go
  • internal/stream/notification_stream_test.go
  • pkg/kafka/json_writer_test.go
  • internal/spoke_k8s_client/factory_test.go
  • internal/uploader/events_uploader_test.go

@bluesort bluesort force-pushed the fix-missing-test-finishes branch 2 times, most recently from 6a1eb08 to 61008af Compare March 24, 2026 16:52
@bluesort
Copy link
Copy Markdown
Member Author

/test edge-unit-test

@openshift-ci
Copy link
Copy Markdown

openshift-ci bot commented Mar 24, 2026

@bluesort: No presubmit jobs available for openshift/assisted-service@master

Details

In response to this:

/test edge-unit-test

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.

@bluesort
Copy link
Copy Markdown
Member Author

/test edge-unit-test

@bluesort
Copy link
Copy Markdown
Member Author

/test edge-e2e-metal-assisted-none-4-22

@bluesort
Copy link
Copy Markdown
Member Author

/override ci/prow/e2e-agent-compact-ipv4-iso-no-registry ci/prow/edge-e2e-ai-operator-ztp

@openshift-ci
Copy link
Copy Markdown

openshift-ci bot commented Mar 27, 2026

@bluesort: Overrode contexts on behalf of bluesort: ci/prow/e2e-agent-compact-ipv4-iso-no-registry, ci/prow/edge-e2e-ai-operator-ztp

Details

In response to this:

/override ci/prow/e2e-agent-compact-ipv4-iso-no-registry ci/prow/edge-e2e-ai-operator-ztp

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.

CLAUDE.md Outdated
### Test Patterns

#### Mock Testing with Gomock

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.

nit: can we state the scope of where this is going to be called, and maybe create a test skill specificly on how to write tests in assisted (we can start by this section only)

Copy link
Copy Markdown
Member Author

@bluesort bluesort Apr 7, 2026

Choose a reason for hiding this comment

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

Pushed a dedicated assisted-service-writing-unit-tests skill to help enforce patterns like this one. Touched on it in more detail in the PR description

@rccrdpccl
Copy link
Copy Markdown
Contributor

minor comments otherwise LGTM

@bluesort bluesort force-pushed the fix-missing-test-finishes branch 2 times, most recently from 338133e to 5d39a91 Compare April 7, 2026 19:30
@openshift-ci openshift-ci bot added size/L Denotes a PR that changes 100-499 lines, ignoring generated files. and removed size/M Denotes a PR that changes 30-99 lines, ignoring generated files. labels Apr 7, 2026
@bluesort
Copy link
Copy Markdown
Member Author

bluesort commented Apr 8, 2026

/retest

@bluesort bluesort force-pushed the fix-missing-test-finishes branch from 5d39a91 to bee7ff1 Compare April 10, 2026 14:19
@openshift-ci openshift-ci bot added size/M Denotes a PR that changes 30-99 lines, ignoring generated files. and removed size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Apr 10, 2026
@rccrdpccl
Copy link
Copy Markdown
Contributor

❤️
/lgtm
/approve

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Apr 10, 2026
@openshift-ci
Copy link
Copy Markdown

openshift-ci bot commented Apr 10, 2026

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: bluesort, rccrdpccl

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-merge-bot
Copy link
Copy Markdown
Contributor

/retest-required

Remaining retests: 0 against base HEAD 866e3ab and 2 for PR HEAD bee7ff1 in total

@openshift-merge-bot
Copy link
Copy Markdown
Contributor

/retest-required

Remaining retests: 0 against base HEAD 3281224 and 1 for PR HEAD bee7ff1 in total

@openshift-ci
Copy link
Copy Markdown

openshift-ci bot commented Apr 12, 2026

@bluesort: 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 aed50cb into openshift:master Apr 12, 2026
27 checks passed
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. size/M Denotes a PR that changes 30-99 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants