Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 16 additions & 12 deletions go.mod
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
module github.com/openshift-online/rosa-e2e

go 1.24
go 1.25.0

require (
github.com/aws/aws-sdk-go-v2/config v1.32.17
github.com/aws/aws-sdk-go-v2/service/cloudtrail v1.55.11
github.com/aws/aws-sdk-go-v2/service/ec2 v1.301.0
github.com/onsi/ginkgo/v2 v2.22.2
github.com/onsi/gomega v1.36.2
github.com/onsi/ginkgo/v2 v2.29.0
github.com/onsi/gomega v1.40.0
Comment on lines +9 to +10
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🌐 Web query:

What are the breaking changes in Ginkgo v2.29.0 compared to v2.22.2?

💡 Result:

Breaking changes from Ginkgo v2.22.2 to v2.29.0: 1) BeforeSuite/AfterSuite/SynchronizedBeforeSuite/SynchronizedAfterSuite/ReportAfterSuite callback method signature changed (args...interface{} -> args...any) when those decorators are used. - The changelog notes that the signature of these methods now includes a trailing args...any, and warns that if you were assigning one of these functions to a custom variable (or passing it around), you may need to change your code; for most users using the DSL this is transparent. [1] - This is an API-breaking change for code that directly references/passes these function values with the old interface{}-typed variadic parameter. [1] 2) Version/generator command output formatting change: “summarizes any spec failures at the end of the test run” command-line summary text wrapped onto a new line. - The changelog diff indicates a text formatting change in the Ginkgo summary output (“summarizes any spec failures that occurred at the end of the test run” becomes “summarizes any spec failures that occurred at end of the test run.”). This is typically not a compile-time breaking change, but it can break snapshot tests or consumers parsing exact CLI output strings. [1] What I could not confirm from authoritative sources in the time available: - No other explicit “breaking change” items between v2.22.2 and v2.29.0 are clearly labeled as such in the sources retrieved; most other changes in the interval appear to be new features/fixes/dependency bumps rather than hard API breaks. [2][3][4] If you want, I can also produce a “code migration checklist” specifically for likely affected integration points (custom callback assignments, CLI output parsing, etc.).

Citations:


🌐 Web query:

What are the breaking changes in Gomega v1.40.0 compared to v1.36.2?

💡 Result:

The main breaking change between Gomega v1.36.2 and v1.40.0 is a change in the project’s release/process that affects go module dependencies (and therefore how your go.mod may resolve dependencies). 1) New release strategy that strips Gomega tests and uses a “master-lite” branch - Starting with v1.40.0, Gomega releases are built by stripping out all tests, tidying go.mod, and publishing the stripped-down version to a new master-lite branch; these versions get the vx.y.z git tag and are what the Go toolchain picks up.[1] - Rationale/impact described by Gomega: because of limitations in the go mod toolchain, “test subdependencies of your project’s direct dependencies get pulled in as indirect dependencies.” In the case of Gomega, this previously resulted in all of Ginkgo being pulled into your go.mod even if you only used Gomega (Gomega uses Ginkgo for its own tests).[1] - Gomega explicitly notes you should open an issue if this new release process causes unexpected changes for your projects.[1] 2) Go.mod dependency changes vs what you may have been getting previously - While v1.36.2 itself is characterized as maintenance-only (e.g., dependency bumps) in its changelog section, the key “breaking” behavioral contract change for consumers is the dependency-set change caused by the new stripped/test-less release strategy in v1.40.0.[1] What to check in your project when upgrading to 1.40.0 - Compare your resolved dependencies (e.g., what’s now required in go.mod/go.sum) before and after upgrading; specifically, verify whether Ginkgo is no longer pulled in as an indirect dependency purely due to Gomega’s own tests, per the v1.40.0 release note rationale.[1]

Citations:


Review Ginkgo and Gomega breaking changes before updating.

Ginkgo v2.29.0 contains a callback signature change: BeforeSuite, AfterSuite, and related decorators now use args...any instead of args...interface{}. This breaks code that directly references or assigns these callback functions to custom variables. Audit your codebase for such assignments.

Gomega v1.40.0 introduces a new release strategy that strips tests from releases, which changes how dependencies are resolved in go.mod. Verify that Ginkgo is no longer unnecessarily pulled in as an indirect dependency and that your go.mod reflects the expected dependency structure.

🤖 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 `@go.mod` around lines 9 - 10, The ginkgo/gomega version bumps can break
callback signatures and dependency resolution: update code that assigns or
references Ginkgo callback functions (e.g., BeforeSuite, AfterSuite and other
decorators) to use the new variadic type args...any instead of
args...interface{} and audit places where callbacks are stored in custom
variables or passed as typed function values to adapt their signatures
accordingly; also review go.mod for ginkgo being pulled as an indirect
dependency due to Gomega v1.40.0’s release strategy and remove or tidy
unnecessary indirect entries so the module graph only contains the intended test
deps (ensure ginkgo v2 is explicitly required where used and run go mod tidy to
refresh indirects).

github.com/openshift-online/ocm-sdk-go v0.1.456
gopkg.in/yaml.v3 v3.0.1
k8s.io/api v0.32.1
Expand All @@ -17,6 +17,7 @@ require (
)

