-
Notifications
You must be signed in to change notification settings - Fork 2.3k
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
feat: Add WithForwardResponseRewriter to allow easier/more useful response control #4622
feat: Add WithForwardResponseRewriter to allow easier/more useful response control #4622
Conversation
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.
Just having a brief look at this before diving deeper, but you'll need to regenerate the files in the repo using the new template.go logic. See CONTRIBUTING.md
in the root of the repo for the steps.
Thanks for your thoughtful and detailed description. I'm hoping to exhaust all options before going for new functionality, as I'm sure you understand. I had some crazy ideas to throw out there:
|
Hi @johanbrandhorst! Thanks for the feedback. I have run the code-generators and pushed those changes up (sorry for missing that step and just breezing by the contributing docs). Let me address your other feedback:
So, I might be misunderstanding what exactly you're recommending here, but I think you're recommending grpc.NewClient(
"localhost:8334",
grpc.WithUnaryInterceptor(func(ctx context.Context, method string, req, reply any, cc *grpc.ClientConn, invoker grpc.UnaryInvoker, opts ...grpc.CallOption) error {
err := invoker(ctx, method, req, reply, cc, opts...)
if err != nil {
// uh..., how do I return my error response envelope?
}
// uh..., how do return my normal response envelope?
}),
) The interceptor does not allow for a different response to be returned. Again, I could be misunderstanding or missing something obvious, apologies if so. Moreover though, my current approach to using
This would technically work, but I think it runs contrary to my goals with this change. I'll elaborate: I am actually trying to find a way to make this pattern repeatable across a number of teams inside my company. A lot of teams implement microservices that are upstream of a Load Balancer, and all of those services implement the response envelope convention. My "vision" is to broaden adoption of gRPC but also remain accessible in the REST/JSON world. Exec Summary: That approach does work, but it does not "scale" well when the aim is to get large groups of separate people to adopt it; to have a manual tedium of needing to hand-implement this sort of neutralizes a lot of the benefits. I fully understand that my "starry-eyed dreams" of some internal company experiment are not the concern of this project 😅. That being said, I think the proposal made here is a net-benefit for the usefulness/value of this project. Having skimmed the past issues, I do get a sense that it is a missing piece (just my perspective). Lastly, |
Thanks for elaborating. I expected that this would come down to wanting to make this scalable, which I agree that manual marshaler logic probably isn't. I want to try to narrow down exactly what the proposal here is though, because it's also not a "give me a way to do anything with the response", which is essentially what the custom marshaler does. This seems to me to be almost an interceptor/middleware/decorator in the middle of the gateway logic, and I don't know how applicable it is to the general user. It seems like it solve this very particular problem of introducing a message envelope, dynamically (rather than statically in your protos), but I'm not yet convinced that it's generally useful. Do you think you could find issues in our backlog that could be resolve by this functionality? I want this feature to be both generally useful and orthogonal to other functionality of the gateway. I'm worried that this option will be confusing when we have |
In my mental model of
My proposal of
So, with that, I do believe it is "orthogonal" to other functionality and fills a missing piece. The other extreme alternative to all this (which I actually do not think is a good idea) is to allow full control over the response. A bad direction (IMO) would be to allow configuration over what gets assigned/used in the generated code here: // myservice.pb.gw.go
var (
// Let this be configured to be something else?
forward_MyService_ListStuff_0 = runtime.ForwardResponseMessage
) I don't think this is a good approach though. Letting Some past issues that I think this helps: Sorry for the meandering response, but to summarize: There is (IMO) a missing piece to response control. I think this is the right direction to go in (Just one more escape-hatch, not necessarily allowing full response control), and this approach does not overlap with anything currently available. This proposal also I believe just lets you control the shape/type of the response, not "give me a way to do anything with the response." 🙂 Side-note: I see "change requested" still, did I address that? Also the |
The lint failure is not your fault. I will take time to review this when I have a chance. Thanks for your reply. |
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.
Alright, I buy it. BUT, I'm going to make you work for it. This is probably one of the biggest feature additions in a year or more. Could you please add a section on this new functionality to our docs page on customizing the gateway: https://github.com/grpc-ecosystem/grpc-gateway/blob/main/docs/docs/mapping/customizing_your_gateway.md? Thanks!
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.
This looks great, just a few minor changes
…ponse control ## Context/Background I am working with grpc-gateway to mimick an older REST API while implementing the core as a gRPC server. This REST API, by convention, emits a response envelope. After extensively researching grpc-gateway's code and options, I think that there is not a good enough way to address my use-case; for a few more nuanced reasons. The sum of my requirements are as follows: - 1) Allow a particular field of a response message to be used as the main response. ✅ This is handled with `response_body` annotation. - 2) Be able to run interface checks on the response to extract useful information, like `next_page_token` [0] and surface it in the final response envelope. (`npt, ok := resp.(interface { GetNextPageToken() string })`). - 3) Take the true result and place it into a response envelope along with other parts of the response by convention and let that be encoded and sent as the response instead. ### Implementing a response envelope with `Marshaler` My first attempt at getting my gRPC server's responses in an envelope led me to implement my own Marshaler, I have seen this approach discussed in #4483. This does satisfy requirements 1 and 3 just fine, since the HTTP annotations helpfully allow the code to only receive the true result, and the Marshal interface has enough capabilities to take that and wrap it in a response envelope. However, requirements 1 and 2 are not _both_ satisfiable with the current grpc-gateway code because of how the `XXX_ResponseBody()` is called _before_ passing to the `Marshal(v)` function. This strips out the other fields that I would normally be able to detect and place in the response envelope. I even tried creating my _own_ protobuf message extension that would let me define another way of defining the "true result" field. But the options for implementing that are either a _ton_ of protoreflect at runtime to detect and extract that, or I am writing another protobuf generator plugin (which I have done before [1]), but both of those options seem quite complex. ### Other non-starter options Just to get ahead of the discussion, `WithForwardResponseOption` clearly was not meant for this use-case. At best, it seems to only be a way to take information that might be in the response and add it as a header. [0]: https://google.aip.dev/158#:~:text=Response%20messages%20for%20collections%20should%20define%20a%20string%20next_page_token%20field [1]: https://github.com/nkcmr/protoc-gen-twirp_js ### In practice This change fulfills my requirements by allowing logic to be inserted right before the Marshal is called: ```go gatewayMux := runtime.NewServeMux( runtime.WithForwardResponseRewriter(func(ctx context.Context, response proto.Message) (interface{}, error) { if s, ok := response.(*statuspb.Status); ok { return rewriteStatusToErrorEnvelope(ctx, s) } return rewriteResultToEnvelope(ctx, response) }), ) ``` ## In this PR This PR introduces a new `ServeMuxOption` called `WithForwardResponseRewriter` that allows for a user-provided function to be supplied that can take a response `proto.Message` and return `any` during unary response forwarding, stream response forwarding, and error response forwarding. The code generation was also updated to make the `XXX_ResponseBody()` response wrappers embed the concrete type instead of just `proto.Message`. This allows any code in response rewriter functions to be able to have access to the original type, so that interface checks against it should pass as if it was the original message. Updated the "Customizing Your Gateway" documentation to use `WithForwardResponseRewriter` in the `Fully Overriding Custom HTTP Responses` sections. ## Testing Added some basic unit tests to ensure Unary/Stream and error handlers invoke `ForwardResponseRewriter` correctly.
Thank you so much, @johanbrandhorst! Especially for putting up with my short novel comments. 😆 |
Thank you for your contribution! |
I just cut v2.22.0 with this new feature. Thanks again :). |
…to v2.22.0 (#6016) [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [github.com/grpc-ecosystem/grpc-gateway/v2](https://togithub.com/grpc-ecosystem/grpc-gateway) | `v2.21.0` -> `v2.22.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fgrpc-ecosystem%2fgrpc-gateway%2fv2/v2.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fgrpc-ecosystem%2fgrpc-gateway%2fv2/v2.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fgrpc-ecosystem%2fgrpc-gateway%2fv2/v2.21.0/v2.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fgrpc-ecosystem%2fgrpc-gateway%2fv2/v2.21.0/v2.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>grpc-ecosystem/grpc-gateway (github.com/grpc-ecosystem/grpc-gateway/v2)</summary> ### [`v2.22.0`](https://togithub.com/grpc-ecosystem/grpc-gateway/releases/tag/v2.22.0) [Compare Source](https://togithub.com/grpc-ecosystem/grpc-gateway/compare/v2.21.0...v2.22.0) #### What's Changed - docs: add example to fully override http responses by [@​nguyentranbao-ct](https://togithub.com/nguyentranbao-ct) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4564](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4564) - stop printing error logs in handleForwardResponseOptions by [@​taichimaeda](https://togithub.com/taichimaeda) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4594](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4594) - Add some documenation for CustomQueryParser with examples by [@​texzone](https://togithub.com/texzone) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4602](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4602) - Fix [#​4614](https://togithub.com/grpc-ecosystem/grpc-gateway/issues/4614) Unique Items placement by [@​sebaraj](https://togithub.com/sebaraj) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4619](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4619) - all: fix test lint warnings by [@​johanbrandhorst](https://togithub.com/johanbrandhorst) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4632](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4632) - ci: update go versions supported by [@​johanbrandhorst](https://togithub.com/johanbrandhorst) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4634](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4634) - feat: Add WithForwardResponseRewriter to allow easier/more useful response control by [@​nkcmr](https://togithub.com/nkcmr) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4622](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4622) #### New Contributors - [@​nguyentranbao-ct](https://togithub.com/nguyentranbao-ct) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4564](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4564) - [@​taichimaeda](https://togithub.com/taichimaeda) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4594](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4594) - [@​texzone](https://togithub.com/texzone) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4602](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4602) - [@​sebaraj](https://togithub.com/sebaraj) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4619](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4619) - [@​nkcmr](https://togithub.com/nkcmr) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4622](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4622) **Full Changelog**: grpc-ecosystem/grpc-gateway@v2.21.0...v2.22.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View the [repository job log](https://developer.mend.io/github/open-telemetry/opentelemetry-go-contrib). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4yNi4xIiwidXBkYXRlZEluVmVyIjoiMzguMjYuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiU2tpcCBDaGFuZ2Vsb2ciLCJkZXBlbmRlbmNpZXMiXX0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | Type | Update | |---|---|---|---|---|---|---|---| | [github.com/aws/aws-sdk-go-v2/config](https://togithub.com/aws/aws-sdk-go-v2) | `v1.27.27` -> `v1.27.28` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2faws%2faws-sdk-go-v2%2fconfig/v1.27.28?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2faws%2faws-sdk-go-v2%2fconfig/v1.27.28?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2faws%2faws-sdk-go-v2%2fconfig/v1.27.27/v1.27.28?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2faws%2faws-sdk-go-v2%2fconfig/v1.27.27/v1.27.28?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | patch | | [github.com/aws/aws-sdk-go-v2/service/marketplacemetering](https://togithub.com/aws/aws-sdk-go-v2) | `v1.23.3` -> `v1.23.4` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2faws%2faws-sdk-go-v2%2fservice%2fmarketplacemetering/v1.23.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2faws%2faws-sdk-go-v2%2fservice%2fmarketplacemetering/v1.23.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2faws%2faws-sdk-go-v2%2fservice%2fmarketplacemetering/v1.23.3/v1.23.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2faws%2faws-sdk-go-v2%2fservice%2fmarketplacemetering/v1.23.3/v1.23.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | patch | | [github.com/aws/smithy-go](https://togithub.com/aws/smithy-go) | `v1.20.3` -> `v1.20.4` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2faws%2fsmithy-go/v1.20.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2faws%2fsmithy-go/v1.20.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2faws%2fsmithy-go/v1.20.3/v1.20.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2faws%2fsmithy-go/v1.20.3/v1.20.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | patch | | [github.com/bufbuild/buf](https://togithub.com/bufbuild/buf) | `v1.36.0` -> `v1.37.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fbufbuild%2fbuf/v1.37.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fbufbuild%2fbuf/v1.37.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fbufbuild%2fbuf/v1.36.0/v1.37.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fbufbuild%2fbuf/v1.36.0/v1.37.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | minor | | [github.com/bufbuild/protovalidate-go](https://togithub.com/bufbuild/protovalidate-go) | `v0.6.3` -> `v0.6.4` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fbufbuild%2fprotovalidate-go/v0.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fbufbuild%2fprotovalidate-go/v0.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fbufbuild%2fprotovalidate-go/v0.6.3/v0.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fbufbuild%2fprotovalidate-go/v0.6.3/v0.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | patch | | [github.com/dadav/helm-schema](https://togithub.com/dadav/helm-schema) | `82590e8` -> `4e067df` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fdadav%2fhelm-schema/v0.0.0-20240817173722-4e067df209ea?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fdadav%2fhelm-schema/v0.0.0-20240817173722-4e067df209ea?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fdadav%2fhelm-schema/v0.0.0-20240808173306-82590e886026/v0.0.0-20240817173722-4e067df209ea?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fdadav%2fhelm-schema/v0.0.0-20240808173306-82590e886026/v0.0.0-20240817173722-4e067df209ea?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | digest | | [github.com/golangci/golangci-lint](https://togithub.com/golangci/golangci-lint) | `v1.59.1` -> `v1.60.1` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fgolangci%2fgolangci-lint/v1.60.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fgolangci%2fgolangci-lint/v1.60.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fgolangci%2fgolangci-lint/v1.59.1/v1.60.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fgolangci%2fgolangci-lint/v1.59.1/v1.60.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | minor | | [github.com/goreleaser/goreleaser/v2](https://togithub.com/goreleaser/goreleaser) | `v2.1.0` -> `v2.2.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fgoreleaser%2fgoreleaser%2fv2/v2.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fgoreleaser%2fgoreleaser%2fv2/v2.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fgoreleaser%2fgoreleaser%2fv2/v2.1.0/v2.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fgoreleaser%2fgoreleaser%2fv2/v2.1.0/v2.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | minor | | [github.com/grpc-ecosystem/grpc-gateway/v2](https://togithub.com/grpc-ecosystem/grpc-gateway) | `v2.21.0` -> `v2.22.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fgrpc-ecosystem%2fgrpc-gateway%2fv2/v2.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fgrpc-ecosystem%2fgrpc-gateway%2fv2/v2.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fgrpc-ecosystem%2fgrpc-gateway%2fv2/v2.21.0/v2.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fgrpc-ecosystem%2fgrpc-gateway%2fv2/v2.21.0/v2.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | minor | | [github.com/minio/minio-go/v7](https://togithub.com/minio/minio-go) | `v7.0.74` -> `v7.0.75` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fminio%2fminio-go%2fv7/v7.0.75?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fminio%2fminio-go%2fv7/v7.0.75?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fminio%2fminio-go%2fv7/v7.0.74/v7.0.75?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fminio%2fminio-go%2fv7/v7.0.74/v7.0.75?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | patch | | [github.com/ory/dockertest/v3](https://togithub.com/ory/dockertest) | `v3.10.0` -> `v3.11.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fory%2fdockertest%2fv3/v3.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fory%2fdockertest%2fv3/v3.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fory%2fdockertest%2fv3/v3.10.0/v3.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fory%2fdockertest%2fv3/v3.10.0/v3.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | minor | | [github.com/prometheus/client_golang](https://togithub.com/prometheus/client_golang) | `v1.19.1` -> `v1.20.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fprometheus%2fclient_golang/v1.20.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fprometheus%2fclient_golang/v1.20.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fprometheus%2fclient_golang/v1.19.1/v1.20.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fprometheus%2fclient_golang/v1.19.1/v1.20.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | minor | | [github.com/rivo/tview](https://togithub.com/rivo/tview) | `e4c497c` -> `fd649db` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2frivo%2ftview/v0.0.0-20240818110301-fd649dbf1223?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2frivo%2ftview/v0.0.0-20240818110301-fd649dbf1223?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2frivo%2ftview/v0.0.0-20240807205129-e4c497cc59ed/v0.0.0-20240818110301-fd649dbf1223?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2frivo%2ftview/v0.0.0-20240807205129-e4c497cc59ed/v0.0.0-20240818110301-fd649dbf1223?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | digest | | [github.com/vektra/mockery/v2](https://togithub.com/vektra/mockery) | `v2.44.1` -> `v2.44.2` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fvektra%2fmockery%2fv2/v2.44.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fvektra%2fmockery%2fv2/v2.44.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fvektra%2fmockery%2fv2/v2.44.1/v2.44.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fvektra%2fmockery%2fv2/v2.44.1/v2.44.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | patch | | [go](https://go.dev/) ([source](https://togithub.com/golang/go)) | `1.22.6` -> `1.23.0` | [![age](https://developer.mend.io/api/mc/badges/age/golang-version/go/1.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/golang-version/go/1.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/golang-version/go/1.22.6/1.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/golang-version/go/1.22.6/1.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | toolchain | minor | | gonum.org/v1/gonum | `v0.15.0` -> `v0.15.1` | [![age](https://developer.mend.io/api/mc/badges/age/go/gonum.org%2fv1%2fgonum/v0.15.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/gonum.org%2fv1%2fgonum/v0.15.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/gonum.org%2fv1%2fgonum/v0.15.0/v0.15.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/gonum.org%2fv1%2fgonum/v0.15.0/v0.15.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | patch | | [google.golang.org/genproto/googleapis/api](https://togithub.com/googleapis/go-genproto) | `573a115` -> `ddb44da` | [![age](https://developer.mend.io/api/mc/badges/age/go/google.golang.org%2fgenproto%2fgoogleapis%2fapi/v0.0.0-20240814211410-ddb44dafa142?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/google.golang.org%2fgenproto%2fgoogleapis%2fapi/v0.0.0-20240814211410-ddb44dafa142?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/google.golang.org%2fgenproto%2fgoogleapis%2fapi/v0.0.0-20240808171019-573a1156607a/v0.0.0-20240814211410-ddb44dafa142?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/google.golang.org%2fgenproto%2fgoogleapis%2fapi/v0.0.0-20240808171019-573a1156607a/v0.0.0-20240814211410-ddb44dafa142?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | digest | | [helm.sh/helm/v3](https://togithub.com/helm/helm) | `v3.15.3` -> `v3.15.4` | [![age](https://developer.mend.io/api/mc/badges/age/go/helm.sh%2fhelm%2fv3/v3.15.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/helm.sh%2fhelm%2fv3/v3.15.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/helm.sh%2fhelm%2fv3/v3.15.3/v3.15.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/helm.sh%2fhelm%2fv3/v3.15.3/v3.15.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | patch | --- ### Release Notes <details> <summary>aws/aws-sdk-go-v2 (github.com/aws/aws-sdk-go-v2/service/marketplacemetering)</summary> ### [`v1.23.4`](https://togithub.com/aws/aws-sdk-go-v2/compare/v1.23.3...v1.23.4) </details> <details> <summary>aws/smithy-go (github.com/aws/smithy-go)</summary> ### [`v1.20.4`](https://togithub.com/aws/smithy-go/compare/v1.20.3...v1.20.4) [Compare Source](https://togithub.com/aws/smithy-go/compare/v1.20.3...v1.20.4) </details> <details> <summary>bufbuild/buf (github.com/bufbuild/buf)</summary> ### [`v1.37.0`](https://togithub.com/bufbuild/buf/blob/HEAD/CHANGELOG.md#v1370---2024-08-16) [Compare Source](https://togithub.com/bufbuild/buf/compare/v1.36.0...v1.37.0) - Add `STABLE_PACKAGE_NO_IMPORT_UNSTABLE` lint rule which disallows files from stable packages to import files from unstable packages. - Fix plugin push failures when pushing an image built with containerd image store. </details> <details> <summary>bufbuild/protovalidate-go (github.com/bufbuild/protovalidate-go)</summary> ### [`v0.6.4`](https://togithub.com/bufbuild/protovalidate-go/releases/tag/v0.6.4) [Compare Source](https://togithub.com/bufbuild/protovalidate-go/compare/v0.6.3...v0.6.4) This release adds support for Protobuf Editions features. #### What's Changed - Always treat groups as message fields by [@​jchadwick-buf](https://togithub.com/jchadwick-buf) in [https://github.com/bufbuild/protovalidate-go/pull/132](https://togithub.com/bufbuild/protovalidate-go/pull/132) **Full Changelog**: https://github.com/bufbuild/protovalidate-go/compare/v0.6.3...v0.6.4 </details> <details> <summary>golangci/golangci-lint (github.com/golangci/golangci-lint)</summary> ### [`v1.60.1`](https://togithub.com/golangci/golangci-lint/compare/v1.60.0...v1.60.1) [Compare Source](https://togithub.com/golangci/golangci-lint/compare/v1.60.0...v1.60.1) ### [`v1.60.0`](https://togithub.com/golangci/golangci-lint/compare/v1.59.1...v1.60.0) [Compare Source](https://togithub.com/golangci/golangci-lint/compare/v1.59.1...v1.60.0) </details> <details> <summary>goreleaser/goreleaser (github.com/goreleaser/goreleaser/v2)</summary> ### [`v2.2.0`](https://togithub.com/goreleaser/goreleaser/releases/tag/v2.2.0) [Compare Source](https://togithub.com/goreleaser/goreleaser/compare/v2.1.0...v2.2.0) #### Changelog ##### New Features - [`a8916c0`](https://togithub.com/goreleaser/goreleaser/commit/a8916c080ea52afbb8bdd31404ae8de637fc247a): feat: binary signs ([#​5018](https://togithub.com/goreleaser/goreleaser/issues/5018)) ([@​caarlos0](https://togithub.com/caarlos0)) - [`2de792c`](https://togithub.com/goreleaser/goreleaser/commit/2de792c31da0823d88e049bd83b450f3d878326b): feat: rename snapshot.name_template -> snapshot.version_template ([#​5019](https://togithub.com/goreleaser/goreleaser/issues/5019)) ([@​caarlos0](https://togithub.com/caarlos0)) - [`b6f9c8b`](https://togithub.com/goreleaser/goreleaser/commit/b6f9c8b9ca520d7fa6f01a087a1534e01f0bb032): feat: when --clean, remove dist before checking git state ([#​5057](https://togithub.com/goreleaser/goreleaser/issues/5057)) ([@​caarlos0](https://togithub.com/caarlos0)) ##### Bug fixes - [`893562c`](https://togithub.com/goreleaser/goreleaser/commit/893562ca734d81db781c638cce4dfe5bcd985754): fix(gitlab): release file URL broken ([#​5035](https://togithub.com/goreleaser/goreleaser/issues/5035)) ([@​abemedia](https://togithub.com/abemedia)) - [`569295d`](https://togithub.com/goreleaser/goreleaser/commit/569295d43f6b91d01a8464e98574c6910cd694db): fix(jsonschema): missing ipk in nfpm.formats ([@​caarlos0](https://togithub.com/caarlos0)) - [`ce4f2ed`](https://togithub.com/goreleaser/goreleaser/commit/ce4f2ed4316eb0441d7aae9afd71a23ba2dcd32f): fix(ko): rework error message for relative path for .go suffix ([#​5005](https://togithub.com/goreleaser/goreleaser/issues/5005)) ([@​Dentrax](https://togithub.com/Dentrax)) - [`bab28eb`](https://togithub.com/goreleaser/goreleaser/commit/bab28ebf88fa7f76c9dd68ebd570b1f54f7e4edd): fix(nix): do not install go on macos ([@​caarlos0](https://togithub.com/caarlos0)) - [`c9398ee`](https://togithub.com/goreleaser/goreleaser/commit/c9398ee88cd493ea7c6b074fac0d44ca12512d40): fix: consistent logging of source archive path ([@​caarlos0](https://togithub.com/caarlos0)) - [`3ae3a09`](https://togithub.com/goreleaser/goreleaser/commit/3ae3a098e7bd127aef36125116ec88b9411b57cc): fix: isEnvSet and envOrDefault not working sometimes ([@​caarlos0](https://togithub.com/caarlos0)) - [`1e5a240`](https://togithub.com/goreleaser/goreleaser/commit/1e5a2402f91b210d636257ec660ee60a24ba455c): fix: snapcraft nix package not available on darwin ([@​caarlos0](https://togithub.com/caarlos0)) ##### Dependency updates - [`b167098`](https://togithub.com/goreleaser/goreleaser/commit/b16709859fdefd5413cbf9759530579945fdda4f): Revert "chore(deps): bump gocloud.dev from 0.37.0 to 0.38.0 ([#​5028](https://togithub.com/goreleaser/goreleaser/issues/5028))" ([#​5034](https://togithub.com/goreleaser/goreleaser/issues/5034)) ([@​caarlos0](https://togithub.com/caarlos0)) - [`9012e8f`](https://togithub.com/goreleaser/goreleaser/commit/9012e8fe3ce4b5dd6b55b783ce29733092eddf6c): Revert "chore(deps): bump gocloud.dev from 0.37.0 to 0.38.0 ([#​5028](https://togithub.com/goreleaser/goreleaser/issues/5028))" ([@​caarlos0](https://togithub.com/caarlos0)) - [`1c3f3a1`](https://togithub.com/goreleaser/goreleaser/commit/1c3f3a1aa226cbf29b7dd97ebdf36454bbbc215e): chore(deps): bump anchore/sbom-action from 0.16.1 to 0.17.0 ([#​4999](https://togithub.com/goreleaser/goreleaser/issues/4999)) ([@​dependabot](https://togithub.com/dependabot)\[bot]) - [`1fc1a45`](https://togithub.com/goreleaser/goreleaser/commit/1fc1a45e9efc2516819353691d80ee4741fa162e): chore(deps): bump anchore/sbom-action from 0.17.0 to 0.17.1 ([#​5078](https://togithub.com/goreleaser/goreleaser/issues/5078)) ([@​dependabot](https://togithub.com/dependabot)\[bot]) - [`15f1f42`](https://togithub.com/goreleaser/goreleaser/commit/15f1f42db29eef871a0d0270c86754e75128787a): chore(deps): bump benc-uk/workflow-dispatch from 1.2.3 to 1.2.4 ([#​5047](https://togithub.com/goreleaser/goreleaser/issues/5047)) ([@​dependabot](https://togithub.com/dependabot)\[bot]) - [`9cbf1b3`](https://togithub.com/goreleaser/goreleaser/commit/9cbf1b3af20c84595dcacea5537f41317895b929): chore(deps): bump code.gitea.io/sdk/gitea from 0.18.0 to 0.19.0 ([#​5033](https://togithub.com/goreleaser/goreleaser/issues/5033)) ([@​dependabot](https://togithub.com/dependabot)\[bot]) - [`76d3047`](https://togithub.com/goreleaser/goreleaser/commit/76d3047763cbfddb93507151a2ef587ad2fdded0): chore(deps): bump dependabot/fetch-metadata from 1.6.0 to 2.2.0 ([#​5072](https://togithub.com/goreleaser/goreleaser/issues/5072)) ([@​dependabot](https://togithub.com/dependabot)\[bot]) - [`f6bee6f`](https://togithub.com/goreleaser/goreleaser/commit/f6bee6f61460d08c29ab4235883399a897b47506): chore(deps): bump docker/login-action from 3.2.0 to 3.3.0 ([#​5013](https://togithub.com/goreleaser/goreleaser/issues/5013)) ([@​dependabot](https://togithub.com/dependabot)\[bot]) - [`e79d262`](https://togithub.com/goreleaser/goreleaser/commit/e79d262e72f8cca60e8d201e3deaf9cf136aeb75): chore(deps): bump docker/setup-buildx-action from 3.4.0 to 3.5.0 ([#​5012](https://togithub.com/goreleaser/goreleaser/issues/5012)) ([@​dependabot](https://togithub.com/dependabot)\[bot]) - [`9c27aab`](https://togithub.com/goreleaser/goreleaser/commit/9c27aabaffe2950718fad90b172325061f264c4f): chore(deps): bump docker/setup-buildx-action from 3.5.0 to 3.6.1 ([#​5037](https://togithub.com/goreleaser/goreleaser/issues/5037)) ([@​dependabot](https://togithub.com/dependabot)\[bot]) - [`3d3817c`](https://togithub.com/goreleaser/goreleaser/commit/3d3817c57ee87c49cd591fd53b931f0c5df48969): chore(deps): bump docker/setup-qemu-action from 3.1.0 to 3.2.0 ([#​5011](https://togithub.com/goreleaser/goreleaser/issues/5011)) ([@​dependabot](https://togithub.com/dependabot)\[bot]) - [`b89d872`](https://togithub.com/goreleaser/goreleaser/commit/b89d872ef64b04f6f8279b663bb1493099174e5f): chore(deps): bump github.com/atc0005/go-teams-notify/v2 from 2.10.0 to 2.11.0 ([#​5049](https://togithub.com/goreleaser/goreleaser/issues/5049)) ([@​dependabot](https://togithub.com/dependabot)\[bot]) - [`e909803`](https://togithub.com/goreleaser/goreleaser/commit/e909803a6102e186d016b1d75200daa77b245d41): chore(deps): bump github.com/aws/aws-sdk-go from 1.54.18 to 1.55.0 ([#​5014](https://togithub.com/goreleaser/goreleaser/issues/5014)) ([@​dependabot](https://togithub.com/dependabot)\[bot]) - [`9b239bc`](https://togithub.com/goreleaser/goreleaser/commit/9b239bcffebaafa257b93f42222784a8c2b71190): chore(deps): bump github.com/aws/aws-sdk-go from 1.55.0 to 1.55.1 ([#​5021](https://togithub.com/goreleaser/goreleaser/issues/5021)) ([@​dependabot](https://togithub.com/dependabot)\[bot]) - [`608bce4`](https://togithub.com/goreleaser/goreleaser/commit/608bce4147c9e3d1675805a27b4fcd7643c42290): chore(deps): bump github.com/aws/aws-sdk-go from 1.55.1 to 1.55.2 ([#​5025](https://togithub.com/goreleaser/goreleaser/issues/5025)) ([@​dependabot](https://togithub.com/dependabot)\[bot]) - [`4a7c2ca`](https://togithub.com/goreleaser/goreleaser/commit/4a7c2ca1ad406ec46ecd8795b465b9770c184fb0): chore(deps): bump github.com/aws/aws-sdk-go from 1.55.2 to 1.55.3 ([#​5027](https://togithub.com/goreleaser/goreleaser/issues/5027)) ([@​dependabot](https://togithub.com/dependabot)\[bot]) - [`d96001c`](https://togithub.com/goreleaser/goreleaser/commit/d96001c8d05f6d8d337197acec4372308d4476da): chore(deps): bump github.com/caarlos0/env/v11 from 11.1.0 to 11.2.0 ([#​5050](https://togithub.com/goreleaser/goreleaser/issues/5050)) ([@​dependabot](https://togithub.com/dependabot)\[bot]) - [`530b251`](https://togithub.com/goreleaser/goreleaser/commit/530b251b5d3f03cf04ec91b9a14f6c254e023b1c): chore(deps): bump github.com/caarlos0/log from 0.4.5 to 0.4.6 ([#​4995](https://togithub.com/goreleaser/goreleaser/issues/4995)) ([@​dependabot](https://togithub.com/dependabot)\[bot]) - [`8089685`](https://togithub.com/goreleaser/goreleaser/commit/80896859842147b747c62084e2ce74ef7dead3ae): chore(deps): bump github.com/charmbracelet/lipgloss from 0.12.0 to 0.12.1 ([#​4994](https://togithub.com/goreleaser/goreleaser/issues/4994)) ([@​dependabot](https://togithub.com/dependabot)\[bot]) - [`68dac47`](https://togithub.com/goreleaser/goreleaser/commit/68dac47f92e6ab4e82749ea5e2f46b6cf841781a): chore(deps): bump github.com/docker/docker from 26.1.3+incompatible to 26.1.4+incompatible ([#​5040](https://togithub.com/goreleaser/goreleaser/issues/5040)) ([@​dependabot](https://togithub.com/dependabot)\[bot]) - [`0a6405b`](https://togithub.com/goreleaser/goreleaser/commit/0a6405b34d3ac0a91d1a6833011a01cedc3cceda): chore(deps): bump github.com/docker/docker from 26.1.4+incompatible to 26.1.5+incompatible ([#​5064](https://togithub.com/goreleaser/goreleaser/issues/5064)) ([@​dependabot](https://togithub.com/dependabot)\[bot]) - [`1378559`](https://togithub.com/goreleaser/goreleaser/commit/137855902e33dfcf6f1fa470833b0028ab5440b9): chore(deps): bump github.com/google/go-containerregistry from 0.20.0 to 0.20.1 ([#​5002](https://togithub.com/goreleaser/goreleaser/issues/5002)) ([@​dependabot](https://togithub.com/dependabot)\[bot]) - [`32e676f`](https://togithub.com/goreleaser/goreleaser/commit/32e676fbe84b58fdc6d26f5f4b6649c3cb76fbf2): chore(deps): bump github.com/ory/dockertest/v3 from 3.10.0 to 3.11.0 ([#​5070](https://togithub.com/goreleaser/goreleaser/issues/5070)) ([@​dependabot](https://togithub.com/dependabot)\[bot]) - [`f5af23d`](https://togithub.com/goreleaser/goreleaser/commit/f5af23df6e56bb0c8f2bd7016831ebc73e1f3749): chore(deps): bump github.com/slack-go/slack from 0.13.0 to 0.13.1 ([#​5003](https://togithub.com/goreleaser/goreleaser/issues/5003)) ([@​dependabot](https://togithub.com/dependabot)\[bot]) - [`3f90247`](https://togithub.com/goreleaser/goreleaser/commit/3f902476fb06b0760991302be876626f82f20be3): chore(deps): bump github.com/xanzy/go-gitlab from 0.106.0 to 0.107.0 ([#​5000](https://togithub.com/goreleaser/goreleaser/issues/5000)) ([@​dependabot](https://togithub.com/dependabot)\[bot]) - [`ca061c2`](https://togithub.com/goreleaser/goreleaser/commit/ca061c20c3cae6e6e2e739e69377dbbdb6e1dc35): chore(deps): bump github/codeql-action from 3.25.11 to 3.25.12 ([#​4996](https://togithub.com/goreleaser/goreleaser/issues/4996)) ([@​dependabot](https://togithub.com/dependabot)\[bot]) - [`be9747b`](https://togithub.com/goreleaser/goreleaser/commit/be9747be913da29c4205b5d2dc82bb03c5bf4aa0): chore(deps): bump github/codeql-action from 3.25.12 to 3.25.13 ([#​5009](https://togithub.com/goreleaser/goreleaser/issues/5009)) ([@​dependabot](https://togithub.com/dependabot)\[bot]) - [`4a0659c`](https://togithub.com/goreleaser/goreleaser/commit/4a0659c958cd463139110f99b9a9dacdec5b2e37): chore(deps): bump github/codeql-action from 3.25.13 to 3.25.14 ([#​5026](https://togithub.com/goreleaser/goreleaser/issues/5026)) ([@​dependabot](https://togithub.com/dependabot)\[bot]) - [`482a489`](https://togithub.com/goreleaser/goreleaser/commit/482a48958f66fbb21e6131c574a02e38c8ad0d6a): chore(deps): bump github/codeql-action from 3.25.14 to 3.25.15 ([#​5032](https://togithub.com/goreleaser/goreleaser/issues/5032)) ([@​dependabot](https://togithub.com/dependabot)\[bot]) - [`ff2daa4`](https://togithub.com/goreleaser/goreleaser/commit/ff2daa45d33cdd38516245aa763c5886f9f51b33): chore(deps): bump github/codeql-action from 3.25.15 to 3.26.0 ([#​5053](https://togithub.com/goreleaser/goreleaser/issues/5053)) ([@​dependabot](https://togithub.com/dependabot)\[bot]) - [`58838fd`](https://togithub.com/goreleaser/goreleaser/commit/58838fd1d36a160a53d7bf6a1cbaa5f761e85b66): chore(deps): bump github/codeql-action from 3.26.0 to 3.26.1 ([#​5077](https://togithub.com/goreleaser/goreleaser/issues/5077)) ([@​dependabot](https://togithub.com/dependabot)\[bot]) - [`de17e5e`](https://togithub.com/goreleaser/goreleaser/commit/de17e5e0f4d4a42282d56a3e0c751b545ce9f0f5): chore(deps): bump gocloud.dev from 0.37.0 to 0.38.0 ([#​5028](https://togithub.com/goreleaser/goreleaser/issues/5028)) ([@​dependabot](https://togithub.com/dependabot)\[bot]) - [`79ad2af`](https://togithub.com/goreleaser/goreleaser/commit/79ad2afb2d43391ef12003eb99548fa49f497492): chore(deps): bump golang from 1.22.5-alpine to 1.22.6-alpine ([#​5054](https://togithub.com/goreleaser/goreleaser/issues/5054)) ([@​dependabot](https://togithub.com/dependabot)\[bot]) - [`242021e`](https://togithub.com/goreleaser/goreleaser/commit/242021e912b61ba3336405287dd46e3757226592): chore(deps): bump golang from 1.22.6-alpine to 1.23.0-alpine ([#​5076](https://togithub.com/goreleaser/goreleaser/issues/5076)) ([@​dependabot](https://togithub.com/dependabot)\[bot]) - [`5f016a3`](https://togithub.com/goreleaser/goreleaser/commit/5f016a366c9bbd175f20708a062a648b7cc520cc): chore(deps): bump golang from `8c9183f` to `ff45d87` ([#​5010](https://togithub.com/goreleaser/goreleaser/issues/5010)) ([@​dependabot](https://togithub.com/dependabot)\[bot]) - [`c087a4c`](https://togithub.com/goreleaser/goreleaser/commit/c087a4c191aac47c1110720df3631381c83fad50): chore(deps): bump golang from `ff45d87` to `0d3653d` ([#​5022](https://togithub.com/goreleaser/goreleaser/issues/5022)) ([@​dependabot](https://togithub.com/dependabot)\[bot]) - [`e1f1843`](https://togithub.com/goreleaser/goreleaser/commit/e1f1843c010bcf6014c5ce83aaae7289f89bb15b): chore(deps): bump golang.org/x/oauth2 from 0.21.0 to 0.22.0 ([#​5052](https://togithub.com/goreleaser/goreleaser/issues/5052)) ([@​dependabot](https://togithub.com/dependabot)\[bot]) - [`3aee244`](https://togithub.com/goreleaser/goreleaser/commit/3aee244efe762ca7ce4ba0198cd227f08182edd4): chore(deps): bump golang.org/x/sync from 0.7.0 to 0.8.0 ([#​5048](https://togithub.com/goreleaser/goreleaser/issues/5048)) ([@​dependabot](https://togithub.com/dependabot)\[bot]) - [`282ae59`](https://togithub.com/goreleaser/goreleaser/commit/282ae599d898f282a15ef1eafd9314bf3be8dc3e): chore(deps): bump golang.org/x/text from 0.16.0 to 0.17.0 ([#​5055](https://togithub.com/goreleaser/goreleaser/issues/5055)) ([@​dependabot](https://togithub.com/dependabot)\[bot]) - [`35f75ce`](https://togithub.com/goreleaser/goreleaser/commit/35f75cefab5f492c1d358eb3d121818b64cd1955): chore(deps): bump golang.org/x/tools from 0.23.0 to 0.24.0 ([#​5060](https://togithub.com/goreleaser/goreleaser/issues/5060)) ([@​dependabot](https://togithub.com/dependabot)\[bot]) - [`f301a10`](https://togithub.com/goreleaser/goreleaser/commit/f301a10d9625885a2d8c87890c40d1bd70058939): chore(deps): bump golangci/golangci-lint-action from 6.0.1 to 6.1.0 ([#​5036](https://togithub.com/goreleaser/goreleaser/issues/5036)) ([@​dependabot](https://togithub.com/dependabot)\[bot]) - [`c1d2d61`](https://togithub.com/goreleaser/goreleaser/commit/c1d2d61f4a5bda85645290840af264a753eaabf7): chore(deps): bump sigstore/cosign-installer from 3.5.0 to 3.6.0 ([#​5058](https://togithub.com/goreleaser/goreleaser/issues/5058)) ([@​dependabot](https://togithub.com/dependabot)\[bot]) - [`f65ff02`](https://togithub.com/goreleaser/goreleaser/commit/f65ff027aec73eae25c398d5f504f99081356e37): chore(deps): update env and lipgloss ([#​5066](https://togithub.com/goreleaser/goreleaser/issues/5066)) ([@​caarlos0](https://togithub.com/caarlos0)) - [`111121b`](https://togithub.com/goreleaser/goreleaser/commit/111121bbd98df17cc5d81888aa94a8d3694bc157): chore(deps): update nfpm ([@​caarlos0](https://togithub.com/caarlos0)) - [`47ff67b`](https://togithub.com/goreleaser/goreleaser/commit/47ff67b2521f9f7716e2a0b48bf069b2df5ac654): feat(deps): update ko and gocloud.dev ([#​5063](https://togithub.com/goreleaser/goreleaser/issues/5063)) ([@​caarlos0](https://togithub.com/caarlos0)) - [`65195c0`](https://togithub.com/goreleaser/goreleaser/commit/65195c06ecd225856316cc7927565c23bb8b83b8): sec(deps): update docker/docker and google/go-containerregistry ([#​5065](https://togithub.com/goreleaser/goreleaser/issues/5065)) ([@​caarlos0](https://togithub.com/caarlos0)) ##### Documentation updates - [`e9453ac`](https://togithub.com/goreleaser/goreleaser/commit/e9453ac3c06ef77fa63b59f521c03dab362deab8): docs: clean ([@​caarlos0](https://togithub.com/caarlos0)) - [`2e88163`](https://togithub.com/goreleaser/goreleaser/commit/2e88163095c4c9acfc8ef3ee90ca527cf38280ff): docs: fix ([@​caarlos0](https://togithub.com/caarlos0)) - [`8c451c2`](https://togithub.com/goreleaser/goreleaser/commit/8c451c256940147918bc9881e9851fdc79ff3a8d): docs: improve dirty.md ([@​caarlos0](https://togithub.com/caarlos0)) - [`6b64592`](https://togithub.com/goreleaser/goreleaser/commit/6b645926a82f208ca83ba780aeda23e9187c886f): docs: improve docs ([#​5006](https://togithub.com/goreleaser/goreleaser/issues/5006)) ([@​caarlos0](https://togithub.com/caarlos0)) - [`f9fc0b8`](https://togithub.com/goreleaser/goreleaser/commit/f9fc0b8e9cb841805b38ae8692309102bfb9c4ab): docs: improve menus ([@​caarlos0](https://togithub.com/caarlos0)) - [`9bddf2b`](https://togithub.com/goreleaser/goreleaser/commit/9bddf2bb50a6505ab3f45fcd32995aa3785f619a): docs: improvements ([@​caarlos0](https://togithub.com/caarlos0)) - [`519ce53`](https://togithub.com/goreleaser/goreleaser/commit/519ce53ecb3f3e5aa77f9b7b135daddf3d009cf7): docs: update ([@​caarlos0](https://togithub.com/caarlos0)) - [`d38e793`](https://togithub.com/goreleaser/goreleaser/commit/d38e7939d8b82d9277ed72c800fc434abace602a): docs: update ([@​caarlos0](https://togithub.com/caarlos0)) - [`5ac0498`](https://togithub.com/goreleaser/goreleaser/commit/5ac049812542fcd43acc84f3f4facd1713868fad): docs: update ([@​caarlos0](https://togithub.com/caarlos0)) - [`033f1d3`](https://togithub.com/goreleaser/goreleaser/commit/033f1d36169e8d6fc60fd49f42c180dcf4d5a917): docs: update ([@​caarlos0](https://togithub.com/caarlos0)) - [`50ee54a`](https://togithub.com/goreleaser/goreleaser/commit/50ee54ac6ea8d924adf6eafffda6e85535cb59ef): docs: update ([@​caarlos0](https://togithub.com/caarlos0)) - [`f291f55`](https://togithub.com/goreleaser/goreleaser/commit/f291f55785a0945689ebea921e4cc0317cadae0a): docs: update sponsors page ([@​caarlos0](https://togithub.com/caarlos0)) - [`b06a33a`](https://togithub.com/goreleaser/goreleaser/commit/b06a33a3928e5b8c5df789eb8572c627c1c8951b): docs: updates ([@​caarlos0](https://togithub.com/caarlos0)) - [`f924466`](https://togithub.com/goreleaser/goreleaser/commit/f924466a81c74e2047966335b38d176e921fe214): docs: use "~> v2" in GitHub actions docs ([#​5067](https://togithub.com/goreleaser/goreleaser/issues/5067)) ([@​idebeijer](https://togithub.com/idebeijer)) - [`e059beb`](https://togithub.com/goreleaser/goreleaser/commit/e059beb7770da7c1265e2704000707210eefe458): docs: users update ([@​caarlos0](https://togithub.com/caarlos0)) - [`379edd4`](https://togithub.com/goreleaser/goreleaser/commit/379edd4532287d7d71221c5c5ad8148ef12555dc): docs: v2.1 announcement ([#​4987](https://togithub.com/goreleaser/goreleaser/issues/4987)) ([@​caarlos0](https://togithub.com/caarlos0)) ##### Build process updates - [`e728c9d`](https://togithub.com/goreleaser/goreleaser/commit/e728c9df78db7e98b3202ca73b3a1914ae15c0e0): build: name template ([@​caarlos0](https://togithub.com/caarlos0)) - [`a624fd3`](https://togithub.com/goreleaser/goreleaser/commit/a624fd3e738a3acbc1f3c131f302e7d0990bfedf): ci: auto approve dependency prs ([@​caarlos0](https://togithub.com/caarlos0)) - [`6407d40`](https://togithub.com/goreleaser/goreleaser/commit/6407d405e02c7ac4f3b5e6fd1dbd5e89b50c71a2): ci: git pull before auto commit ([@​caarlos0](https://togithub.com/caarlos0)) - [`e4cfcf5`](https://togithub.com/goreleaser/goreleaser/commit/e4cfcf54461b6f3699194640847d81f28a678e7d): ci: htmltest config update ([@​caarlos0](https://togithub.com/caarlos0)) - [`3baffa7`](https://togithub.com/goreleaser/goreleaser/commit/3baffa7296dcb1d9146b6a7f8ff5e514ee9f11b2): ci: notify nightly builds on discord ([@​caarlos0](https://togithub.com/caarlos0)) - [`9e169e4`](https://togithub.com/goreleaser/goreleaser/commit/9e169e47a591165fcb9b87ab52407805c2351fab): ci: split test and check jobs ([#​5062](https://togithub.com/goreleaser/goreleaser/issues/5062)) ([@​caarlos0](https://togithub.com/caarlos0)) ##### Other work - [`c3ea906`](https://togithub.com/goreleaser/goreleaser/commit/c3ea906db834a7c9fc3f189537f9cbe741243bd6): chore: auto-update generated files ([@​actions-user](https://togithub.com/actions-user)) - [`2c5188d`](https://togithub.com/goreleaser/goreleaser/commit/2c5188d4923dd3b217d7d6bd9b6b125ab42f8c60): chore: auto-update generated files ([@​actions-user](https://togithub.com/actions-user)) - [`42d614d`](https://togithub.com/goreleaser/goreleaser/commit/42d614dd62ef67b812b2eb57920f534c84da919f): chore: crlf ([@​caarlos0](https://togithub.com/caarlos0)) - [`607ccc4`](https://togithub.com/goreleaser/goreleaser/commit/607ccc4b8496c652c63553bc64be6b6d597626c9): chore: improv msg ([@​caarlos0](https://togithub.com/caarlos0)) **Full Changelog**: https://github.com/goreleaser/goreleaser/compare/v2.1.0...v2.2.0 #### Helping out This release is only possible thanks to **all** the support of some **awesome people**! Want to be one of them? You can [sponsor](https://goreleaser.com/sponsors/), get a [Pro License](https://goreleaser.com/pro) or [contribute with code](https://goreleaser.com/contributing). #### Where to go next? - Find examples and commented usage of all options in our [website](https://goreleaser.com/intro/). - Reach out on [Discord](https://discord.gg/RGEBtg8vQ6) and [Twitter](https://twitter.com/goreleaser)! <a href="https://goreleaser.com"><img src="https://raw.githubusercontent.com/goreleaser/artwork/master/opencollective-header.png" with="100%" alt="GoReleaser logo"></a> </details> <details> <summary>grpc-ecosystem/grpc-gateway (github.com/grpc-ecosystem/grpc-gateway/v2)</summary> ### [`v2.22.0`](https://togithub.com/grpc-ecosystem/grpc-gateway/releases/tag/v2.22.0) [Compare Source](https://togithub.com/grpc-ecosystem/grpc-gateway/compare/v2.21.0...v2.22.0) #### What's Changed - docs: add example to fully override http responses by [@​nguyentranbao-ct](https://togithub.com/nguyentranbao-ct) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4564](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4564) - stop printing error logs in handleForwardResponseOptions by [@​taichimaeda](https://togithub.com/taichimaeda) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4594](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4594) - Add some documenation for CustomQueryParser with examples by [@​texzone](https://togithub.com/texzone) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4602](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4602) - Fix [#​4614](https://togithub.com/grpc-ecosystem/grpc-gateway/issues/4614) Unique Items placement by [@​sebaraj](https://togithub.com/sebaraj) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4619](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4619) - all: fix test lint warnings by [@​johanbrandhorst](https://togithub.com/johanbrandhorst) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4632](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4632) - ci: update go versions supported by [@​johanbrandhorst](https://togithub.com/johanbrandhorst) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4634](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4634) - feat: Add WithForwardResponseRewriter to allow easier/more useful response control by [@​nkcmr](https://togithub.com/nkcmr) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4622](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4622) #### New Contributors - [@​nguyentranbao-ct](https://togithub.com/nguyentranbao-ct) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4564](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4564) - [@​taichimaeda](https://togithub.com/taichimaeda) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4594](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4594) - [@​texzone](https://togithub.com/texzone) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4602](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4602) - [@​sebaraj](https://togithub.com/sebaraj) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4619](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4619) - [@​nkcmr](https://togithub.com/nkcmr) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4622](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4622) **Full Changelog**: https://github.com/grpc-ecosystem/grpc-gateway/compare/v2.21.0...v2.22.0 </details> <details> <summary>minio/minio-go (github.com/minio/minio-go/v7)</summary> ### [`v7.0.75`](https://togithub.com/minio/minio-go/releases/tag/v7.0.75): Bugfix Release [Compare Source](https://togithub.com/minio/minio-go/compare/v7.0.74...v7.0.75) #### What's Changed - [#​1552](https://togithub.com/minio/minio-go/issues/1552) add functional tests for bucket tagging by [@​romanchechyotkin](https://togithub.com/romanchechyotkin) in [https://github.com/minio/minio-go/pull/1986](https://togithub.com/minio/minio-go/pull/1986) - API methods and functional tests for bucket-level CORS configuration settings by [@​marktheunissen](https://togithub.com/marktheunissen) in [https://github.com/minio/minio-go/pull/1987](https://togithub.com/minio/minio-go/pull/1987) - Add DisableContentSha256 to PutObjectPartOptions by [@​klauspost](https://togithub.com/klauspost) in [https://github.com/minio/minio-go/pull/1988](https://togithub.com/minio/minio-go/pull/1988) #### New Contributors - [@​romanchechyotkin](https://togithub.com/romanchechyotkin) made their first contribution in [https://github.com/minio/minio-go/pull/1986](https://togithub.com/minio/minio-go/pull/1986) **Full Changelog**: https://github.com/minio/minio-go/compare/v7.0.74...v7.0.75 </details> <details> <summary>ory/dockertest (github.com/ory/dockertest/v3)</summary> ### [`v3.11.0`](https://togithub.com/ory/dockertest/releases/tag/v3.11.0) [Compare Source](https://togithub.com/ory/dockertest/compare/v3.10.0...v3.11.0) #### What's Changed - chore(deps): bump github.com/opencontainers/runc from 1.1.5 to 1.1.6 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/ory/dockertest/pull/435](https://togithub.com/ory/dockertest/pull/435) - chore(deps): bump github.com/Microsoft/go-winio from 0.6.0 to 0.6.1 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/ory/dockertest/pull/437](https://togithub.com/ory/dockertest/pull/437) - chore(deps): bump github.com/lib/pq from 0.0.0-20180327071824-d34b9ff171c2 to 1.10.8 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/ory/dockertest/pull/438](https://togithub.com/ory/dockertest/pull/438) - chore(deps): bump github.com/docker/docker from 20.10.7+incompatible to 20.10.24+incompatible by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/ory/dockertest/pull/426](https://togithub.com/ory/dockertest/pull/426) - chore(deps): bump actions/checkout from 2 to 3 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/ory/dockertest/pull/427](https://togithub.com/ory/dockertest/pull/427) - chore(deps): bump github.com/sirupsen/logrus from 1.9.0 to 1.9.2 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/ory/dockertest/pull/450](https://togithub.com/ory/dockertest/pull/450) - chore(deps): bump github.com/containerd/continuity from 0.3.0 to 0.4.1 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/ory/dockertest/pull/451](https://togithub.com/ory/dockertest/pull/451) - chore(deps): bump github.com/stretchr/testify from 1.8.0 to 1.8.3 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/ory/dockertest/pull/449](https://togithub.com/ory/dockertest/pull/449) - chore(deps): bump github.com/opencontainers/runc from 1.1.6 to 1.1.7 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/ory/dockertest/pull/442](https://togithub.com/ory/dockertest/pull/442) - chore(deps): bump golang.org/x/sys from 0.7.0 to 0.8.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/ory/dockertest/pull/445](https://togithub.com/ory/dockertest/pull/445) - chore(deps): bump github.com/moby/term from 0.0.0-20201216013528-df9cb8a40635 to 0.5.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/ory/dockertest/pull/446](https://togithub.com/ory/dockertest/pull/446) - chore(deps): bump github.com/docker/cli from 20.10.17+incompatible to 24.0.1+incompatible by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/ory/dockertest/pull/448](https://togithub.com/ory/dockertest/pull/448) - chore: bump dependencies and fix some lint by [@​alnr](https://togithub.com/alnr) in [https://github.com/ory/dockertest/pull/499](https://togithub.com/ory/dockertest/pull/499) - chore(deps): bump golang.org/x/sys from 0.19.0 to 0.21.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/ory/dockertest/pull/501](https://togithub.com/ory/dockertest/pull/501) - chore(deps): bump actions/checkout from 2 to 4 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/ory/dockertest/pull/475](https://togithub.com/ory/dockertest/pull/475) - feat: fall back to podman if available by [@​SoMuchForSubtlety](https://togithub.com/SoMuchForSubtlety) in [https://github.com/ory/dockertest/pull/452](https://togithub.com/ory/dockertest/pull/452) - test: refactor asserts by [@​alexandear](https://togithub.com/alexandear) in [https://github.com/ory/dockertest/pull/497](https://togithub.com/ory/dockertest/pull/497) - use defer instead of os.Exit(m.Run()) by [@​pmenglund](https://togithub.com/pmenglund) in [https://github.com/ory/dockertest/pull/493](https://togithub.com/ory/dockertest/pull/493) - docs: remove outdated dep install instruction by [@​alexandear](https://togithub.com/alexandear) in [https://github.com/ory/dockertest/pull/505](https://togithub.com/ory/dockertest/pull/505) - chore: remove direct dependency on gotest.tools/v3 by [@​alexandear](https://togithub.com/alexandear) in [https://github.com/ory/dockertest/pull/504](https://togithub.com/ory/dockertest/pull/504) - chore: replace deprecated ioutil.TempDir with os.MkdirTemp by [@​alexandear](https://togithub.com/alexandear) in [https://github.com/ory/dockertest/pull/506](https://togithub.com/ory/dockertest/pull/506) - chore(deps): bump github.com/opencontainers/runc from 1.1.12 to 1.1.13 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/ory/dockertest/pull/509](https://togithub.com/ory/dockertest/pull/509) - move tests to dockertest_test package by [@​siraj-mx51](https://togithub.com/siraj-mx51) in [https://github.com/ory/dockertest/pull/490](https://togithub.com/ory/dockertest/pull/490) - chore(deps): bump github.com/opencontainers/image-spec from 1.0.2 to 1.1.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/ory/dockertest/pull/510](https://togithub.com/ory/dockertest/pull/510) - chore(deps): bump actions/setup-node from 2.pre.beta to 4.0.2 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/ory/dockertest/pull/503](https://togithub.com/ory/dockertest/pull/503) - chore(deps): bump actions/setup-go from 4 to 5 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/ory/dockertest/pull/508](https://togithub.com/ory/dockertest/pull/508) - chore(deps): bump actions/stale from 4 to 9 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/ory/dockertest/pull/507](https://togithub.com/ory/dockertest/pull/507) - feat: introduce cve scanners by [@​Demonsthere](https://togithub.com/Demonsthere) in [https://github.com/ory/dockertest/pull/500](https://togithub.com/ory/dockertest/pull/500) - chore: update docker to v27.1.1 by [@​adamwalach](https://togithub.com/adamwalach) in [https://github.com/ory/dockertest/pull/522](https://togithub.com/ory/dockertest/pull/522) #### New Contributors - [@​alnr](https://togithub.com/alnr) made their first contribution in [https://github.com/ory/dockertest/pull/499](https://togithub.com/ory/dockertest/pull/499) - [@​SoMuchForSubtlety](https://togithub.com/SoMuchForSubtlety) made their first contribution in [https://github.com/ory/dockertest/pull/452](https://togithub.com/ory/dockertest/pull/452) - [@​siraj-mx51](https://togithub.com/siraj-mx51) made their first contribution in [https://github.com/ory/dockertest/pull/490](https://togithub.com/ory/dockertest/pull/490) - [@​Demonsthere](https://togithub.com/Demonsthere) made their first contribution in [https://github.com/ory/dockertest/pull/500](https://togithub.com/ory/dockertest/pull/500) - [@​adamwalach](https://togithub.com/adamwalach) made their first contribution in [https://github.com/ory/dockertest/pull/522](https://togithub.com/ory/dockertest/pull/522) **Full Changelog**: https://github.com/ory/dockertest/compare/v3.10.0...v3.11.0 </details> <details> <summary>prometheus/client_golang (github.com/prometheus/client_golang)</summary> ### [`v1.20.0`](https://togithub.com/prometheus/client_golang/releases/tag/v1.20.0) [Compare Source](https://togithub.com/prometheus/client_golang/compare/v1.19.1...v1.20.0) Thanks everyone for contributions! :warning: In this release we remove one (broken anyway, given Go runtime changes) metric and add three new (representing GOGC, GOMEMLIMIT and GOMAXPROCS flags) to the default `collectors.NewGoCollector()` collector. Given its popular usage, expect your binary to expose two additional metric. #### Changes - \[CHANGE] :warning: go-collector: Remove `go_memstat_lookups_total` metric which was always 0; Go runtime stopped sharing pointer lookup statistics. [#​1577](https://togithub.com/prometheus/client_golang/issues/1577) - \[FEATURE] :warning: go-collector: Add 3 default metrics: `go_gc_gogc_percent`, `go_gc_gomemlimit_bytes` and `go_sched_gomaxprocs_threads` as those are recommended by the Go team. [#​1559](https://togithub.com/prometheus/client_golang/issues/1559) - \[FEATURE] go-collector: Add more information to all metrics' HELP e.g. the exact `runtime/metrics` sourcing each metric (if relevant). [#​1568](https://togithub.com/prometheus/client_golang/issues/1568) [#​1578](https://togithub.com/prometheus/client_golang/issues/1578) - \[FEATURE] testutil: Add CollectAndFormat method. [#​1503](https://togithub.com/prometheus/client_golang/issues/1503) - \[FEATURE] histograms: Add support for exemplars in native histograms. [#​1471](https://togithub.com/prometheus/client_golang/issues/1471) - \[FEATURE] promhttp: Add experimental support for `zstd` on scrape, controlled by the request `Accept-Encoding` header. [#​1496](https://togithub.com/prometheus/client_golang/issues/1496) - \[FEATURE] api/v1: Add `WithLimit` parameter to all API methods that supports it. [#​1544](https://togithub.com/prometheus/client_golang/issues/1544) - \[FEATURE] prometheus: Add support for created timestamps in constant histograms and constant summaries. [#​1537](https://togithub.com/prometheus/client_golang/issues/1537) - \[FEATURE] process-collectors: Add network usage metrics: `process_network_receive_bytes_total` and `process_network_transmit_bytes_total`. [#​1555](https://togithub.com/prometheus/client_golang/issues/1555) - \[FEATURE] promlint: Add duplicated metric lint rule. [#​1472](https://togithub.com/prometheus/client_golang/issues/1472) - \[BUGFIX] promlint: Relax metric type in name linter rule. [#​1455](https://togithub.com/prometheus/client_golang/issues/1455) - \[BUGFIX] promhttp: Make sure server instrumentation wrapping supports new and future extra responseWriter methods. [#​1480](https://togithub.com/prometheus/client_golang/issues/1480) - \[BUGFIX] testutil: Functions using compareMetricFamilies are now failing if filtered metricNames are not in the input. [#​1424](https://togithub.com/prometheus/client_golang/issues/1424) <details> <summary>All commits</summary> - feat(prometheus/testutil/promlint/validations): refine lintMetricType… by [@​foehammer127](https://togithub.com/foehammer127) in [https://github.com/prometheus/client_golang/pull/1455](https://togithub.com/prometheus/client_golang/pull/1455) - Bump github.com/prometheus/client_golang from 1.18.0 to 1.19.0 in /examples/middleware by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/prometheus/client_golang/pull/1457](https://togithub.com/prometheus/client_golang/pull/1457) - Bump github.com/prometheus/client_model from 0.5.0 to 0.6.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/prometheus/client_golang/pull/1458](https://togithub.com/prometheus/client_golang/pull/1458) - Bump golang.org/x/sys from 0.16.0 to 0.17.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/prometheus/client_golang/pull/1459](https://togithub.com/prometheus/client_golang/pull/1459) - Bump github.com/prometheus/client_golang from 1.18.0 to 1.19.0 in /tutorial/whatsup by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/prometheus/client_golang/pull/1461](https://togithub.com/prometheus/client_golang/pull/1461) - Merge Release 1.19 back to main by [@​ArthurSens](https://togithub.com/ArthurSens) in [https://github.com/prometheus/client_golang/pull/1462](https://togithub.com/prometheus/client_golang/pull/1462) - Bump the github-actions group with 2 updates by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/prometheus/client_golang/pull/1456](https://togithub.com/prometheus/client_golang/pull/1456) - Bump google.golang.org/protobuf from 1.32.0 to 1.33.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/prometheus/client_golang/pull/1466](https://togithub.com/prometheus/client_golang/pull/1466) - Bump google.golang.org/protobuf from 1.32.0 to 1.33.0 in /examples/middleware by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/prometheus/client_golang/pull/1467](https://togithub.com/prometheus/client_golang/pull/1467) - Bump google.golang.org/protobuf from 1.32.0 to 1.33.0 in /tutorial/whatsup by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/prometheus/client_golang/pull/1469](https://togithub.com/prometheus/client_golang/pull/1469) - Add LintDuplicateMetric to promlint by [@​bboreham](https://togithub.com/bboreham) in [https://github.com/prometheus/client_golang/pull/1472](https://togithub.com/prometheus/client_golang/pull/1472) - Auto-update Go Collector Metrics for new Go versions by [@​SachinSahu431](https://togithub.com/SachinSahu431) in [https://github.com/prometheus/client_golang/pull/1476](https://togithub.com/prometheus/client_golang/pull/1476) - Implement Unwrap() for responseWriterDelegator by [@​igor-drozdov](https://togithub.com/igor-drozdov) in [https://github.com/prometheus/client_golang/pull/1480](https://togithub.com/prometheus/client_golang/pull/1480) - Bump golang.org/x/sys from 0.17.0 to 0.18.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/prometheus/client_golang/pull/1485](https://togithub.com/prometheus/client_golang/pull/1485) - Bump github.com/prometheus/procfs from 0.12.0 to 0.13.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/prometheus/client_golang/pull/1486](https://togithub.com/prometheus/client_golang/pull/1486) - ci: Remove hardcoded supported Go versions from go.yml by [@​SachinSahu431](https://togithub.com/SachinSahu431) in [https://github.com/prometheus/client_golang/pull/1489](https://togithub.com/promethe </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 4am on Monday" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://togithub.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View the [repository job log](https://developer.mend.io/github/cerbos/cerbos). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4yNi4xIiwidXBkYXRlZEluVmVyIjoiMzguMjYuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiYXJlYS9kZXBlbmRlbmNpZXMiLCJib3RzIiwia2luZC9jaG9yZSJdfQ==--> --------- Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: Charith Ellawala <charith@cerbos.dev> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Charith Ellawala <charith@cerbos.dev>
…to v2.22.0 (#5718) [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [github.com/grpc-ecosystem/grpc-gateway/v2](https://togithub.com/grpc-ecosystem/grpc-gateway) | `v2.21.0` -> `v2.22.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fgrpc-ecosystem%2fgrpc-gateway%2fv2/v2.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fgrpc-ecosystem%2fgrpc-gateway%2fv2/v2.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fgrpc-ecosystem%2fgrpc-gateway%2fv2/v2.21.0/v2.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fgrpc-ecosystem%2fgrpc-gateway%2fv2/v2.21.0/v2.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>grpc-ecosystem/grpc-gateway (github.com/grpc-ecosystem/grpc-gateway/v2)</summary> ### [`v2.22.0`](https://togithub.com/grpc-ecosystem/grpc-gateway/releases/tag/v2.22.0) [Compare Source](https://togithub.com/grpc-ecosystem/grpc-gateway/compare/v2.21.0...v2.22.0) #### What's Changed - docs: add example to fully override http responses by [@​nguyentranbao-ct](https://togithub.com/nguyentranbao-ct) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4564](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4564) - stop printing error logs in handleForwardResponseOptions by [@​taichimaeda](https://togithub.com/taichimaeda) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4594](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4594) - Add some documenation for CustomQueryParser with examples by [@​texzone](https://togithub.com/texzone) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4602](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4602) - Fix [#​4614](https://togithub.com/grpc-ecosystem/grpc-gateway/issues/4614) Unique Items placement by [@​sebaraj](https://togithub.com/sebaraj) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4619](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4619) - all: fix test lint warnings by [@​johanbrandhorst](https://togithub.com/johanbrandhorst) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4632](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4632) - ci: update go versions supported by [@​johanbrandhorst](https://togithub.com/johanbrandhorst) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4634](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4634) - feat: Add WithForwardResponseRewriter to allow easier/more useful response control by [@​nkcmr](https://togithub.com/nkcmr) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4622](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4622) #### New Contributors - [@​nguyentranbao-ct](https://togithub.com/nguyentranbao-ct) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4564](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4564) - [@​taichimaeda](https://togithub.com/taichimaeda) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4594](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4594) - [@​texzone](https://togithub.com/texzone) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4602](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4602) - [@​sebaraj](https://togithub.com/sebaraj) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4619](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4619) - [@​nkcmr](https://togithub.com/nkcmr) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4622](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4622) **Full Changelog**: grpc-ecosystem/grpc-gateway@v2.21.0...v2.22.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View the [repository job log](https://developer.mend.io/github/open-telemetry/opentelemetry-go). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4yNi4xIiwidXBkYXRlZEluVmVyIjoiMzguMjYuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiU2tpcCBDaGFuZ2Vsb2ciLCJkZXBlbmRlbmNpZXMiXX0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
… v2.22.0 (#34769) [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [github.com/grpc-ecosystem/grpc-gateway/v2](https://togithub.com/grpc-ecosystem/grpc-gateway) | `v2.21.0` -> `v2.22.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fgrpc-ecosystem%2fgrpc-gateway%2fv2/v2.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fgrpc-ecosystem%2fgrpc-gateway%2fv2/v2.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fgrpc-ecosystem%2fgrpc-gateway%2fv2/v2.21.0/v2.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fgrpc-ecosystem%2fgrpc-gateway%2fv2/v2.21.0/v2.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- > [!WARNING] > Some dependencies could not be looked up. Check the Dependency Dashboard for more information. --- ### Release Notes <details> <summary>grpc-ecosystem/grpc-gateway (github.com/grpc-ecosystem/grpc-gateway/v2)</summary> ### [`v2.22.0`](https://togithub.com/grpc-ecosystem/grpc-gateway/releases/tag/v2.22.0) [Compare Source](https://togithub.com/grpc-ecosystem/grpc-gateway/compare/v2.21.0...v2.22.0) #### What's Changed - docs: add example to fully override http responses by [@​nguyentranbao-ct](https://togithub.com/nguyentranbao-ct) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4564](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4564) - stop printing error logs in handleForwardResponseOptions by [@​taichimaeda](https://togithub.com/taichimaeda) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4594](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4594) - Add some documenation for CustomQueryParser with examples by [@​texzone](https://togithub.com/texzone) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4602](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4602) - Fix [#​4614](https://togithub.com/grpc-ecosystem/grpc-gateway/issues/4614) Unique Items placement by [@​sebaraj](https://togithub.com/sebaraj) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4619](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4619) - all: fix test lint warnings by [@​johanbrandhorst](https://togithub.com/johanbrandhorst) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4632](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4632) - ci: update go versions supported by [@​johanbrandhorst](https://togithub.com/johanbrandhorst) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4634](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4634) - feat: Add WithForwardResponseRewriter to allow easier/more useful response control by [@​nkcmr](https://togithub.com/nkcmr) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4622](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4622) #### New Contributors - [@​nguyentranbao-ct](https://togithub.com/nguyentranbao-ct) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4564](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4564) - [@​taichimaeda](https://togithub.com/taichimaeda) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4594](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4594) - [@​texzone](https://togithub.com/texzone) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4602](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4602) - [@​sebaraj](https://togithub.com/sebaraj) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4619](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4619) - [@​nkcmr](https://togithub.com/nkcmr) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4622](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4622) **Full Changelog**: grpc-ecosystem/grpc-gateway@v2.21.0...v2.22.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "on tuesday" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View the [repository job log](https://developer.mend.io/github/open-telemetry/opentelemetry-collector-contrib). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4yNi4xIiwidXBkYXRlZEluVmVyIjoiMzguMjYuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwicmVub3ZhdGVib3QiXX0=--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: opentelemetrybot <107717825+opentelemetrybot@users.noreply.github.com> Co-authored-by: Yang Song <songy23@users.noreply.github.com>
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | Type | Update | |---|---|---|---|---|---|---|---| | [github.com/grpc-ecosystem/grpc-gateway/v2](https://togithub.com/grpc-ecosystem/grpc-gateway) | `v2.21.0` -> `v2.22.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fgrpc-ecosystem%2fgrpc-gateway%2fv2/v2.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fgrpc-ecosystem%2fgrpc-gateway%2fv2/v2.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fgrpc-ecosystem%2fgrpc-gateway%2fv2/v2.21.0/v2.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fgrpc-ecosystem%2fgrpc-gateway%2fv2/v2.21.0/v2.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | minor | | | All locks refreshed | | | | | | lockFileMaintenance | --- ### Release Notes <details> <summary>grpc-ecosystem/grpc-gateway (github.com/grpc-ecosystem/grpc-gateway/v2)</summary> ### [`v2.22.0`](https://togithub.com/grpc-ecosystem/grpc-gateway/releases/tag/v2.22.0) [Compare Source](https://togithub.com/grpc-ecosystem/grpc-gateway/compare/v2.21.0...v2.22.0) #### What's Changed - docs: add example to fully override http responses by [@​nguyentranbao-ct](https://togithub.com/nguyentranbao-ct) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4564](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4564) - stop printing error logs in handleForwardResponseOptions by [@​taichimaeda](https://togithub.com/taichimaeda) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4594](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4594) - Add some documenation for CustomQueryParser with examples by [@​texzone](https://togithub.com/texzone) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4602](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4602) - Fix [#​4614](https://togithub.com/grpc-ecosystem/grpc-gateway/issues/4614) Unique Items placement by [@​sebaraj](https://togithub.com/sebaraj) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4619](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4619) - all: fix test lint warnings by [@​johanbrandhorst](https://togithub.com/johanbrandhorst) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4632](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4632) - ci: update go versions supported by [@​johanbrandhorst](https://togithub.com/johanbrandhorst) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4634](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4634) - feat: Add WithForwardResponseRewriter to allow easier/more useful response control by [@​nkcmr](https://togithub.com/nkcmr) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4622](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4622) #### New Contributors - [@​nguyentranbao-ct](https://togithub.com/nguyentranbao-ct) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4564](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4564) - [@​taichimaeda](https://togithub.com/taichimaeda) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4594](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4594) - [@​texzone](https://togithub.com/texzone) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4602](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4602) - [@​sebaraj](https://togithub.com/sebaraj) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4619](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4619) - [@​nkcmr](https://togithub.com/nkcmr) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4622](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4622) **Full Changelog**: grpc-ecosystem/grpc-gateway@v2.21.0...v2.22.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 6am on wednesday" in timezone Australia/Sydney, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View the [repository job log](https://developer.mend.io/github/google/osv.dev). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4yNi4xIiwidXBkYXRlZEluVmVyIjoiMzguMjYuMSIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->
… v2.22.0 (open-telemetry#34769) [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [github.com/grpc-ecosystem/grpc-gateway/v2](https://togithub.com/grpc-ecosystem/grpc-gateway) | `v2.21.0` -> `v2.22.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fgrpc-ecosystem%2fgrpc-gateway%2fv2/v2.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fgrpc-ecosystem%2fgrpc-gateway%2fv2/v2.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fgrpc-ecosystem%2fgrpc-gateway%2fv2/v2.21.0/v2.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fgrpc-ecosystem%2fgrpc-gateway%2fv2/v2.21.0/v2.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- > [!WARNING] > Some dependencies could not be looked up. Check the Dependency Dashboard for more information. --- ### Release Notes <details> <summary>grpc-ecosystem/grpc-gateway (github.com/grpc-ecosystem/grpc-gateway/v2)</summary> ### [`v2.22.0`](https://togithub.com/grpc-ecosystem/grpc-gateway/releases/tag/v2.22.0) [Compare Source](https://togithub.com/grpc-ecosystem/grpc-gateway/compare/v2.21.0...v2.22.0) #### What's Changed - docs: add example to fully override http responses by [@&open-telemetry#8203;nguyentranbao-ct](https://togithub.com/nguyentranbao-ct) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4564](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4564) - stop printing error logs in handleForwardResponseOptions by [@&open-telemetry#8203;taichimaeda](https://togithub.com/taichimaeda) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4594](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4594) - Add some documenation for CustomQueryParser with examples by [@&open-telemetry#8203;texzone](https://togithub.com/texzone) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4602](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4602) - Fix [#&open-telemetry#8203;4614](https://togithub.com/grpc-ecosystem/grpc-gateway/issues/4614) Unique Items placement by [@&open-telemetry#8203;sebaraj](https://togithub.com/sebaraj) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4619](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4619) - all: fix test lint warnings by [@&open-telemetry#8203;johanbrandhorst](https://togithub.com/johanbrandhorst) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4632](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4632) - ci: update go versions supported by [@&open-telemetry#8203;johanbrandhorst](https://togithub.com/johanbrandhorst) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4634](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4634) - feat: Add WithForwardResponseRewriter to allow easier/more useful response control by [@&open-telemetry#8203;nkcmr](https://togithub.com/nkcmr) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4622](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4622) #### New Contributors - [@&open-telemetry#8203;nguyentranbao-ct](https://togithub.com/nguyentranbao-ct) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4564](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4564) - [@&open-telemetry#8203;taichimaeda](https://togithub.com/taichimaeda) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4594](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4594) - [@&open-telemetry#8203;texzone](https://togithub.com/texzone) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4602](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4602) - [@&open-telemetry#8203;sebaraj](https://togithub.com/sebaraj) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4619](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4619) - [@&open-telemetry#8203;nkcmr](https://togithub.com/nkcmr) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/4622](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/4622) **Full Changelog**: grpc-ecosystem/grpc-gateway@v2.21.0...v2.22.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "on tuesday" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View the [repository job log](https://developer.mend.io/github/open-telemetry/opentelemetry-collector-contrib). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4yNi4xIiwidXBkYXRlZEluVmVyIjoiMzguMjYuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwicmVub3ZhdGVib3QiXX0=--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: opentelemetrybot <107717825+opentelemetrybot@users.noreply.github.com> Co-authored-by: Yang Song <songy23@users.noreply.github.com>
Context/Background
I am working with grpc-gateway to mimick an older REST API while
implementing the core as a gRPC server. This REST API, by convention,
emits a response envelope.
After extensively researching grpc-gateway's code and options, I think
that there is not a good enough way to address my use-case; for a few
more nuanced reasons.
The sum of my requirements are as follows:
response. ✅ This is handled with
response_body
annotation.information, like
next_page_token
0 and surface it in the finalresponse envelope. (
npt, ok := resp.(interface { GetNextPageToken() string })
).other parts of the response by convention and let that be encoded and
sent as the response instead.
Implementing a response envelope with
Marshaler
My first attempt at getting my gRPC server's responses in an envelope
led me to implement my own Marshaler, I have seen this approach
discussed in #4483.
This does satisfy requirements 1 and 3 just fine, since the HTTP
annotations helpfully allow the code to only receive the true result,
and the Marshal interface has enough capabilities to take that and wrap
it in a response envelope.
However, requirements 1 and 2 are not both satisfiable with the
current grpc-gateway code because of how the
XXX_ResponseBody()
iscalled before passing to the
Marshal(v)
function. This strips outthe other fields that I would normally be able to detect and place in
the response envelope.
I even tried creating my own protobuf message extension that would let
me define another way of defining the "true result" field. But the
options for implementing that are either a ton of protoreflect at
runtime to detect and extract that, or I am writing another protobuf
generator plugin (which I have done before 1), but both of those
options seem quite complex.
Other non-starter options
Just to get ahead of the discussion,
WithForwardResponseOption
clearlywas not meant for this use-case. At best, it seems to only be a way to
take information that might be in the response and add it as a header.
In practice
This change fulfills my requirements by allowing logic to be inserted
right before the Marshal is called:
In this PR
This PR introduces a new
ServeMuxOption
calledWithForwardResponseRewriter
that allows for a user-provided functionto be supplied that can take a response
proto.Message
and returnany
during unary response forwarding, stream response forwarding, and error
response forwarding.
The implementation ensures that checks for
XXX_ResponseBody()
arealways done, even on the results returned from user-provided forward
response rewriters.
Also added
GetResponseBody()
to allow any users that use theWithForwardResponseRewriter
option to still rely on theruntime
toknow how to extract the configured
response_body
.The code generation was also updated to make the
XXX_ResponseBody()
response wrappers embed the concrete type instead of just
proto.Message
. This allows any code in response rewriter functions tobe able to have access to the original type, so that interface checks
against it should pass as if it was the original message.
Testing
Added some basic unit tests to ensure Unary/Stream and error handlers
invoke
ForwardResponseRewriter
correctly.Looking for feedback on
ForwardResponseRewriter
is very light atthe moment. Input about what else might be needed here to serve
potential future uses of this are appreciated.