Skip to content

wip: feat: implement OpenAPIModelNamer interface#2856

Open
ingvagabund wants to merge 4 commits into
openshift:masterfrom
ingvagabund:implement-OpenAPIModelNamer-interface
Open

wip: feat: implement OpenAPIModelNamer interface#2856
ingvagabund wants to merge 4 commits into
openshift:masterfrom
ingvagabund:implement-OpenAPIModelNamer-interface

Conversation

@ingvagabund
Copy link
Copy Markdown
Member

@ingvagabund ingvagabund commented May 25, 2026

TBD

Consequence of kubernetes/kubernetes#131755

Important note: the current openapi/openapi.json is generated with the openshift type names in com.github.openshift.api.<group>.<version>.<TypeName> order. Implementing the new interface results in the openshift types names generated in <TypeName>.<version>.<group>.api.openshift.github.com. Which completely reshuffles the keys in openapi/openapi.json. Which makes it hard to follow the changes. The kubernetes types already follow this new naming schema. E.g. APIGroup.v1.meta.apis.pkg.apimachinery.k8s.io.

@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: LGTM mode

@openshift-ci openshift-ci Bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label May 25, 2026
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented May 25, 2026

Hello @ingvagabund! Some important instructions when contributing to openshift/api:
API design plays an important part in the user experience of OpenShift and as such API PRs are subject to a high level of scrutiny to ensure they follow our best practices. If you haven't already done so, please review the OpenShift API Conventions and ensure that your proposed changes are compliant. Following these conventions will help expedite the api review process for your PR.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 25, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

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

Review profile: CHILL

Plan: Enterprise

Run ID: 929aaa36-7873-450f-9b6c-7559e2032ea7

📥 Commits

Reviewing files that changed from the base of the PR and between cfd52d6 and 7d170fd.

