-
Notifications
You must be signed in to change notification settings - Fork 212
More robust promql inject #1280
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
More robust promql inject #1280
Conversation
WalkthroughReplaces string-based PromQL _id injection with a matcher/enforcer approach in Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes ✨ Finishing touches
🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: Organization UI Review profile: CHILL Plan: Pro Cache: Disabled due to data retention organization setting Knowledge base: Disabled due to ⛔ Files ignored due to path filters (297)
📒 Files selected for processing (3)
🚧 Files skipped from review as they are similar to previous changes (1)
🧰 Additional context used📓 Path-based instructions (1)**⚙️ CodeRabbit configuration file
Files:
🔇 Additional comments (3)
Comment |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: simonpasquier The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
There was a problem hiding this comment.
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
⛔ Files ignored due to path filters (297)
go.sumis excluded by!**/*.sumvendor/github.com/asaskevich/govalidator/.gitignoreis excluded by!vendor/**,!**/vendor/**vendor/github.com/asaskevich/govalidator/.travis.ymlis excluded by!vendor/**,!**/vendor/**vendor/github.com/asaskevich/govalidator/CODE_OF_CONDUCT.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/asaskevich/govalidator/CONTRIBUTING.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/asaskevich/govalidator/LICENSEis excluded by!vendor/**,!**/vendor/**vendor/github.com/asaskevich/govalidator/README.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/asaskevich/govalidator/arrays.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/asaskevich/govalidator/converter.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/asaskevich/govalidator/doc.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/asaskevich/govalidator/error.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/asaskevich/govalidator/numerics.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/asaskevich/govalidator/patterns.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/asaskevich/govalidator/types.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/asaskevich/govalidator/utils.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/asaskevich/govalidator/validator.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/asaskevich/govalidator/wercker.ymlis excluded by!vendor/**,!**/vendor/**vendor/github.com/dennwc/varint/.gitignoreis excluded by!vendor/**,!**/vendor/**vendor/github.com/dennwc/varint/.travis.ymlis excluded by!vendor/**,!**/vendor/**vendor/github.com/dennwc/varint/LICENSEis excluded by!vendor/**,!**/vendor/**vendor/github.com/dennwc/varint/README.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/dennwc/varint/proto.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/dennwc/varint/varint.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/efficientgo/core/COPYRIGHTis excluded by!vendor/**,!**/vendor/**vendor/github.com/efficientgo/core/LICENSEis excluded by!vendor/**,!**/vendor/**vendor/github.com/efficientgo/core/merrors/doc.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/efficientgo/core/merrors/merrors.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-logr/stdr/LICENSEis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-logr/stdr/README.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-logr/stdr/stdr.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/analysis/.codecov.ymlis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/analysis/.gitattributesis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/analysis/.gitignoreis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/analysis/.golangci.ymlis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/analysis/CODE_OF_CONDUCT.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/analysis/LICENSEis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/analysis/README.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/analysis/analyzer.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/analysis/debug.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/analysis/doc.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/analysis/fixer.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/analysis/flatten.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/analysis/flatten_name.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/analysis/flatten_options.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/analysis/internal/debug/debug.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/analysis/internal/flatten/normalize/normalize.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/analysis/internal/flatten/operations/operations.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/analysis/internal/flatten/replace/replace.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/analysis/internal/flatten/schutils/flatten_schema.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/analysis/internal/flatten/sortref/keys.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/analysis/internal/flatten/sortref/sort_ref.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/analysis/mixin.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/analysis/schema.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/errors/.gitattributesis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/errors/.gitignoreis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/errors/.golangci.ymlis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/errors/CODE_OF_CONDUCT.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/errors/LICENSEis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/errors/README.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/errors/api.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/errors/auth.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/errors/doc.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/errors/headers.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/errors/middleware.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/errors/parsing.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/errors/schema.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/jsonreference/.golangci.ymlis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/jsonreference/README.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/loads/.editorconfigis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/loads/.gitignoreis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/loads/.golangci.ymlis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/loads/.travis.ymlis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/loads/CODE_OF_CONDUCT.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/loads/LICENSEis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/loads/README.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/loads/doc.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/loads/loaders.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/loads/options.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/loads/spec.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/.editorconfigis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/.gitattributesis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/.gitignoreis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/.golangci.ymlis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/CODE_OF_CONDUCT.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/LICENSEis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/README.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/bytestream.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/client/auth_info.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/client/keepalive.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/client/opentelemetry.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/client/opentracing.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/client/request.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/client/response.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/client/runtime.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/client_auth_info.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/client_operation.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/client_request.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/client_response.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/constants.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/csv.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/csv_options.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/discard.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/file.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/headers.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/interfaces.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/json.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/logger/logger.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/logger/standard.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/middleware/context.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/middleware/denco/LICENSEis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/middleware/denco/README.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/middleware/denco/router.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/middleware/denco/server.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/middleware/denco/util.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/middleware/doc.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/middleware/header/header.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/middleware/negotiate.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/middleware/not_implemented.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/middleware/operation.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/middleware/parameter.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/middleware/rapidoc.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/middleware/redoc.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/middleware/request.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/middleware/router.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/middleware/security.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/middleware/spec.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/middleware/swaggerui.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/middleware/swaggerui_oauth2.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/middleware/ui_options.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/middleware/untyped/api.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/middleware/validation.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/request.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/security/authenticator.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/security/authorizer.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/statuses.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/text.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/values.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/xml.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/runtime/yamlpc/yaml.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/spec/.editorconfigis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/spec/.gitignoreis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/spec/.golangci.ymlis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/spec/CODE_OF_CONDUCT.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/spec/LICENSEis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/spec/README.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/spec/cache.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/spec/contact_info.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/spec/debug.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/spec/embed.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/spec/errors.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/spec/expander.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/spec/external_docs.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/spec/header.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/spec/info.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/spec/items.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/spec/license.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/spec/normalizer.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/spec/normalizer_nonwindows.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/spec/normalizer_windows.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/spec/operation.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/spec/parameter.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/spec/path_item.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/spec/paths.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/spec/properties.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/spec/ref.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/spec/resolver.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/spec/response.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/spec/responses.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/spec/schema.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/spec/schema_loader.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/spec/schemas/jsonschema-draft-04.jsonis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/spec/schemas/v2/schema.jsonis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/spec/security_scheme.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/spec/spec.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/spec/swagger.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/spec/tag.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/spec/url_go19.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/spec/validations.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/spec/xml_object.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/strfmt/.editorconfigis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/strfmt/.gitattributesis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/strfmt/.gitignoreis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/strfmt/.golangci.ymlis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/strfmt/CODE_OF_CONDUCT.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/strfmt/LICENSEis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/strfmt/README.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/strfmt/bson.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/strfmt/date.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/strfmt/default.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/strfmt/doc.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/strfmt/duration.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/strfmt/format.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/strfmt/time.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/strfmt/ulid.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/validate/.editorconfigis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/validate/.gitattributesis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/validate/.gitignoreis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/validate/.golangci.ymlis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/validate/BENCHMARK.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/validate/CODE_OF_CONDUCT.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/validate/LICENSEis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/validate/README.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/validate/context.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/validate/debug.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/validate/default_validator.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/validate/doc.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/validate/example_validator.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/validate/formats.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/validate/helpers.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/validate/object_validator.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/validate/options.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/validate/pools.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/validate/pools_debug.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/validate/result.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/validate/rexp.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/validate/schema.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/validate/schema_messages.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/validate/schema_option.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/validate/schema_props.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/validate/slice_validator.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/validate/spec.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/validate/spec_messages.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/validate/type.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/validate/update-fixtures.shis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/validate/validator.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-openapi/validate/values.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/grafana/regexp/.gitignoreis excluded by!vendor/**,!**/vendor/**vendor/github.com/grafana/regexp/LICENSEis excluded by!vendor/**,!**/vendor/**vendor/github.com/grafana/regexp/README.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/grafana/regexp/backtrack.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/grafana/regexp/exec.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/grafana/regexp/onepass.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/grafana/regexp/regexp.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/grafana/regexp/syntax/compile.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/grafana/regexp/syntax/doc.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/grafana/regexp/syntax/make_perl_groups.plis excluded by!vendor/**,!**/vendor/**vendor/github.com/grafana/regexp/syntax/op_string.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/grafana/regexp/syntax/parse.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/grafana/regexp/syntax/perl_groups.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/grafana/regexp/syntax/prog.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/grafana/regexp/syntax/regexp.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/grafana/regexp/syntax/simplify.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/metalmatze/signal/LICENSEis excluded by!vendor/**,!**/vendor/**vendor/github.com/metalmatze/signal/server/signalhttp/instrumentation.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mitchellh/mapstructure/CHANGELOG.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/mitchellh/mapstructure/LICENSEis excluded by!vendor/**,!**/vendor/**vendor/github.com/mitchellh/mapstructure/README.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/mitchellh/mapstructure/decode_hooks.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mitchellh/mapstructure/error.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mitchellh/mapstructure/mapstructure.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/oklog/ulid/.gitignoreis excluded by!vendor/**,!**/vendor/**vendor/github.com/oklog/ulid/.travis.ymlis excluded by!vendor/**,!**/vendor/**vendor/github.com/oklog/ulid/AUTHORS.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/oklog/ulid/CHANGELOG.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/oklog/ulid/CONTRIBUTING.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/oklog/ulid/Gopkg.lockis excluded by!**/*.lock,!vendor/**,!**/vendor/**vendor/github.com/oklog/ulid/Gopkg.tomlis excluded by!vendor/**,!**/vendor/**vendor/github.com/oklog/ulid/LICENSEis excluded by!vendor/**,!**/vendor/**vendor/github.com/oklog/ulid/README.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/oklog/ulid/ulid.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/opentracing/opentracing-go/.gitignoreis excluded by!vendor/**,!**/vendor/**vendor/github.com/opentracing/opentracing-go/.travis.ymlis excluded by!vendor/**,!**/vendor/**vendor/github.com/opentracing/opentracing-go/CHANGELOG.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/opentracing/opentracing-go/LICENSEis excluded by!vendor/**,!**/vendor/**vendor/github.com/opentracing/opentracing-go/Makefileis excluded by!vendor/**,!**/vendor/**vendor/github.com/opentracing/opentracing-go/README.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/opentracing/opentracing-go/ext.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/opentracing/opentracing-go/ext/field.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/opentracing/opentracing-go/ext/tags.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/opentracing/opentracing-go/globaltracer.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/opentracing/opentracing-go/gocontext.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/opentracing/opentracing-go/log/field.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/opentracing/opentracing-go/log/util.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/opentracing/opentracing-go/noop.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/opentracing/opentracing-go/propagation.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/opentracing/opentracing-go/span.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/opentracing/opentracing-go/tracer.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/prometheus-community/prom-label-proxy/LICENSEis excluded by!vendor/**,!**/vendor/**vendor/github.com/prometheus-community/prom-label-proxy/injectproxy/alerts.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/prometheus-community/prom-label-proxy/injectproxy/enforce.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/prometheus-community/prom-label-proxy/injectproxy/routes.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/prometheus-community/prom-label-proxy/injectproxy/rules.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/prometheus-community/prom-label-proxy/injectproxy/silences.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/prometheus-community/prom-label-proxy/injectproxy/utils.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/prometheus/alertmanager/COPYRIGHT.txtis excluded by!vendor/**,!**/vendor/**vendor/github.com/prometheus/alertmanager/LICENSEis excluded by!vendor/**,!**/vendor/**vendor/github.com/prometheus/alertmanager/NOTICEis excluded by!vendor/**,!**/vendor/**vendor/github.com/prometheus/alertmanager/api/v2/client/alert/alert_client.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/prometheus/alertmanager/api/v2/client/alert/get_alerts_parameters.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/prometheus/alertmanager/api/v2/client/alert/get_alerts_responses.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/prometheus/alertmanager/api/v2/client/alert/post_alerts_parameters.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/prometheus/alertmanager/api/v2/client/alert/post_alerts_responses.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/prometheus/alertmanager/api/v2/client/alertgroup/alertgroup_client.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/prometheus/alertmanager/api/v2/client/alertgroup/get_alert_groups_parameters.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/prometheus/alertmanager/api/v2/client/alertgroup/get_alert_groups_responses.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/prometheus/alertmanager/api/v2/client/alertmanager_api_client.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/prometheus/alertmanager/api/v2/client/general/general_client.gois excluded by!vendor/**,!**/vendor/**
📒 Files selected for processing (3)
go.modpkg/cvo/availableupdates.gopkg/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.gogo.modpkg/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/injectproxyfor 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
_idlabels 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
92b7e29 to
d1b99e1
Compare
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>
d1b99e1 to
259482d
Compare
|
@simonpasquier: The following tests failed, say
Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
This PR leverages the
github.com/prometheus-community/prom-label-proxy/injectproxyGopackage to inject the
_idlabel in a reliable fashion. The previous implementation assumed the presence of the_idlabel in the original expression to work properly./cc @wking