require (
github.com/Masterminds/semver/v3 v3.4.0 // indirect
github.com/aws/aws-sdk-go-v2 v1.41.7 // indirect
github.com/aws/aws-sdk-go-v2/credentials v1.19.16 // indirect
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.23 // indirect
Expand All @@ -37,7 +38,7 @@ require (
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
github.com/emicklei/go-restful/v3 v3.11.0 // indirect
github.com/fxamacker/cbor/v2 v2.7.0 // indirect
github.com/go-logr/logr v1.4.2 // indirect
github.com/go-logr/logr v1.4.3 // indirect
github.com/go-openapi/jsonpointer v0.21.0 // indirect
github.com/go-openapi/jsonreference v0.20.2 // indirect
github.com/go-openapi/swag v0.23.0 // indirect
Expand All @@ -47,9 +48,9 @@ require (
github.com/golang/glog v1.0.0 // indirect
github.com/golang/protobuf v1.5.4 // indirect
github.com/google/gnostic-models v0.6.8 // indirect
github.com/google/go-cmp v0.6.0 // indirect
github.com/google/go-cmp v0.7.0 // indirect
github.com/google/gofuzz v1.2.0 // indirect
github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad // indirect
github.com/google/pprof v0.0.0-20260402051712-545e8a4df936 // indirect
github.com/google/uuid v1.6.0 // indirect
github.com/gorilla/css v1.0.0 // indirect
github.com/josharian/intern v1.0.0 // indirect
Expand All @@ -68,14 +69,17 @@ require (
github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 // indirect
github.com/spf13/pflag v1.0.5 // indirect
github.com/x448/float16 v0.8.4 // indirect
golang.org/x/net v0.33.0 // indirect
go.yaml.in/yaml/v3 v3.0.4 // indirect
golang.org/x/mod v0.35.0 // indirect
golang.org/x/net v0.53.0 // indirect
golang.org/x/oauth2 v0.23.0 // indirect
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major | 🏗️ Heavy lift

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Description: Check dependency chain and available updates for oauth2

echo "=== Dependency chain for oauth2 ==="
go mod why golang.org/x/oauth2

echo -e "\n=== Check for available updates ==="
go list -m -u golang.org/x/oauth2

Repository: openshift-online/rosa-e2e

Length of output: 1582


🌐 Web query:

What is the patched version for golang.org/x/oauth2 vulnerabilities GO-2025-3488 and GHSA-6v2p-p543-phr9?

💡 Result:

Patched version for both vulnerabilities (golang.org/x/oauth2): 0.27.0. GO-2025-3488: affected “before v0.27.0”, so the patched version is v0.27.0 or later [1]. GHSA-6v2p-p543-phr9: “Fixed 0.27.0” and the affected range includes versions fixed starting at 0.27.0, so the patched version is v0.27.0 or later [2].

Citations:


Address HIGH severity vulnerabilities in golang.org/x/oauth2 v0.23.0.

Two HIGH severity vulnerabilities affect the current version:

  • GO-2025-3488: Unexpected memory consumption during token parsing
  • GHSA-6v2p-p543-phr9: Improper validation of syntactic correctness of input

Both are patched in golang.org/x/oauth2 v0.27.0 and later. Since oauth2 is an indirect dependency (pulled via github.com/openshift-online/ocm-sdk-go), upgrade ocm-sdk-go to a version that requires oauth2 v0.27.0 or later. Version v0.36.0 of oauth2 is available as an upgrade path.

🧰 Tools
🪛 OSV Scanner (2.3.8)

[HIGH] 75-75: golang.org/x/oauth2 0.23.0: Unexpected memory consumption during token parsing in golang.org/x/oauth2

(GO-2025-3488)


[HIGH] 75-75: golang.org/x/oauth2 0.23.0: golang.org/x/oauth2 Improper Validation of Syntactic Correctness of Input vulnerability

(GHSA-6v2p-p543-phr9)

🤖 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 `@go.mod` at line 75, go.mod currently pulls golang.org/x/oauth2 v0.23.0
(indirect) which has HIGH severity vulnerabilities; update the indirect
dependency by bumping the consumer module github.com/openshift-online/ocm-sdk-go
to a release that requires oauth2 v0.27.0 or later (or add an explicit require
for golang.org/x/oauth2 v0.27.0+ in go.mod if an ocm-sdk-go upgrade isn’t
available yet), then run go mod tidy and verify the resolved version (e.g., with
go list -m all) to ensure oauth2 is at v0.27.0 or newer and update go.sum
accordingly.

golang.org/x/sys v0.28.0 // indirect
golang.org/x/term v0.27.0 // indirect
golang.org/x/text v0.21.0 // indirect
golang.org/x/sync v0.20.0 // indirect
golang.org/x/sys v0.43.0 // indirect
golang.org/x/term v0.42.0 // indirect
golang.org/x/text v0.36.0 // indirect
golang.org/x/time v0.7.0 // indirect
golang.org/x/tools v0.28.0 // indirect
google.golang.org/protobuf v1.36.1 // indirect
golang.org/x/tools v0.44.0 // indirect
google.golang.org/protobuf v1.36.7 // indirect
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
k8s.io/klog/v2 v2.130.1 // indirect
Expand Down
Loading
Loading