⛔ Files ignored due to path filters (245)
  • apiextensions/v1alpha1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • apiserver/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • apps/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • authorization/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • build/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • cloudnetwork/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • config/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • config/v1alpha1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • config/v1alpha2/zz_generated.model_name.go is excluded by !**/zz_generated*
  • console/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • etcd/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • etcd/v1alpha1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • example/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • example/v1alpha1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • go.sum is excluded by !**/*.sum
  • helm/v1beta1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • image/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • imageregistry/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • insights/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • insights/v1alpha1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • insights/v1alpha2/zz_generated.model_name.go is excluded by !**/zz_generated*
  • kubecontrolplane/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • legacyconfig/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • machine/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • machine/v1alpha1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • machine/v1beta1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • machineconfiguration/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • machineconfiguration/v1alpha1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • monitoring/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • network/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • network/v1alpha1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • networkoperator/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • oauth/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • openapi/generated_openapi/zz_generated.openapi.go is excluded by !openapi/**, !**/zz_generated*
  • openapi/openapi.json is excluded by !openapi/**
  • openshiftcontrolplane/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • operator/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • operator/v1alpha1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • operatorcontrolplane/v1alpha1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • operatoringress/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • osin/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • project/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • quota/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • route/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • samples/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • security/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • securityinternal/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • servicecertsigner/v1alpha1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • sharedresource/v1alpha1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • template/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • user/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • vendor/github.com/emicklei/go-restful/v3/.travis.yml is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/emicklei/go-restful/v3/CHANGES.md is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/emicklei/go-restful/v3/README.md is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/emicklei/go-restful/v3/compress.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/emicklei/go-restful/v3/curly.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/emicklei/go-restful/v3/custom_verb.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/emicklei/go-restful/v3/doc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/emicklei/go-restful/v3/entity_accessors.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/emicklei/go-restful/v3/json.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/emicklei/go-restful/v3/jsoniter.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/emicklei/go-restful/v3/jsr311.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/emicklei/go-restful/v3/route.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/.codecov.yml is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/.golangci.yml is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/.mockery.yml is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/README.md is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/SECURITY.md is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/cmdutils/LICENSE is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/cmdutils/cmd_utils.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/cmdutils/doc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/cmdutils_iface.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/conv/LICENSE is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/conv/convert.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/conv/convert_types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/conv/doc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/conv/format.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/conv/sizeof.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/conv/type_constraints.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/conv_iface.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/convert.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/convert_types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/doc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/file.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/fileutils/LICENSE is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/fileutils/doc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/fileutils/file.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/fileutils/path.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/fileutils_iface.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/go.work is excluded by !**/*.work, !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/go.work.sum is excluded by !**/*.sum, !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/initialism_index.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/json.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/jsonname/LICENSE is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/jsonname/doc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/jsonname/name_provider.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/jsonname_iface.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/LICENSE is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/README.md is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/doc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/ifaces/doc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/ifaces/ifaces.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/ifaces/registry_iface.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/registry.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/adapter.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/doc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/lexer.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/ordered_map.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/pool.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/register.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/writer.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/concat.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/doc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/json.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/ordered_map.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils_iface.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/loading/LICENSE is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/loading/doc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/loading/errors.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/loading/json.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/loading/loading.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/loading/options.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/loading/yaml.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/loading_iface.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/mangling/BENCHMARK.md is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/mangling/LICENSE is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/mangling/doc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/mangling/initialism_index.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/mangling/name_lexem.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/mangling/name_mangler.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/mangling/options.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/mangling/pools.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/mangling/split.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/mangling/string_bytes.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/mangling/util.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/mangling_iface.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/name_lexem.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/net.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/netutils/LICENSE is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/netutils/doc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/netutils/net.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/netutils_iface.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/split.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/stringutils/LICENSE is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/stringutils/collection_formats.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/stringutils/doc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/stringutils/strings.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/stringutils_iface.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/typeutils/LICENSE is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/typeutils/doc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/typeutils/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/typeutils_iface.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/util.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/yaml.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/yamlutils/LICENSE is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/yamlutils/doc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/yamlutils/errors.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/yamlutils/ordered_map.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/yamlutils/yaml.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/yamlutils_iface.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/josharian/intern/README.md is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/josharian/intern/intern.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/josharian/intern/license.md is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/mailru/easyjson/LICENSE is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/mailru/easyjson/buffer/pool.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/mailru/easyjson/jlexer/bytestostr.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/mailru/easyjson/jlexer/bytestostr_nounsafe.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/mailru/easyjson/jlexer/error.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/mailru/easyjson/jlexer/lexer.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/mailru/easyjson/jwriter/writer.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/spf13/pflag/flag.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/mod/semver/semver.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/net/http2/client_priority_go126.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/net/http2/client_priority_go127.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/net/http2/frame.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/net/http2/http2.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/net/http2/server.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/net/http2/transport.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/net/http2/writesched_priority_rfc7540.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/net/http2/writesched_priority_rfc9218.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/net/internal/httpsfv/httpsfv.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/sync/errgroup/errgroup.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/text/secure/bidirule/bidirule.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/text/secure/bidirule/bidirule10.0.0.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/text/secure/bidirule/bidirule9.0.0.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/text/unicode/bidi/tables10.0.0.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/text/unicode/bidi/tables11.0.0.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/text/unicode/bidi/tables12.0.0.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/text/unicode/bidi/tables13.0.0.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/text/unicode/bidi/tables15.0.0.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/text/unicode/bidi/tables17.0.0.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/text/unicode/bidi/tables9.0.0.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/text/unicode/norm/forminfo.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/text/unicode/norm/tables10.0.0.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/text/unicode/norm/tables11.0.0.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/text/unicode/norm/tables12.0.0.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/text/unicode/norm/tables15.0.0.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/text/unicode/norm/tables17.0.0.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/text/unicode/norm/tables9.0.0.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/go/ast/inspector/cursor.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/go/ast/inspector/inspector.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/go/ast/inspector/iter.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/go/packages/packages.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/go/packages/visit.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/go/types/objectpath/objectpath.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/go/types/typeutil/callee.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/go/types/typeutil/map.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/aliases/aliases.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/aliases/aliases_go122.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/event/core/event.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/event/core/export.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/event/keys/keys.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/event/label/label.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/gcimporter/bimport.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/gcimporter/iexport.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/gcimporter/iimport.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/stdlib/deps.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/stdlib/import.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/stdlib/manifest.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/stdlib/stdlib.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/typeparams/free.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/typeparams/normalize.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/typesinternal/classify_call.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/typesinternal/element.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/typesinternal/fx.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/typesinternal/isnamed.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/typesinternal/qualifier.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/typesinternal/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/typesinternal/varkind.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/typesinternal/varkind_go124.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/typesinternal/zerovalue.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/versions/features.go is excluded by !**/vendor/**, !vendor/**
  • vendor/gopkg.in/yaml.v3/LICENSE is excluded by !**/vendor/**, !vendor/**
  • vendor/gopkg.in/yaml.v3/NOTICE is excluded by !**/vendor/**, !vendor/**
  • vendor/gopkg.in/yaml.v3/README.md is excluded by !**/vendor/**, !vendor/**
  • vendor/gopkg.in/yaml.v3/apic.go is excluded by !**/vendor/**, !vendor/**
  • vendor/gopkg.in/yaml.v3/decode.go is excluded by !**/vendor/**, !vendor/**
  • vendor/gopkg.in/yaml.v3/emitterc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/gopkg.in/yaml.v3/encode.go is excluded by !**/vendor/**, !vendor/**
  • vendor/gopkg.in/yaml.v3/parserc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/gopkg.in/yaml.v3/readerc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/gopkg.in/yaml.v3/resolve.go is excluded by !**/vendor/**, !vendor/**
  • vendor/gopkg.in/yaml.v3/scannerc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/gopkg.in/yaml.v3/sorter.go is excluded by !**/vendor/**, !vendor/**
📒 Files selected for processing (55)
  • apiextensions/v1alpha1/doc.go
  • apiserver/v1/doc.go
  • apps/v1/doc.go
  • authorization/v1/doc.go
  • build/v1/doc.go
  • cloudnetwork/v1/doc.go
  • config/v1/doc.go
  • config/v1alpha1/doc.go
  • config/v1alpha2/doc.go
  • console/v1/doc.go
  • etcd/v1/doc.go
  • etcd/v1alpha1/doc.go
  • example/v1/doc.go
  • example/v1alpha1/doc.go
  • go.mod
  • helm/v1beta1/doc.go
  • image/v1/doc.go
  • imageregistry/v1/doc.go
  • insights/v1/doc.go
  • insights/v1alpha1/doc.go
  • insights/v1alpha2/doc.go
  • kubecontrolplane/v1/doc.go
  • legacyconfig/v1/doc.go
  • machine/v1/doc.go
  • machine/v1alpha1/doc.go
  • machine/v1beta1/doc.go
  • machineconfiguration/v1/doc.go
  • machineconfiguration/v1alpha1/doc.go
  • monitoring/v1/doc.go
  • network/v1/doc.go
  • network/v1alpha1/doc.go
  • networkoperator/v1/doc.go
  • oauth/v1/doc.go
  • openshiftcontrolplane/v1/doc.go
  • operator/v1/doc.go
  • operator/v1alpha1/doc.go
  • operatorcontrolplane/v1alpha1/doc.go
  • operatoringress/v1/doc.go
  • osin/v1/doc.go
  • platform/v1alpha1/doc.go
  • project/v1/doc.go
  • quota/v1/doc.go
  • route/v1/doc.go
  • samples/v1/doc.go
  • security/v1/doc.go
  • securityinternal/v1/doc.go
  • servicecertsigner/v1alpha1/doc.go
  • sharedresource/v1alpha1/doc.go
  • template/v1/doc.go
  • tools/codegen/cmd/modelname.go
  • tools/codegen/cmd/root.go
  • tools/codegen/pkg/generation/types.go
  • tools/codegen/pkg/modelname/generator.go
  • tools/codegen/pkg/modelname/modelname.go
  • user/v1/doc.go
✅ Files skipped from review due to trivial changes (38)
  • etcd/v1/doc.go
  • apiextensions/v1alpha1/doc.go
  • network/v1/doc.go
  • example/v1alpha1/doc.go
  • config/v1alpha2/doc.go
  • config/v1alpha1/doc.go
  • cloudnetwork/v1/doc.go
  • machine/v1/doc.go
  • route/v1/doc.go
  • networkoperator/v1/doc.go
  • operatoringress/v1/doc.go
  • machine/v1alpha1/doc.go
  • operator/v1alpha1/doc.go
  • osin/v1/doc.go
  • config/v1/doc.go
  • build/v1/doc.go
  • image/v1/doc.go
  • oauth/v1/doc.go
  • kubecontrolplane/v1/doc.go
  • apps/v1/doc.go
  • imageregistry/v1/doc.go
  • operator/v1/doc.go
  • quota/v1/doc.go
  • etcd/v1alpha1/doc.go
  • console/v1/doc.go
  • apiserver/v1/doc.go
  • monitoring/v1/doc.go
  • machineconfiguration/v1alpha1/doc.go
  • insights/v1alpha1/doc.go
  • machineconfiguration/v1/doc.go
  • insights/v1alpha2/doc.go
  • platform/v1alpha1/doc.go
  • securityinternal/v1/doc.go
  • network/v1alpha1/doc.go
  • helm/v1beta1/doc.go
  • servicecertsigner/v1alpha1/doc.go
  • authorization/v1/doc.go
  • openshiftcontrolplane/v1/doc.go

📝 Walkthrough

Walkthrough

This PR adds Kubernetes OpenAPI code-generation annotations to 51 API package documentation files across the OpenShift API repository, specifying target model package paths for OpenAPI code generation. It introduces a new model-name code generator that produces OpenAPI model name accessor functions, with corresponding configuration types, generator implementation, and CLI command integration. Go module dependencies are updated to support the new tooling.

🚥 Pre-merge checks | ✅ 11 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 66.67% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (11 passed)
Check name Status Explanation
Title check ✅ Passed Title partially describes the PR—it mentions implementing OpenAPIModelNamer interface, which is a key part of the changes, but the 'wip:' prefix suggests incomplete work and doesn't capture the broader scope of adding model-name generation infrastructure across multiple API packages.
Description check ✅ Passed Description is directly related to the changeset, explaining the rationale (kubernetes/kubernetes#131755), the naming schema changes, and their impact on openapi/openapi.json, despite being marked 'TBD' for additional details.
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.
Stable And Deterministic Test Names ✅ Passed PR does not modify or add any Ginkgo test files. Changes consist only of package annotations in doc.go files, go.mod updates, and new code generator tools without any test code.
Test Structure And Quality ✅ Passed The PR contains no Ginkgo test code to review. Changes consist of doc.go annotations, dependency updates, and new code generation tool source files, making the custom check not applicable.
Microshift Test Compatibility ✅ Passed No new Ginkgo e2e tests were added. Changes involve only OpenAPI codegen annotations, tooling updates, and dependencies.
Single Node Openshift (Sno) Test Compatibility ✅ Passed This PR does not add any Ginkgo e2e tests. Changes are limited to API annotations, dependency updates, and code generation tooling—no test code is present.
Topology-Aware Scheduling Compatibility ✅ Passed PR modifies only API type definitions and code generators. No deployment manifests, operators, or controllers are added/modified, so check is not applicable.
Ote Binary Stdout Contract ✅ Passed New code introduces only metadata annotations and klog-based logging to stderr; no stdout writes in process-level code detected.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed No Ginkgo e2e tests are added in this PR. Changes include doc.go annotations, go.mod updates, and code generation tool files—none contain test code or external connectivity requirements.

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

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

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)

Error: build linters: unable to load custom analyzer "kubeapilinter": tools/_output/bin/kube-api-linter.so, plugin: not implemented
The command is terminated due to an error: build linters: unable to load custom analyzer "kubeapilinter": tools/_output/bin/kube-api-linter.so, plugin: not implemented


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

@openshift-ci openshift-ci Bot added the size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. label May 25, 2026
@openshift-ci openshift-ci Bot requested review from abhat and bparees May 25, 2026 18:45
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: 3

🤖 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 `@platform/v1alpha1/doc.go`:
- Line 4: Remove the conflicting code-gen directive or reconcile the package
comment: either delete the
"+k8s:openapi-model-package=com.github.openshift.api.platform.v1alpha1"
directive from the deprecated platform/v1alpha1 doc.go so the file matches the
existing "kept here for historical reference only" comment, or if you intend
this API to participate in code generation, update the deprecation text in
doc.go to remove/adjust language that says it "will not be used to generate
code" so it accurately reflects that code-gen is enabled.

In `@tools/codegen/pkg/modelname/modelname.go`:
- Line 17: The generateModelNames function currently ignores the verify bool;
modify generateModelNames(globalParser *parser.Parser, universe types.Universe,
packagePath, outputFileName, headerFilePath string, verify bool) to first
generate the model-name output into a memory buffer/string (using the existing
generation logic that uses globalParser/universe/packagePath/headerFilePath),
and then: if verify is true, read the existing outputFileName from disk and
compare it to the generated buffer and return a non-nil error when they differ
(so CI/--verify fails) without writing any files; if verify is false, proceed to
write headerFilePath/outputFileName as before. Ensure the compare treats missing
file as a mismatch and include clear error messages.
- Around line 39-43: The helper myTargets should not call klog.Fatalf; instead
propagate the error: change myTargets from func(context *gengenerator.Context)
[]gengenerator.Target to func(context *gengenerator.Context)
([]gengenerator.Target, error), remove klog.Fatalf("Failed loading boilerplate:
%v", err) and return nil, fmt.Errorf("loading boilerplate: %w", err) (or the
preferred error type), and update any callers to handle the returned error and
aggregate/report it through the generator's normal error path; keep the
gengo.GoBoilerplate invocation and error check but return the error instead of
exiting.
🪄 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: 2ecb0b5a-773b-457b-9d2b-0f401b72230c

📥 Commits

Reviewing files that changed from the base of the PR and between 09730f8 and cfd52d6.

⛔ Files ignored due to path filters (245)
  • apiextensions/v1alpha1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • apiserver/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • apps/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • authorization/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • build/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • cloudnetwork/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • config/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • config/v1alpha1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • config/v1alpha2/zz_generated.model_name.go is excluded by !**/zz_generated*
  • console/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • etcd/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • etcd/v1alpha1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • example/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • example/v1alpha1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • go.sum is excluded by !**/*.sum
  • helm/v1beta1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • image/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • imageregistry/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • insights/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • insights/v1alpha1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • insights/v1alpha2/zz_generated.model_name.go is excluded by !**/zz_generated*
  • kubecontrolplane/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • legacyconfig/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • machine/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • machine/v1alpha1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • machine/v1beta1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • machineconfiguration/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • machineconfiguration/v1alpha1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • monitoring/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • network/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • network/v1alpha1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • networkoperator/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • oauth/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • openapi/generated_openapi/zz_generated.openapi.go is excluded by !openapi/**, !**/zz_generated*
  • openshiftcontrolplane/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • operator/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • operator/v1alpha1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • operatorcontrolplane/v1alpha1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • operatoringress/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • osin/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • project/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • quota/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • route/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • samples/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • security/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • securityinternal/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • servicecertsigner/v1alpha1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • sharedresource/v1alpha1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • template/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • user/v1/zz_generated.model_name.go is excluded by !**/zz_generated*
  • vendor/github.com/emicklei/go-restful/v3/.travis.yml is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/emicklei/go-restful/v3/CHANGES.md is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/emicklei/go-restful/v3/README.md is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/emicklei/go-restful/v3/compress.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/emicklei/go-restful/v3/curly.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/emicklei/go-restful/v3/custom_verb.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/emicklei/go-restful/v3/doc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/emicklei/go-restful/v3/entity_accessors.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/emicklei/go-restful/v3/json.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/emicklei/go-restful/v3/jsoniter.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/emicklei/go-restful/v3/jsr311.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/emicklei/go-restful/v3/route.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/.codecov.yml is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/.golangci.yml is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/.mockery.yml is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/README.md is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/SECURITY.md is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/cmdutils/LICENSE is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/cmdutils/cmd_utils.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/cmdutils/doc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/cmdutils_iface.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/conv/LICENSE is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/conv/convert.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/conv/convert_types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/conv/doc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/conv/format.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/conv/sizeof.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/conv/type_constraints.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/conv_iface.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/convert.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/convert_types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/doc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/file.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/fileutils/LICENSE is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/fileutils/doc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/fileutils/file.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/fileutils/path.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/fileutils_iface.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/go.work is excluded by !**/*.work, !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/go.work.sum is excluded by !**/*.sum, !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/initialism_index.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/json.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/jsonname/LICENSE is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/jsonname/doc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/jsonname/name_provider.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/jsonname_iface.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/LICENSE is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/README.md is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/doc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/ifaces/doc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/ifaces/ifaces.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/ifaces/registry_iface.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/registry.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/adapter.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/doc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/lexer.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/ordered_map.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/pool.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/register.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/writer.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/concat.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/doc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/json.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils/ordered_map.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/jsonutils_iface.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/loading/LICENSE is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/loading/doc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/loading/errors.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/loading/json.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/loading/loading.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/loading/options.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/loading/yaml.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/loading_iface.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/mangling/BENCHMARK.md is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/mangling/LICENSE is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/mangling/doc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/mangling/initialism_index.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/mangling/name_lexem.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/mangling/name_mangler.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/mangling/options.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/mangling/pools.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/mangling/split.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/mangling/string_bytes.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/mangling/util.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/mangling_iface.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/name_lexem.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/net.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/netutils/LICENSE is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/netutils/doc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/netutils/net.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/netutils_iface.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/split.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/stringutils/LICENSE is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/stringutils/collection_formats.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/stringutils/doc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/stringutils/strings.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/stringutils_iface.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/typeutils/LICENSE is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/typeutils/doc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/typeutils/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/typeutils_iface.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/util.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/yaml.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/yamlutils/LICENSE is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/yamlutils/doc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/yamlutils/errors.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/yamlutils/ordered_map.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/yamlutils/yaml.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/swag/yamlutils_iface.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/josharian/intern/README.md is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/josharian/intern/intern.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/josharian/intern/license.md is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/mailru/easyjson/LICENSE is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/mailru/easyjson/buffer/pool.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/mailru/easyjson/jlexer/bytestostr.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/mailru/easyjson/jlexer/bytestostr_nounsafe.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/mailru/easyjson/jlexer/error.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/mailru/easyjson/jlexer/lexer.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/mailru/easyjson/jwriter/writer.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/spf13/pflag/flag.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/mod/semver/semver.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/net/http2/client_priority_go126.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/net/http2/client_priority_go127.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/net/http2/frame.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/net/http2/http2.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/net/http2/server.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/net/http2/transport.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/net/http2/writesched_priority_rfc7540.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/net/http2/writesched_priority_rfc9218.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/net/internal/httpsfv/httpsfv.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/sync/errgroup/errgroup.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/text/secure/bidirule/bidirule.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/text/secure/bidirule/bidirule10.0.0.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/text/secure/bidirule/bidirule9.0.0.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/text/unicode/bidi/tables10.0.0.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/text/unicode/bidi/tables11.0.0.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/text/unicode/bidi/tables12.0.0.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/text/unicode/bidi/tables13.0.0.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/text/unicode/bidi/tables15.0.0.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/text/unicode/bidi/tables17.0.0.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/text/unicode/bidi/tables9.0.0.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/text/unicode/norm/forminfo.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/text/unicode/norm/tables10.0.0.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/text/unicode/norm/tables11.0.0.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/text/unicode/norm/tables12.0.0.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/text/unicode/norm/tables15.0.0.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/text/unicode/norm/tables17.0.0.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/text/unicode/norm/tables9.0.0.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/go/ast/inspector/cursor.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/go/ast/inspector/inspector.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/go/ast/inspector/iter.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/go/packages/packages.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/go/packages/visit.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/go/types/objectpath/objectpath.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/go/types/typeutil/callee.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/go/types/typeutil/map.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/aliases/aliases.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/aliases/aliases_go122.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/event/core/event.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/event/core/export.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/event/keys/keys.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/event/label/label.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/gcimporter/bimport.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/gcimporter/iexport.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/gcimporter/iimport.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/stdlib/deps.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/stdlib/import.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/stdlib/manifest.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/stdlib/stdlib.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/typeparams/free.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/typeparams/normalize.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/typesinternal/classify_call.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/typesinternal/element.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/typesinternal/fx.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/typesinternal/isnamed.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/typesinternal/qualifier.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/typesinternal/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/typesinternal/varkind.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/typesinternal/varkind_go124.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/typesinternal/zerovalue.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/tools/internal/versions/features.go is excluded by !**/vendor/**, !vendor/**
  • vendor/gopkg.in/yaml.v3/LICENSE is excluded by !**/vendor/**, !vendor/**
  • vendor/gopkg.in/yaml.v3/NOTICE is excluded by !**/vendor/**, !vendor/**
  • vendor/gopkg.in/yaml.v3/README.md is excluded by !**/vendor/**, !vendor/**
  • vendor/gopkg.in/yaml.v3/apic.go is excluded by !**/vendor/**, !vendor/**
  • vendor/gopkg.in/yaml.v3/decode.go is excluded by !**/vendor/**, !vendor/**
  • vendor/gopkg.in/yaml.v3/emitterc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/gopkg.in/yaml.v3/encode.go is excluded by !**/vendor/**, !vendor/**
  • vendor/gopkg.in/yaml.v3/parserc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/gopkg.in/yaml.v3/readerc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/gopkg.in/yaml.v3/resolve.go is excluded by !**/vendor/**, !vendor/**
  • vendor/gopkg.in/yaml.v3/scannerc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/gopkg.in/yaml.v3/sorter.go is excluded by !**/vendor/**, !vendor/**
  • vendor/gopkg.in/yaml.v3/writerc.go is excluded by !**/vendor/**, !vendor/**
📒 Files selected for processing (55)
  • apiextensions/v1alpha1/doc.go
  • apiserver/v1/doc.go
  • apps/v1/doc.go
  • authorization/v1/doc.go
  • build/v1/doc.go
  • cloudnetwork/v1/doc.go
  • config/v1/doc.go
  • config/v1alpha1/doc.go
  • config/v1alpha2/doc.go
  • console/v1/doc.go
  • etcd/v1/doc.go
  • etcd/v1alpha1/doc.go
  • example/v1/doc.go
  • example/v1alpha1/doc.go
  • go.mod
  • helm/v1beta1/doc.go
  • image/v1/doc.go
  • imageregistry/v1/doc.go
  • insights/v1/doc.go
  • insights/v1alpha1/doc.go
  • insights/v1alpha2/doc.go
  • kubecontrolplane/v1/doc.go
  • legacyconfig/v1/doc.go
  • machine/v1/doc.go
  • machine/v1alpha1/doc.go
  • machine/v1beta1/doc.go
  • machineconfiguration/v1/doc.go
  • machineconfiguration/v1alpha1/doc.go
  • monitoring/v1/doc.go
  • network/v1/doc.go
  • network/v1alpha1/doc.go
  • networkoperator/v1/doc.go
  • oauth/v1/doc.go
  • openshiftcontrolplane/v1/doc.go
  • operator/v1/doc.go
  • operator/v1alpha1/doc.go
  • operatorcontrolplane/v1alpha1/doc.go
  • operatoringress/v1/doc.go
  • osin/v1/doc.go
  • platform/v1alpha1/doc.go
  • project/v1/doc.go
  • quota/v1/doc.go
  • route/v1/doc.go
  • samples/v1/doc.go
  • security/v1/doc.go
  • securityinternal/v1/doc.go
  • servicecertsigner/v1alpha1/doc.go
  • sharedresource/v1alpha1/doc.go
  • template/v1/doc.go
  • tools/codegen/cmd/modelname.go
  • tools/codegen/cmd/root.go
  • tools/codegen/pkg/generation/types.go
  • tools/codegen/pkg/modelname/generator.go
  • tools/codegen/pkg/modelname/modelname.go
  • user/v1/doc.go

Comment thread platform/v1alpha1/doc.go
// +k8s:deepcopy-gen=package,register
// +k8s:defaulter-gen=TypeMeta
// +k8s:openapi-gen=true
// +k8s:openapi-model-package=com.github.openshift.api.platform.v1alpha1
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 | 🟡 Minor | ⚡ Quick win

Inconsistency: Adding code-generation directive to deprecated API.

The existing comment at lines 10-16 explicitly states that this API "will not be used to generate code by code-gen" and is "kept here for historical reference only." Adding the +k8s:openapi-model-package directive contradicts this statement.

Either remove this directive from the deprecated platform/v1alpha1 package, or update the comment if the API should now participate in code generation.

🤖 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 `@platform/v1alpha1/doc.go` at line 4, Remove the conflicting code-gen
directive or reconcile the package comment: either delete the
"+k8s:openapi-model-package=com.github.openshift.api.platform.v1alpha1"
directive from the deprecated platform/v1alpha1 doc.go so the file matches the
existing "kept here for historical reference only" comment, or if you intend
this API to participate in code generation, update the deprecation text in
doc.go to remove/adjust language that says it "will not be used to generate
code" so it accurately reflects that code-gen is enabled.

)

// generateModelNames generates the model name functions for the given API package path.
func generateModelNames(globalParser *parser.Parser, universe types.Universe, packagePath, outputFileName, headerFilePath string, verify bool) error {
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 | ⚡ Quick win

verify mode is currently ignored in model-name generation.

Line 17 accepts verify, but the function never uses it. That makes verify and generate execution effectively identical for this generator, which can break expected --verify behavior.

Also applies to: 24-35, 48-57

🤖 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 `@tools/codegen/pkg/modelname/modelname.go` at line 17, The generateModelNames
function currently ignores the verify bool; modify
generateModelNames(globalParser *parser.Parser, universe types.Universe,
packagePath, outputFileName, headerFilePath string, verify bool) to first
generate the model-name output into a memory buffer/string (using the existing
generation logic that uses globalParser/universe/packagePath/headerFilePath),
and then: if verify is true, read the existing outputFileName from disk and
compare it to the generated buffer and return a non-nil error when they differ
(so CI/--verify fails) without writing any files; if verify is false, proceed to
write headerFilePath/outputFileName as before. Ensure the compare treats missing
file as a mismatch and include clear error messages.

Comment on lines +39 to +43
myTargets := func(context *gengenerator.Context) []gengenerator.Target {
boilerplate, err := gengo.GoBoilerplate(arguments.GoHeaderFile, gengo.StdBuildTag, gengo.StdGeneratedBy)
if err != nil {
klog.Fatalf("Failed loading boilerplate: %v", err)
}
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 | ⚡ Quick win

Avoid terminating the whole process from this helper.

Line 42 uses klog.Fatalf, which exits immediately and bypasses the normal per-generator error aggregation path. Return an error instead so failures are reported consistently.

Proposed fix
-	myTargets := func(context *gengenerator.Context) []gengenerator.Target {
-		boilerplate, err := gengo.GoBoilerplate(arguments.GoHeaderFile, gengo.StdBuildTag, gengo.StdGeneratedBy)
-		if err != nil {
-			klog.Fatalf("Failed loading boilerplate: %v", err)
-		}
-
-		return generators.GetModelNameTargets(context, arguments, boilerplate)
-	}
+	boilerplate, err := gengo.GoBoilerplate(arguments.GoHeaderFile, gengo.StdBuildTag, gengo.StdGeneratedBy)
+	if err != nil {
+		return fmt.Errorf("failed loading boilerplate: %w", err)
+	}
+	myTargets := func(context *gengenerator.Context) []gengenerator.Target {
+		return generators.GetModelNameTargets(context, arguments, boilerplate)
+	}
🤖 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 `@tools/codegen/pkg/modelname/modelname.go` around lines 39 - 43, The helper
myTargets should not call klog.Fatalf; instead propagate the error: change
myTargets from func(context *gengenerator.Context) []gengenerator.Target to
func(context *gengenerator.Context) ([]gengenerator.Target, error), remove
klog.Fatalf("Failed loading boilerplate: %v", err) and return nil,
fmt.Errorf("loading boilerplate: %w", err) (or the preferred error type), and
update any callers to handle the returned error and aggregate/report it through
the generator's normal error path; keep the gengo.GoBoilerplate invocation and
error check but return the error instead of exiting.

@ingvagabund
Copy link
Copy Markdown
Member Author

ci/prow/verify-client-go fails because of:

go: updates to go.mod needed; to update it:
	go mod tidy

Checking the job definition under openshift/release the script replaces o/api dep in o/client-go.

Is the ci job expected to be overridden in case the API definition changes?

@ingvagabund ingvagabund force-pushed the implement-OpenAPIModelNamer-interface branch from cfd52d6 to 7d170fd Compare May 26, 2026 12:44
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented May 26, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign joelspeed for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found 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
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented May 26, 2026

@ingvagabund: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/verify-client-go 7d170fd link true /test verify-client-go
ci/prow/verify 7d170fd link true /test verify

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant