Skip to content

Conversation

@simonpasquier
Copy link

This PR leverages the github.com/prometheus-community/prom-label-proxy/injectproxy Go
package to inject the _id label in a reliable fashion. The previous implementation assumed the presence of the _id label in the original expression to work properly.

/cc @wking

@openshift-ci openshift-ci bot requested a review from wking December 23, 2025 09:56
@coderabbitai
Copy link

coderabbitai bot commented Dec 23, 2025

Walkthrough

Replaces string-based PromQL _id injection with a matcher/enforcer approach in pkg/cvo/availableupdates.go, adds unit tests for the new behavior, and updates go.mod with many dependency version bumps and new indirect modules.

Changes

Cohort / File(s) Summary
Dependency Management
go.mod
Upgraded Prometheus and related modules (prometheus, client_golang, client_model, prom-label-proxy), OpenTelemetry pieces, protobuf/genproto, Mongo driver, go-openapi modules, and many indirect dependencies; added/removed multiple transitive entries, changing the module graph.
PromQL Label Injection Logic
pkg/cvo/availableupdates.go
Replaced naive string replacement in injectIdIntoString with construction of a _id=="<id>" PromQL label matcher and enforcement via a PromQL enforcer (prom-label-proxy); logs and falls back to original expression on errors.
Unit Tests
pkg/cvo/availableupdates_test.go
Added TestInjectIdIntoString exercising scalar, instant-vector, existing _id label, complex expressions, and invalid-expression cases to validate injection and fallback behavior.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

📜 Recent review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to Reviews -> Disable Knowledge Base setting

📥 Commits

Reviewing files that changed from the base of the PR and between d1b99e1 and 259482d.

