wip: deps(o/api,o/client-go): bump deps (test api open api model namer)#922
wip: deps(o/api,o/client-go): bump deps (test api open api model namer)#922ingvagabund wants to merge 1 commit into
Conversation
Walkthrough
Changesgo.mod dependency and replace directive updates
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes 🚥 Pre-merge checks | ✅ 9 | ❌ 6❌ Failed checks (5 warnings, 1 inconclusive)
✅ Passed checks (9 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Warning There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure. 🔧 golangci-lint (2.12.2)Command failed Comment |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
There was a problem hiding this comment.
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 `@go.mod`:
- Around line 68-79: The go-openapi/swag dependency has been upgraded from
v0.23.0 to v0.25.4, which includes breaking changes. Search the operator
codebase for any usage of JSONMapSlice.MarshalYAML() and replace it with
YAMLMapSlice if found, since MarshalYAML was removed from JSONMapSlice in
v0.25.0. Also search for any calls to IsFloat64AJSONInteger() and verify that
the new rounding-based comparison behavior (changed from truncation in v0.25.4)
is compatible with how it is being used. If neither of these functions are used
in the codebase, document this verification and no further changes are needed.
The submodule expansion visible in go.mod is expected and does not require
modification.
- Around line 41-44: The replace directives in go.mod are redirecting
github.com/openshift/api and github.com/openshift/client-go to personal
experimental forks (ingvagabund/api and ingvagabund/client-go) using
pseudo-versions, which violates supply chain security guidelines. Remove the
entire replace block (lines 41-44) that contains these redirections, and instead
ensure the module requires official github.com/openshift/api and
github.com/openshift/client-go packages with stable release tags. Then verify
that the package imports in pkg/operator/replacement_starter.go (specifically
the calls to configclient.NewForConfigAndClient(),
operatorclient.NewForConfigAndClient(), routeclient.NewForConfigAndClient(), and
oauthclient.NewForConfigAndClient()) compile correctly against the official
OpenShift packages.
🪄 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: openshift/coderabbit/.coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 144ed6a6-ab53-4656-aa48-720a4704e148
⛔ Files ignored due to path filters (299)
go.sumis excluded by!**/*.sumvendor/github.com/emicklei/go-restful/v3/.travis.ymlis excluded by!**/vendor/**,!vendor/**vendor/github.com/emicklei/go-restful/v3/CHANGES.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/emicklei/go-restful/v3/README.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/emicklei/go-restful/v3/curly.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/emicklei/go-restful/v3/custom_verb.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/emicklei/go-restful/v3/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/.codecov.ymlis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/.golangci.ymlis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/.mockery.ymlis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/README.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/SECURITY.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/cmdutils/LICENSEis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/cmdutils/cmd_utils.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/cmdutils/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/cmdutils_iface.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/conv/LICENSEis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/conv/convert.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/conv/convert_types.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/conv/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/conv/format.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/conv/sizeof.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/conv/type_constraints.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/conv_iface.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/convert.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/convert_types.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/file.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/fileutils/LICENSEis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/fileutils/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/fileutils/file.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/fileutils/path.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/fileutils_iface.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/go.workis excluded by!**/*.work,!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/go.work.sumis excluded by!**/*.sum,!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/initialism_index.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/json.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/jsonname/LICENSEis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/jsonname/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/jsonname/name_provider.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/jsonname_iface.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/jsonutils/LICENSEis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/jsonutils/README.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/jsonutils/adapters/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/jsonutils/adapters/ifaces/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/jsonutils/adapters/ifaces/ifaces.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/jsonutils/adapters/ifaces/registry_iface.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/jsonutils/adapters/registry.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/adapter.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/lexer.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/ordered_map.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/pool.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/register.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/writer.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/jsonutils/concat.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/jsonutils/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/jsonutils/json.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/jsonutils/ordered_map.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/jsonutils_iface.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/loading/LICENSEis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/loading/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/loading/errors.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/loading/json.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/loading/loading.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/loading/options.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/loading/yaml.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/loading_iface.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/mangling/BENCHMARK.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/mangling/LICENSEis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/mangling/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/mangling/initialism_index.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/mangling/name_lexem.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/mangling/name_mangler.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/mangling/options.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/mangling/pools.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/mangling/split.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/mangling/string_bytes.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/mangling/util.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/mangling_iface.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/name_lexem.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/net.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/netutils/LICENSEis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/netutils/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/netutils/net.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/netutils_iface.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/split.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/stringutils/LICENSEis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/stringutils/collection_formats.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/stringutils/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/stringutils/strings.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/stringutils_iface.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/typeutils/LICENSEis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/typeutils/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/typeutils/types.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/typeutils_iface.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/util.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/yaml.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/yamlutils/LICENSEis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/yamlutils/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/yamlutils/errors.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/yamlutils/ordered_map.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/yamlutils/yaml.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/yamlutils_iface.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/josharian/intern/README.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/josharian/intern/intern.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/josharian/intern/license.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/mailru/easyjson/LICENSEis excluded by!**/vendor/**,!vendor/**vendor/github.com/mailru/easyjson/buffer/pool.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mailru/easyjson/jlexer/bytestostr.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mailru/easyjson/jlexer/bytestostr_nounsafe.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mailru/easyjson/jlexer/error.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mailru/easyjson/jlexer/lexer.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mailru/easyjson/jwriter/writer.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/.ci-operator.yamlis excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/Dockerfile.ocpis excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/Makefileis excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/apiextensions/v1alpha1/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/apiextensions/v1alpha1/zz_generated.model_name.gois excluded by!**/vendor/**,!vendor/**,!**/zz_generated*vendor/github.com/openshift/api/apiserver/v1/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/apiserver/v1/zz_generated.model_name.gois excluded by!**/vendor/**,!vendor/**,!**/zz_generated*vendor/github.com/openshift/api/apps/v1/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/apps/v1/zz_generated.model_name.gois excluded by!**/vendor/**,!vendor/**,!**/zz_generated*vendor/github.com/openshift/api/authorization/v1/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/authorization/v1/zz_generated.model_name.gois excluded by!**/vendor/**,!vendor/**,!**/zz_generated*vendor/github.com/openshift/api/build/v1/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/build/v1/zz_generated.model_name.gois excluded by!**/vendor/**,!vendor/**,!**/zz_generated*vendor/github.com/openshift/api/cloudnetwork/v1/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/cloudnetwork/v1/zz_generated.model_name.gois excluded by!**/vendor/**,!vendor/**,!**/zz_generated*vendor/github.com/openshift/api/config/v1/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/config/v1/zz_generated.model_name.gois excluded by!**/vendor/**,!vendor/**,!**/zz_generated*vendor/github.com/openshift/api/config/v1alpha1/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/config/v1alpha1/types_cluster_monitoring.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/config/v1alpha1/zz_generated.model_name.gois excluded by!**/vendor/**,!vendor/**,!**/zz_generated*vendor/github.com/openshift/api/config/v1alpha1/zz_generated.swagger_doc_generated.gois excluded by!**/vendor/**,!vendor/**,!**/zz_generated*vendor/github.com/openshift/api/config/v1alpha2/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/config/v1alpha2/zz_generated.model_name.gois excluded by!**/vendor/**,!vendor/**,!**/zz_generated*vendor/github.com/openshift/api/console/v1/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/console/v1/zz_generated.model_name.gois excluded by!**/vendor/**,!vendor/**,!**/zz_generated*vendor/github.com/openshift/api/etcd/v1/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/etcd/v1/zz_generated.model_name.gois excluded by!**/vendor/**,!vendor/**,!**/zz_generated*vendor/github.com/openshift/api/etcd/v1alpha1/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/etcd/v1alpha1/zz_generated.model_name.gois excluded by!**/vendor/**,!vendor/**,!**/zz_generated*vendor/github.com/openshift/api/features.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/features/features.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/helm/v1beta1/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/helm/v1beta1/zz_generated.model_name.gois excluded by!**/vendor/**,!vendor/**,!**/zz_generated*vendor/github.com/openshift/api/image/v1/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/image/v1/zz_generated.model_name.gois excluded by!**/vendor/**,!vendor/**,!**/zz_generated*vendor/github.com/openshift/api/imageregistry/v1/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/imageregistry/v1/zz_generated.model_name.gois excluded by!**/vendor/**,!vendor/**,!**/zz_generated*vendor/github.com/openshift/api/kubecontrolplane/v1/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/kubecontrolplane/v1/zz_generated.model_name.gois excluded by!**/vendor/**,!vendor/**,!**/zz_generated*vendor/github.com/openshift/api/legacyconfig/v1/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/legacyconfig/v1/zz_generated.model_name.gois excluded by!**/vendor/**,!vendor/**,!**/zz_generated*vendor/github.com/openshift/api/machine/v1/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/machine/v1/zz_generated.model_name.gois excluded by!**/vendor/**,!vendor/**,!**/zz_generated*vendor/github.com/openshift/api/machine/v1alpha1/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/machine/v1alpha1/zz_generated.model_name.gois excluded by!**/vendor/**,!vendor/**,!**/zz_generated*vendor/github.com/openshift/api/machine/v1beta1/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/machine/v1beta1/zz_generated.model_name.gois excluded by!**/vendor/**,!vendor/**,!**/zz_generated*vendor/github.com/openshift/api/monitoring/v1/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/monitoring/v1/zz_generated.model_name.gois excluded by!**/vendor/**,!vendor/**,!**/zz_generated*vendor/github.com/openshift/api/network/v1/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/network/v1/zz_generated.model_name.gois excluded by!**/vendor/**,!vendor/**,!**/zz_generated*vendor/github.com/openshift/api/network/v1alpha1/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/network/v1alpha1/zz_generated.model_name.gois excluded by!**/vendor/**,!vendor/**,!**/zz_generated*vendor/github.com/openshift/api/networkoperator/v1/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/networkoperator/v1/zz_generated.model_name.gois excluded by!**/vendor/**,!vendor/**,!**/zz_generated*vendor/github.com/openshift/api/oauth/v1/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/oauth/v1/zz_generated.model_name.gois excluded by!**/vendor/**,!vendor/**,!**/zz_generated*vendor/github.com/openshift/api/openshiftcontrolplane/v1/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/openshiftcontrolplane/v1/zz_generated.model_name.gois excluded by!**/vendor/**,!vendor/**,!**/zz_generated*vendor/github.com/openshift/api/operator/v1/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/operator/v1/types_etcd.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_12_etcd_01_etcds-CustomNoUpgrade.crd.yamlis excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_12_etcd_01_etcds-DevPreviewNoUpgrade.crd.yamlis excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_12_etcd_01_etcds-TechPreviewNoUpgrade.crd.yamlis excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/operator/v1/zz_generated.model_name.gois excluded by!**/vendor/**,!vendor/**,!**/zz_generated*vendor/github.com/openshift/api/operator/v1/zz_generated.swagger_doc_generated.gois excluded by!**/vendor/**,!vendor/**,!**/zz_generated*vendor/github.com/openshift/api/operator/v1alpha1/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/operator/v1alpha1/zz_generated.model_name.gois excluded by!**/vendor/**,!vendor/**,!**/zz_generated*vendor/github.com/openshift/api/operatorcontrolplane/v1alpha1/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/operatorcontrolplane/v1alpha1/zz_generated.model_name.gois excluded by!**/vendor/**,!vendor/**,!**/zz_generated*vendor/github.com/openshift/api/osin/v1/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/osin/v1/zz_generated.model_name.gois excluded by!**/vendor/**,!vendor/**,!**/zz_generated*vendor/github.com/openshift/api/project/v1/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/project/v1/zz_generated.model_name.gois excluded by!**/vendor/**,!vendor/**,!**/zz_generated*vendor/github.com/openshift/api/quota/v1/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/quota/v1/zz_generated.model_name.gois excluded by!**/vendor/**,!vendor/**,!**/zz_generated*vendor/github.com/openshift/api/route/v1/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/route/v1/zz_generated.model_name.gois excluded by!**/vendor/**,!vendor/**,!**/zz_generated*vendor/github.com/openshift/api/samples/v1/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/samples/v1/zz_generated.model_name.gois excluded by!**/vendor/**,!vendor/**,!**/zz_generated*vendor/github.com/openshift/api/security/v1/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/security/v1/zz_generated.model_name.gois excluded by!**/vendor/**,!vendor/**,!**/zz_generated*vendor/github.com/openshift/api/servicecertsigner/v1alpha1/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/servicecertsigner/v1alpha1/zz_generated.model_name.gois excluded by!**/vendor/**,!vendor/**,!**/zz_generated*vendor/github.com/openshift/api/sharedresource/v1alpha1/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/sharedresource/v1alpha1/zz_generated.model_name.gois excluded by!**/vendor/**,!vendor/**,!**/zz_generated*vendor/github.com/openshift/api/template/v1/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/template/v1/zz_generated.model_name.gois excluded by!**/vendor/**,!vendor/**,!**/zz_generated*vendor/github.com/openshift/api/user/v1/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/api/user/v1/zz_generated.model_name.gois excluded by!**/vendor/**,!vendor/**,!**/zz_generated*vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/clientcredentialconfig.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/clientsecretsecretreference.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/customtlsprofile.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/externalclaimssource.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/externalsourceauthentication.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/externalsourcecertificateauthorityconfigmapreference.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/externalsourcepredicate.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/externalsourcetls.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/networkobservabilityspec.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/networkspec.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/oidcprovider.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/sourcedclaimmapping.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/sourceurl.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/tlsprofilespec.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/tlssecurityprofile.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/vaultapproleauthentication.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/vaultkmspluginconfig.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/vaulttlsconfig.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1alpha1/alertmanagercustomconfig.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1alpha1/clustermonitoringspec.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1alpha1/kubestatemetricsconfig.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1alpha1/kubestatemetricsresourcelabels.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1alpha1/nodeexporterconfig.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1alpha1/thanosquerierconfig.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1alpha1/thanosquerierrequestloggingconfig.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/internal/internal.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/client-go/config/applyconfigurations/utils.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/client-go/oauth/applyconfigurations/internal/internal.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/client-go/operator/applyconfigurations/internal/internal.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/client-go/route/applyconfigurations/internal/internal.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/openshift/client-go/user/applyconfigurations/internal/internal.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/spf13/pflag/flag.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/net/html/node.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/net/html/nodetype_string.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/net/http2/client_priority_go126.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/net/http2/client_priority_go127.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/net/http2/frame.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/net/http2/http2.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/net/http2/server.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/net/http2/transport.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/net/http2/writesched_priority_rfc7540.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/net/http2/writesched_priority_rfc9218.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/net/internal/httpsfv/httpsfv.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/net/trace/events.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/net/websocket/hybi.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/sys/cpu/cpu.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/sys/cpu/cpu_arm64.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/sys/cpu/cpu_arm64.sis excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/sys/cpu/cpu_gc_arm64.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/sys/cpu/cpu_gccgo_arm64.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/sys/cpu/cpu_netbsd_arm64.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/sys/cpu/cpu_openbsd_arm64.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/sys/cpu/cpu_other_arm64.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/sys/cpu/cpu_windows_arm64.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/sys/cpu/cpu_x86.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/sys/unix/ioctl_signed.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/sys/unix/ioctl_unsigned.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/sys/unix/mkerrors.shis excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/sys/unix/syscall_solaris.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/sys/unix/syscall_unix.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/sys/unix/zerrors_linux.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/sys/unix/zerrors_linux_386.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/sys/unix/zerrors_linux_amd64.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/sys/unix/zerrors_linux_arm.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/sys/unix/zerrors_linux_arm64.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/sys/unix/zerrors_linux_loong64.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/sys/unix/zerrors_linux_mips.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/sys/unix/zerrors_linux_mips64.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/sys/unix/zerrors_linux_ppc.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/sys/unix/zerrors_linux_s390x.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/sys/windows/syscall_windows.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/sys/windows/types_windows.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/sys/windows/zsyscall_windows.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/term/terminal.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/text/cases/tables10.0.0.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/text/cases/tables11.0.0.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/text/cases/tables12.0.0.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/text/cases/tables15.0.0.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/text/cases/tables17.0.0.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/text/cases/tables9.0.0.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/text/encoding/japanese/eucjp.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/text/encoding/japanese/iso2022jp.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/text/encoding/japanese/shiftjis.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/text/encoding/korean/euckr.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/text/encoding/simplifiedchinese/gbk.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/text/encoding/simplifiedchinese/hzgb2312.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/text/encoding/traditionalchinese/big5.gois excluded by!**/vendor/**,!vendor/**vendor/golang.org/x/text/encoding/unicode/unicode.gois excluded by!**/vendor/**,!vendor/**
📒 Files selected for processing (1)
go.mod
| replace ( | ||
| github.com/openshift/api => github.com/ingvagabund/api v0.0.0-20260608151207-ccf82b04671a | ||
| github.com/openshift/client-go => github.com/ingvagabund/client-go v0.0.0-20260608152916-388a325b5910 | ||
| ) |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Verify API compatibility between fork and upstream versions
# Check if the fork pseudo-versions contain the same client constructors as upstream
echo "=== Checking ingvagabund fork versions exist and are accessible ==="
go list github.com/ingvagabund/api@v0.0.0-20260608151207-ccf82b04671a
go list github.com/ingvagabund/client-go@v0.0.0-20260608152916-388a325b5910
echo "=== Verifying critical imports from go.mod are available in fork versions ==="
# The following packages are imported in pkg/operator/replacement_starter.go
# Check they exist in the forked versions:
# - github.com/openshift/api/config/v1
# - github.com/openshift/api/features
# - github.com/openshift/api/operator/v1
# - github.com/openshift/client-go/config/clientset/versioned
# - github.com/openshift/client-go/operator/clientset/versioned
# - github.com/openshift/client-go/oauth/clientset/versioned
# - github.com/openshift/client-go/route/clientset/versionedRepository: openshift/cluster-authentication-operator
Length of output: 567
🏁 Script executed:
# First, confirm the exact go.mod content
head -n 150 go.mod | tail -n 110Repository: openshift/cluster-authentication-operator
Length of output: 5685
🏁 Script executed:
# Check what's imported from openshift/api and openshift/client-go in the codebase
rg "github\.com/openshift/api|github\.com/openshift/client-go" --type go -A 2 -B 2 | head -100Repository: openshift/cluster-authentication-operator
Length of output: 9506
🏁 Script executed:
# Specifically check pkg/operator/replacement_starter.go for imports
head -n 100 pkg/operator/replacement_starter.goRepository: openshift/cluster-authentication-operator
Length of output: 4795
🌐 Web query:
ingvagabund/api github openshift pseudo-version v0.0.0-20260608151207-ccf82b04671a
💡 Result:
The pseudo-version string v0.0.0-20260608151207-ccf82b04671a is a standard Go module version identifier used to reference a specific, untagged commit in a repository [1][2]. In this format: - v0.0.0 is the base version prefix [1][3]. - 20260608151207 is the UTC timestamp of the commit (June 8, 2026, at 15:12:07) [1][3]. - ccf82b04671a is the 12-character prefix of the commit hash [1][3]. While there is a GitHub user named ingvagabund who is an active contributor to the openshift/api repository [4][5], there is no evidence that this specific pseudo-version string corresponds to an official package, module, or release under the ingvagabund/api repository [6]. Pseudo-versions are automatically generated by the Go toolchain when a dependency is requested at a specific commit that lacks a semantic version tag [1][2]. It is highly likely that this string was generated in a local development environment or CI/CD pipeline when resolving a dependency on an untagged commit of a repository [1].
Citations:
- 1: https://go.dev/doc/modules/version-numbers
- 2: https://research.swtch.com/vgo-intro
- 3: https://github.com/golang/mod/blob/9d333315/module/pseudo.go
- 4: OCPBUGS-83754: fix(config/v1): define constants for authentication types as typed constants api#2814
- 5: NO-JIRA: remove beta enabled features from feature gates api#1934
- 6: https://github.com/ingvagabund/api
🌐 Web query:
ingvagabund/client-go github openshift pseudo-version v0.0.0-20260608152916-388a325b5910
💡 Result:
The string github.com/ingvagabund/client-go refers to a personal GitHub repository, specifically a fork or personal copy of the OpenShift Go client library (openshift/client-go) maintained by the user ingvagabund [1][2]. The identifier v0.0.0-20260608152916-388a325b5910 is a Go pseudo-version (also known as a module version) [3][4]. In the Go module system, pseudo-versions are automatically generated by the go command when a dependency is not tagged with a standard semantic version [3][5]. Key characteristics of this specific string: 1. Origin: It represents a specific commit in the ingvagabund/client-go repository [1][3]. 2. Format: The format v0.0.0-yyyymmddhhmmss-abcdefabcdef corresponds to [Semantic Version]-[Timestamp]-[Commit Hash]. In this case: - Timestamp: 2026-06-08 15:29:16 UTC. - Commit Hash: 388a325b5910. 3. Usage: This is typically used in a go.mod file to lock a dependency to a specific commit when the upstream project has not provided a tagged release for that specific state [5]. It is important to note that the official, authoritative repository for the OpenShift Go client is github.com/openshift/client-go, not the personal fork [6][3]. Users looking for the standard OpenShift client library should use the official upstream repository [6][3]. Personal forks like ingvagabund/client-go are often used by contributors for testing, prototyping, or specialized development and may not be stable or officially supported [1][2].
Citations:
- 1: https://pkg.go.dev/github.com/ingvagabund/client-go/examples/build
- 2: https://github.com/ingvagabund/cluster-openshift-apiserver-operator
- 3: https://pkg.go.dev/github.com/openshift/client-go
- 4: https://pkg.go.dev/k8s.io/client-go
- 5: https://github.com/openshift/client-go/blob/6892dc3e1ffc/go.mod
- 6: https://github.com/openshift/client-go
🌐 Web query:
openshift/client-go pull request 381 authentication operator
💡 Result:
There is no pull request #381 in the openshift/client-go repository related to the authentication operator [1][2]. The number "381" appears as a pull request identifier in several other OpenShift component repositories, which may be the source of the confusion: 1. cluster-kube-controller-manager-operator: PR #381, merged in 2020, involved bumping Kubernetes to 1.18.0 and rebasing library-go, client-go, and API dependencies [3]. 2. cluster-openshift-controller-manager-operator: PR #381, merged in 2025, involved updating Kubernetes dependencies to v1.32.2 [4]. 3. openshift/origin: A backport PR (associated with #30971) references "OPCT-381" in its title, relating to pinned images [5]. Regarding the openshift/cluster-authentication-operator (which manages authentication and OAuth configs), relevant pull requests often involve updates to client-go, library-go, or API dependencies (e.g., PRs #697, #759, and #873), but these do not correspond to the number 381 [6][7][8].
Citations:
- 1: http://github.com/openshift/client-go/pull/336
- 2: https://github.com/openshift/client-go/blob/6892dc3e1ffc/go.mod
- 3: Bump to k8s 1.18.0 and library-go,client-go,api rebases cluster-kube-controller-manager-operator#381
- 4: WRKLDS-1653: bump(k8s): update k8s.io/* dependencies to v1.32.2 cluster-openshift-controller-manager-operator#381
- 5: openshift/origin@3c9af18
- 6: API-1835: operator client update #697
- 7: OCPEDGE-1610: bump(kube,library-go,ocp/api): #759
- 8: 24dab9f
Lines 41–44 redirect two critical dependencies to personal experimental forks with pseudo-versions:
replace (
github.com/openshift/api => github.com/ingvagabund/api v0.0.0-20260608151207-ccf82b04671a
github.com/openshift/client-go => github.com/ingvagabund/client-go v0.0.0-20260608152916-388a325b5910
)
These are blocking issues for an authentication operator:
-
Personal forks are unsupported for production: ingvagabund/api and ingvagabund/client-go are personal experimental forks, not official OpenShift releases. Pseudo-versions (v0.0.0-*) reference untagged commits and violate the supply chain security guideline: "No pre-release or yanked versions in production."
-
Critical dependency usage: pkg/operator/replacement_starter.go (lines 12–19, 52–59) directly instantiates these packages via
configclient.NewForConfigAndClient(),operatorclient.NewForConfigAndClient(),routeclient.NewForConfigAndClient(), andoauthclient.NewForConfigAndClient(). Any divergence in the fork API surface will break operator startup. -
No justification: The PR description does not explain why these forks are required. The reference to "CNTRLPLANE-2449: bump(openshift/api): pull in OpenAPIModelName changes client-go#381" in the original comment is incorrect—no such PR exists in the official repository.
-
WIP status: The PR is explicitly unfinished with
/holddirective, indicating incomplete stabilization.
Before merge, you must:
- Remove replace directives and use only official
github.com/openshift/apiandgithub.com/openshift/client-goversions with stable release tags (not pseudo-versions). - If upstream packages need fixes, contribute directly to openshift/api or openshift/client-go repositories or use a temporary fork only while awaiting upstream merge, clearly documented in the PR description.
- Verify all imports from pkg/operator/replacement_starter.go compile against the official packages.
🤖 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 41 - 44, The replace directives in go.mod are
redirecting github.com/openshift/api and github.com/openshift/client-go to
personal experimental forks (ingvagabund/api and ingvagabund/client-go) using
pseudo-versions, which violates supply chain security guidelines. Remove the
entire replace block (lines 41-44) that contains these redirections, and instead
ensure the module requires official github.com/openshift/api and
github.com/openshift/client-go packages with stable release tags. Then verify
that the package imports in pkg/operator/replacement_starter.go (specifically
the calls to configclient.NewForConfigAndClient(),
operatorclient.NewForConfigAndClient(), routeclient.NewForConfigAndClient(), and
oauthclient.NewForConfigAndClient()) compile correctly against the official
OpenShift packages.
Source: Coding guidelines
| github.com/go-openapi/swag v0.25.4 // indirect | ||
| github.com/go-openapi/swag/cmdutils v0.25.4 // indirect | ||
| github.com/go-openapi/swag/conv v0.25.4 // indirect | ||
| github.com/go-openapi/swag/fileutils v0.25.4 // indirect | ||
| github.com/go-openapi/swag/jsonname v0.25.4 // indirect | ||
| github.com/go-openapi/swag/jsonutils v0.25.4 // indirect | ||
| github.com/go-openapi/swag/loading v0.25.4 // indirect | ||
| github.com/go-openapi/swag/mangling v0.25.4 // indirect | ||
| github.com/go-openapi/swag/netutils v0.25.4 // indirect | ||
| github.com/go-openapi/swag/stringutils v0.25.4 // indirect | ||
| github.com/go-openapi/swag/typeutils v0.25.4 // indirect | ||
| github.com/go-openapi/swag/yamlutils v0.25.4 // indirect |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Check for known CVEs in go-openapi/swag v0.25.4
curl -s https://api.osv.dev/v1/query --data '{"commit":"go-openapi/swag@v0.25.4"}' | jq '.vulns'Repository: openshift/cluster-authentication-operator
Length of output: 90
🌐 Web query:
go-openapi/swag v0.25.4 CVE vulnerabilities security advisory
💡 Result:
As of June 18, 2026, there are no known CVE vulnerabilities or active security advisories associated with version v0.25.4 of go-openapi/swag [1][2][3]. The project actively maintains a security policy and employs automated vulnerability scanning tools, including GitHub CodeQL, trivy, and govulncheck, to monitor for security issues [4][5]. Version v0.25.4, released on November 25, 2025, included updates such as the addition of an official security policy, dependency updates, and the introduction of fuzz testing to improve overall robustness [6][7][8]. Users are encouraged to report any potential security concerns privately to the maintainers through the GitHub security reporting feature as outlined in the project's security policy [4].
Citations:
- 1: https://guide.sonatype.com/component/golang/github.com%2Fgo-openapi%2Fswag/v0.25.4
- 2: https://hextrap.com/r/pkg/go/github.com/go-openapi/swag/
- 3: https://deps.dev/go/github.com%2Fgo-openapi%2Fswag
- 4: https://github.com/go-openapi/swag/blob/master/SECURITY.md
- 5: https://pkg.go.dev/github.com/go-openapi/swag
- 6: https://github.com/go-openapi/swag/blob/master/docs/NOTES.md
- 7: go-openapi/swag@v0.23.0...v0.25.4
- 8: go-openapi/swag@73525ad
🏁 Script executed:
#!/bin/bash
# Check go.mod context around lines 68-79
cd /tmp && head -n 85 /dev/stdin << 'EOF'
$(head -85 /dev/null)
EOF
# Try to find the go.mod file and examine it
find . -name "go.mod" -type f | head -1 | xargs head -n 85Repository: openshift/cluster-authentication-operator
Length of output: 155
🏁 Script executed:
#!/bin/bash
# Check if submodule expansion is typical for go-openapi/swag
# Search for any documentation or GitHub info about this pattern
rg "go-openapi/swag" --type go -A 2 -B 2 | head -50Repository: openshift/cluster-authentication-operator
Length of output: 3348
🏁 Script executed:
#!/bin/bash
# Examine the go.mod file to understand the dependency structure
cat go.mod | head -100Repository: openshift/cluster-authentication-operator
Length of output: 4786
🏁 Script executed:
#!/bin/bash
# Check the actual go.mod file lines around 68-79 to see context
sed -n '50,90p' go.modRepository: openshift/cluster-authentication-operator
Length of output: 2271
🌐 Web query:
go-openapi/swag v0.25.4 release notes breaking changes between v0.23.0
💡 Result:
The upgrade from go-openapi/swag v0.23.0 to v0.25.4 involves several significant breaking changes and refactorings [1][2]. Key Breaking Changes: 1. Removal of MarshalYAML from JSONMapSlice: In v0.25.0, the MarshalYAML method was removed from the JSONMapSlice type [1]. This was part of a deliberate refactoring to separate JSON-only (JSONMapSlice) from YAML-aware (YAMLMapSlice) functionality to fix issues with incorrect YAML type tagging [1]. Consumers expecting JSONMapSlice to implement the YAML marshaler interface must switch to using YAMLMapSlice [1]. 2. Behavioral Change in IsFloat64AJSONInteger: There is a confirmed change in how IsFloat64AJSONInteger operates [2]. It was updated to use math.Round-based nearest-integer comparison instead of truncation-based comparison [2]. This alters the epsilon tolerance band, meaning certain values (e.g., 3.9999999999) that were previously not classified as integers are now classified as such, while others (e.g., 1.000000001) are no longer classified as integers [2]. 3. Broader Structural Changes: Beginning with v0.24.0, the library underwent a modernization effort that deprecated the traditional monolith API [3]. Consumers are encouraged to import specialized sub-modules (e.g., /conv, /fileutils, /jsonname) rather than the main package [3]. While the legacy API remained supported for compatibility, all exposed functions and variables were moved to these sub-modules [3]. If you are encountering build failures, you may need to update your code to use the new sub-module paths or, in the case of MarshalYAML, switch to the appropriate YAML-aware type [1]. Pinning to v0.23.1 is a temporary workaround often used by projects that are not yet ready to refactor their API calls [1].
Citations:
- 1: Support go-openapi/swag v0.25.x - MarshalYAML API breaking change go-swagger/go-swagger#3263
- 2: https://gist.github.com/dims/ecd681ea7d4748300d3b6203074e7d70
- 3: go-openapi/swag@v0.23.1...v0.24.1
Verify code compatibility with go-openapi/swag v0.25.4 breaking changes.
The upgrade from v0.23.0 to v0.25.4 includes confirmed breaking changes:
MarshalYAMLremoved fromJSONMapSlice(v0.25.0) — switch toYAMLMapSliceif usedIsFloat64AJSONIntegerbehavior changed from truncation to rounding-based comparison- API functions moved to sub-modules (v0.24.0+); legacy API deprecated
Audit the operator code for usage of JSONMapSlice.MarshalYAML() and IsFloat64AJSONInteger(), or confirm they are not used. The submodule expansion in go.mod is expected and does not require action.
No known CVEs in v0.25.4.
🤖 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 68 - 79, The go-openapi/swag dependency has been
upgraded from v0.23.0 to v0.25.4, which includes breaking changes. Search the
operator codebase for any usage of JSONMapSlice.MarshalYAML() and replace it
with YAMLMapSlice if found, since MarshalYAML was removed from JSONMapSlice in
v0.25.0. Also search for any calls to IsFloat64AJSONInteger() and verify that
the new rounding-based comparison behavior (changed from truncation in v0.25.4)
is compatible with how it is being used. If neither of these functions are used
in the codebase, document this verification and no further changes are needed.
The submodule expansion visible in go.mod is expected and does not require
modification.
Source: Coding guidelines
|
@ingvagabund: The following tests failed, say
Full PR test history. Your PR dashboard. DetailsInstructions 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. |
Evidence PR for openshift/client-go#381
/hold
Summary by CodeRabbit
Release Notes