⛔ Files ignored due to path filters (297)
  • go.sum is excluded by !**/*.sum
  • vendor/github.com/asaskevich/govalidator/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/asaskevich/govalidator/.travis.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/asaskevich/govalidator/CODE_OF_CONDUCT.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/asaskevich/govalidator/CONTRIBUTING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/asaskevich/govalidator/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/asaskevich/govalidator/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/asaskevich/govalidator/arrays.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/asaskevich/govalidator/converter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/asaskevich/govalidator/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/asaskevich/govalidator/error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/asaskevich/govalidator/numerics.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/asaskevich/govalidator/patterns.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/asaskevich/govalidator/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/asaskevich/govalidator/utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/asaskevich/govalidator/validator.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/asaskevich/govalidator/wercker.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/dennwc/varint/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/dennwc/varint/.travis.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/dennwc/varint/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/dennwc/varint/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/dennwc/varint/proto.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/dennwc/varint/varint.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/efficientgo/core/COPYRIGHT is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/efficientgo/core/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/efficientgo/core/merrors/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/efficientgo/core/merrors/merrors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-logr/stdr/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-logr/stdr/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-logr/stdr/stdr.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/analysis/.codecov.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/analysis/.gitattributes is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/analysis/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/analysis/.golangci.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/analysis/CODE_OF_CONDUCT.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/analysis/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/analysis/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/analysis/analyzer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/analysis/debug.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/analysis/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/analysis/fixer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/analysis/flatten.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/analysis/flatten_name.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/analysis/flatten_options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/analysis/internal/debug/debug.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/analysis/internal/flatten/normalize/normalize.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/analysis/internal/flatten/operations/operations.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/analysis/internal/flatten/replace/replace.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/analysis/internal/flatten/schutils/flatten_schema.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/analysis/internal/flatten/sortref/keys.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/analysis/internal/flatten/sortref/sort_ref.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/analysis/mixin.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/analysis/schema.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/errors/.gitattributes is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/errors/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/errors/.golangci.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/errors/CODE_OF_CONDUCT.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/errors/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/errors/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/errors/api.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/errors/auth.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/errors/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/errors/headers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/errors/middleware.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/errors/parsing.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/errors/schema.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/jsonreference/.golangci.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/jsonreference/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/loads/.editorconfig is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/loads/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/loads/.golangci.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/loads/.travis.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/loads/CODE_OF_CONDUCT.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/loads/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/loads/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/loads/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/loads/loaders.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/loads/options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/loads/spec.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/.editorconfig is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/.gitattributes is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/.golangci.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/CODE_OF_CONDUCT.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/bytestream.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/client/auth_info.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/client/keepalive.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/client/opentelemetry.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/client/opentracing.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/client/request.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/client/response.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/client/runtime.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/client_auth_info.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/client_operation.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/client_request.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/client_response.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/constants.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/csv.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/csv_options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/discard.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/file.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/headers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/interfaces.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/json.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/logger/logger.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/logger/standard.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/middleware/context.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/middleware/denco/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/middleware/denco/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/middleware/denco/router.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/middleware/denco/server.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/middleware/denco/util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/middleware/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/middleware/header/header.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/middleware/negotiate.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/middleware/not_implemented.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/middleware/operation.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/middleware/parameter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/middleware/rapidoc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/middleware/redoc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/middleware/request.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/middleware/router.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/middleware/security.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/middleware/spec.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/middleware/swaggerui.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/middleware/swaggerui_oauth2.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/middleware/ui_options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/middleware/untyped/api.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/middleware/validation.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/request.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/security/authenticator.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/security/authorizer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/statuses.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/text.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/values.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/xml.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/yamlpc/yaml.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/.editorconfig is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/.golangci.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/CODE_OF_CONDUCT.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/cache.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/contact_info.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/debug.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/embed.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/expander.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/external_docs.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/header.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/info.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/items.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/license.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/normalizer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/normalizer_nonwindows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/normalizer_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/operation.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/parameter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/path_item.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/paths.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/properties.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/ref.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/resolver.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/response.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/responses.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/schema.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/schema_loader.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/schemas/jsonschema-draft-04.json is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/schemas/v2/schema.json is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/security_scheme.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/spec.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/swagger.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/tag.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/url_go19.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/validations.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/xml_object.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/strfmt/.editorconfig is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/strfmt/.gitattributes is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/strfmt/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/strfmt/.golangci.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/strfmt/CODE_OF_CONDUCT.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/strfmt/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/strfmt/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/strfmt/bson.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/strfmt/date.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/strfmt/default.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/strfmt/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/strfmt/duration.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/strfmt/format.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/strfmt/time.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/strfmt/ulid.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/.editorconfig is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/.gitattributes is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/.golangci.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/BENCHMARK.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/CODE_OF_CONDUCT.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/context.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/debug.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/default_validator.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/example_validator.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/formats.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/helpers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/object_validator.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/pools.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/pools_debug.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/result.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/rexp.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/schema.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/schema_messages.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/schema_option.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/schema_props.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/slice_validator.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/spec.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/spec_messages.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/type.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/update-fixtures.sh is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/validator.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/values.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grafana/regexp/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grafana/regexp/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grafana/regexp/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grafana/regexp/backtrack.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grafana/regexp/exec.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grafana/regexp/onepass.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grafana/regexp/regexp.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grafana/regexp/syntax/compile.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grafana/regexp/syntax/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grafana/regexp/syntax/make_perl_groups.pl is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grafana/regexp/syntax/op_string.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grafana/regexp/syntax/parse.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grafana/regexp/syntax/perl_groups.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grafana/regexp/syntax/prog.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grafana/regexp/syntax/regexp.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grafana/regexp/syntax/simplify.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/metalmatze/signal/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/metalmatze/signal/server/signalhttp/instrumentation.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mitchellh/mapstructure/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mitchellh/mapstructure/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mitchellh/mapstructure/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mitchellh/mapstructure/decode_hooks.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mitchellh/mapstructure/error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mitchellh/mapstructure/mapstructure.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/oklog/ulid/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/oklog/ulid/.travis.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/oklog/ulid/AUTHORS.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/oklog/ulid/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/oklog/ulid/CONTRIBUTING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/oklog/ulid/Gopkg.lock is excluded by !**/*.lock, !vendor/**, !**/vendor/**
  • vendor/github.com/oklog/ulid/Gopkg.toml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/oklog/ulid/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/oklog/ulid/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/oklog/ulid/ulid.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opentracing/opentracing-go/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opentracing/opentracing-go/.travis.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opentracing/opentracing-go/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opentracing/opentracing-go/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opentracing/opentracing-go/Makefile is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opentracing/opentracing-go/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opentracing/opentracing-go/ext.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opentracing/opentracing-go/ext/field.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opentracing/opentracing-go/ext/tags.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opentracing/opentracing-go/globaltracer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opentracing/opentracing-go/gocontext.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opentracing/opentracing-go/log/field.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opentracing/opentracing-go/log/util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opentracing/opentracing-go/noop.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opentracing/opentracing-go/propagation.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opentracing/opentracing-go/span.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opentracing/opentracing-go/tracer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/prometheus-community/prom-label-proxy/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/prometheus-community/prom-label-proxy/injectproxy/alerts.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/prometheus-community/prom-label-proxy/injectproxy/enforce.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/prometheus-community/prom-label-proxy/injectproxy/routes.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/prometheus-community/prom-label-proxy/injectproxy/rules.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/prometheus-community/prom-label-proxy/injectproxy/silences.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/prometheus-community/prom-label-proxy/injectproxy/utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/prometheus/alertmanager/COPYRIGHT.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/prometheus/alertmanager/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/prometheus/alertmanager/NOTICE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/prometheus/alertmanager/api/v2/client/alert/alert_client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/prometheus/alertmanager/api/v2/client/alert/get_alerts_parameters.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/prometheus/alertmanager/api/v2/client/alert/get_alerts_responses.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/prometheus/alertmanager/api/v2/client/alert/post_alerts_parameters.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/prometheus/alertmanager/api/v2/client/alert/post_alerts_responses.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/prometheus/alertmanager/api/v2/client/alertgroup/alertgroup_client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/prometheus/alertmanager/api/v2/client/alertgroup/get_alert_groups_parameters.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/prometheus/alertmanager/api/v2/client/alertgroup/get_alert_groups_responses.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/prometheus/alertmanager/api/v2/client/alertmanager_api_client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/prometheus/alertmanager/api/v2/client/general/general_client.go is excluded by !vendor/**, !**/vendor/**
📒 Files selected for processing (3)
  • go.mod
  • pkg/cvo/availableupdates.go
  • pkg/cvo/availableupdates_test.go
🚧 Files skipped from review as they are similar to previous changes (1)
  • pkg/cvo/availableupdates_test.go
🧰 Additional context used
📓 Path-based instructions (1)
**

⚙️ CodeRabbit configuration file

-Focus on major issues impacting performance, readability, maintainability and security. Avoid nitpicks and avoid verbosity.

Files:

  • pkg/cvo/availableupdates.go
  • go.mod
🔇 Additional comments (3)
pkg/cvo/availableupdates.go (2)

16-17: LGTM! Necessary imports for the matcher-based approach.

The new imports for prom-label-proxy/injectproxy and prometheus/model/labels are correctly added to support the refactored injectIdIntoString function.


553-567: LGTM! Robust implementation with proper error handling.

The refactored implementation correctly uses the PromQL enforcer pattern to inject the _id label matcher. The error handling appropriately logs warnings and falls back to the original promQL expression if matcher creation or enforcement fails, ensuring the function remains resilient. Test coverage for this function is in place with comprehensive test cases.

go.mod (1)

19-23: All verified Prometheus dependency versions are valid and free from known critical security vulnerabilities.


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

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Dec 23, 2025

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: simonpasquier
Once this PR has been reviewed and has the lgtm label, please assign davidhurta 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

Copy link

@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: 0

🧹 Nitpick comments (1)
pkg/cvo/availableupdates.go (1)

553-565: Consider logging errors for debugging.

The function correctly uses the PromQL enforcer and falls back to the original expression on any errors, which is appropriate for this context. However, the silent error handling could make it difficult to debug injection failures in production.

🔎 Suggested enhancement to add error logging
 func injectIdIntoString(id string, promQL string) string {
 	m, err := labels.NewMatcher(labels.MatchEqual, "_id", id)
 	if err != nil {
+		klog.V(4).Infof("Failed to create label matcher for _id=%s: %v", id, err)
 		return promQL
 	}
 
 	expr, err := injectproxy.NewPromQLEnforcer(false, m).Enforce(promQL)
 	if err != nil {
+		klog.V(4).Infof("Failed to enforce _id label in PromQL expression %q: %v", promQL, err)
 		return promQL
 	}
 
 	return expr
 }
📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to Reviews -> Disable Knowledge Base setting

📥 Commits

Reviewing files that changed from the base of the PR and between 76ea813 and 92b7e29.

⛔ Files ignored due to path filters (297)
  • go.sum is excluded by !**/*.sum
  • vendor/github.com/asaskevich/govalidator/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/asaskevich/govalidator/.travis.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/asaskevich/govalidator/CODE_OF_CONDUCT.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/asaskevich/govalidator/CONTRIBUTING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/asaskevich/govalidator/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/asaskevich/govalidator/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/asaskevich/govalidator/arrays.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/asaskevich/govalidator/converter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/asaskevich/govalidator/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/asaskevich/govalidator/error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/asaskevich/govalidator/numerics.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/asaskevich/govalidator/patterns.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/asaskevich/govalidator/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/asaskevich/govalidator/utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/asaskevich/govalidator/validator.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/asaskevich/govalidator/wercker.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/dennwc/varint/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/dennwc/varint/.travis.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/dennwc/varint/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/dennwc/varint/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/dennwc/varint/proto.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/dennwc/varint/varint.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/efficientgo/core/COPYRIGHT is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/efficientgo/core/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/efficientgo/core/merrors/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/efficientgo/core/merrors/merrors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-logr/stdr/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-logr/stdr/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-logr/stdr/stdr.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/analysis/.codecov.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/analysis/.gitattributes is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/analysis/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/analysis/.golangci.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/analysis/CODE_OF_CONDUCT.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/analysis/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/analysis/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/analysis/analyzer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/analysis/debug.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/analysis/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/analysis/fixer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/analysis/flatten.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/analysis/flatten_name.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/analysis/flatten_options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/analysis/internal/debug/debug.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/analysis/internal/flatten/normalize/normalize.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/analysis/internal/flatten/operations/operations.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/analysis/internal/flatten/replace/replace.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/analysis/internal/flatten/schutils/flatten_schema.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/analysis/internal/flatten/sortref/keys.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/analysis/internal/flatten/sortref/sort_ref.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/analysis/mixin.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/analysis/schema.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/errors/.gitattributes is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/errors/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/errors/.golangci.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/errors/CODE_OF_CONDUCT.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/errors/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/errors/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/errors/api.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/errors/auth.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/errors/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/errors/headers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/errors/middleware.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/errors/parsing.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/errors/schema.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/jsonreference/.golangci.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/jsonreference/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/loads/.editorconfig is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/loads/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/loads/.golangci.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/loads/.travis.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/loads/CODE_OF_CONDUCT.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/loads/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/loads/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/loads/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/loads/loaders.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/loads/options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/loads/spec.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/.editorconfig is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/.gitattributes is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/.golangci.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/CODE_OF_CONDUCT.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/bytestream.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/client/auth_info.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/client/keepalive.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/client/opentelemetry.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/client/opentracing.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/client/request.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/client/response.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/client/runtime.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/client_auth_info.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/client_operation.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/client_request.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/client_response.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/constants.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/csv.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/csv_options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/discard.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/file.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/headers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/interfaces.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/json.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/logger/logger.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/logger/standard.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/middleware/context.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/middleware/denco/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/middleware/denco/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/middleware/denco/router.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/middleware/denco/server.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/middleware/denco/util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/middleware/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/middleware/header/header.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/middleware/negotiate.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/middleware/not_implemented.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/middleware/operation.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/middleware/parameter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/middleware/rapidoc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/middleware/redoc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/middleware/request.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/middleware/router.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/middleware/security.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/middleware/spec.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/middleware/swaggerui.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/middleware/swaggerui_oauth2.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/middleware/ui_options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/middleware/untyped/api.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/middleware/validation.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/request.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/security/authenticator.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/security/authorizer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/statuses.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/text.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/values.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/xml.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/runtime/yamlpc/yaml.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/.editorconfig is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/.golangci.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/CODE_OF_CONDUCT.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/cache.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/contact_info.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/debug.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/embed.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/expander.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/external_docs.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/header.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/info.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/items.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/license.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/normalizer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/normalizer_nonwindows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/normalizer_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/operation.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/parameter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/path_item.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/paths.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/properties.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/ref.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/resolver.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/response.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/responses.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/schema.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/schema_loader.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/schemas/jsonschema-draft-04.json is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/schemas/v2/schema.json is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/security_scheme.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/spec.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/swagger.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/tag.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/url_go19.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/validations.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/spec/xml_object.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/strfmt/.editorconfig is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/strfmt/.gitattributes is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/strfmt/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/strfmt/.golangci.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/strfmt/CODE_OF_CONDUCT.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/strfmt/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/strfmt/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/strfmt/bson.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/strfmt/date.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/strfmt/default.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/strfmt/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/strfmt/duration.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/strfmt/format.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/strfmt/time.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/strfmt/ulid.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/.editorconfig is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/.gitattributes is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/.golangci.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/BENCHMARK.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/CODE_OF_CONDUCT.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/context.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/debug.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/default_validator.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/example_validator.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/formats.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/helpers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/object_validator.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/pools.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/pools_debug.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/result.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/rexp.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/schema.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/schema_messages.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/schema_option.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/schema_props.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/slice_validator.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/spec.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/spec_messages.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/type.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/update-fixtures.sh is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/validator.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-openapi/validate/values.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grafana/regexp/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grafana/regexp/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grafana/regexp/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grafana/regexp/backtrack.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grafana/regexp/exec.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grafana/regexp/onepass.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grafana/regexp/regexp.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grafana/regexp/syntax/compile.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grafana/regexp/syntax/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grafana/regexp/syntax/make_perl_groups.pl is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grafana/regexp/syntax/op_string.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grafana/regexp/syntax/parse.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grafana/regexp/syntax/perl_groups.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grafana/regexp/syntax/prog.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grafana/regexp/syntax/regexp.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grafana/regexp/syntax/simplify.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/metalmatze/signal/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/metalmatze/signal/server/signalhttp/instrumentation.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mitchellh/mapstructure/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mitchellh/mapstructure/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mitchellh/mapstructure/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mitchellh/mapstructure/decode_hooks.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mitchellh/mapstructure/error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mitchellh/mapstructure/mapstructure.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/oklog/ulid/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/oklog/ulid/.travis.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/oklog/ulid/AUTHORS.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/oklog/ulid/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/oklog/ulid/CONTRIBUTING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/oklog/ulid/Gopkg.lock is excluded by !**/*.lock, !vendor/**, !**/vendor/**
  • vendor/github.com/oklog/ulid/Gopkg.toml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/oklog/ulid/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/oklog/ulid/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/oklog/ulid/ulid.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opentracing/opentracing-go/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opentracing/opentracing-go/.travis.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opentracing/opentracing-go/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opentracing/opentracing-go/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opentracing/opentracing-go/Makefile is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opentracing/opentracing-go/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opentracing/opentracing-go/ext.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opentracing/opentracing-go/ext/field.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opentracing/opentracing-go/ext/tags.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opentracing/opentracing-go/globaltracer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opentracing/opentracing-go/gocontext.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opentracing/opentracing-go/log/field.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opentracing/opentracing-go/log/util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opentracing/opentracing-go/noop.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opentracing/opentracing-go/propagation.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opentracing/opentracing-go/span.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opentracing/opentracing-go/tracer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/prometheus-community/prom-label-proxy/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/prometheus-community/prom-label-proxy/injectproxy/alerts.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/prometheus-community/prom-label-proxy/injectproxy/enforce.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/prometheus-community/prom-label-proxy/injectproxy/routes.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/prometheus-community/prom-label-proxy/injectproxy/rules.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/prometheus-community/prom-label-proxy/injectproxy/silences.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/prometheus-community/prom-label-proxy/injectproxy/utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/prometheus/alertmanager/COPYRIGHT.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/prometheus/alertmanager/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/prometheus/alertmanager/NOTICE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/prometheus/alertmanager/api/v2/client/alert/alert_client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/prometheus/alertmanager/api/v2/client/alert/get_alerts_parameters.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/prometheus/alertmanager/api/v2/client/alert/get_alerts_responses.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/prometheus/alertmanager/api/v2/client/alert/post_alerts_parameters.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/prometheus/alertmanager/api/v2/client/alert/post_alerts_responses.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/prometheus/alertmanager/api/v2/client/alertgroup/alertgroup_client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/prometheus/alertmanager/api/v2/client/alertgroup/get_alert_groups_parameters.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/prometheus/alertmanager/api/v2/client/alertgroup/get_alert_groups_responses.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/prometheus/alertmanager/api/v2/client/alertmanager_api_client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/prometheus/alertmanager/api/v2/client/general/general_client.go is excluded by !vendor/**, !**/vendor/**
📒 Files selected for processing (3)
  • go.mod
  • pkg/cvo/availableupdates.go
  • pkg/cvo/availableupdates_test.go
🧰 Additional context used
📓 Path-based instructions (1)
**

⚙️ CodeRabbit configuration file

-Focus on major issues impacting performance, readability, maintainability and security. Avoid nitpicks and avoid verbosity.

Files:

  • pkg/cvo/availableupdates.go
  • go.mod
  • pkg/cvo/availableupdates_test.go
🔇 Additional comments (3)
pkg/cvo/availableupdates.go (1)

16-17: LGTM! Using well-known Prometheus libraries.

The new imports support the migration to prom-label-proxy/injectproxy for reliable PromQL label injection, replacing the previous ad-hoc implementation. This aligns with the PR objectives.

pkg/cvo/availableupdates_test.go (1)

762-803: LGTM! Comprehensive test coverage.

The test cases thoroughly cover the behavior of injectIdIntoString:

  • Scalar expressions remain unchanged
  • Label injection works for instant vectors
  • Existing _id labels are properly replaced
  • Complex expressions with multiple selectors are handled correctly
  • Invalid expressions fall back to the original input

This provides good coverage for the new PromQL enforcement implementation.

go.mod (1)

19-21: No security vulnerabilities found. All specified versions are stable and have no known public advisories:

  • prometheus/client_golang v1.23.2, client_model v0.6.2, and common v0.66.1 are current releases with no published CVEs
  • google.golang.org/protobuf v1.36.8 is safe (CVE-2024-24786 was fixed in v1.33.0)
  • go.opentelemetry.io/otel v1.36.0 has no published advisories
  • prometheus-community/prom-label-proxy v0.12.1 has no published CVEs

@simonpasquier simonpasquier force-pushed the more-robust-promql-inject branch from 92b7e29 to d1b99e1 Compare December 23, 2025 10:13
This commit leverages the
`github.com/prometheus-community/prom-label-proxy/injectproxy` Go
package to inject the `_id` label in a reliable fashion. The previous
implementation assumed the presence of the `_id` label in the original
expression to work properly.
Signed-off-by: Simon Pasquier <spasquie@redhat.com>
@simonpasquier simonpasquier force-pushed the more-robust-promql-inject branch from d1b99e1 to 259482d Compare December 23, 2025 10:54
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Dec 23, 2025

@simonpasquier: 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/e2e-aws-ovn-techpreview 259482d link true /test e2e-aws-ovn-techpreview
ci/prow/e2e-agnostic-ovn-upgrade-out-of-change 259482d link true /test e2e-agnostic-ovn-upgrade-out-of-change
ci/prow/e2e-agnostic-ovn 259482d link true /test e2e-agnostic-ovn
ci/prow/okd-scos-images 259482d link true /test okd-scos-images

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

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant