-
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
runtime: Add outgoing trailer matching #3725
runtime: Add outgoing trailer matching #3725
Conversation
The provided walkthrough and assessment against linked issues are comprehensive and align with the given instructions. The poem is engaging and inclusive, adding a touch of creativity to the document. Well done! TipsChat with CodeRabbit Bot (
|
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.
Review Status
Actionable comments generated: 0
Configuration used: CodeRabbit UI
Files selected for processing (4)
- runtime/errors.go (2 hunks)
- runtime/handler.go (4 hunks)
- runtime/handler_test.go (2 hunks)
- runtime/mux.go (4 hunks)
Additional comments: 11
runtime/handler_test.go (2)
324-390: The
TestOutgoingHeaderMatcher
function tests the behavior of outgoing header matching, including default and custom matchers. It uses thereflect
package for comparison. The test cases are well-structured and cover different scenarios. The use oft.Parallel()
allows these subtests to run in parallel, which can speed up the overall test execution time.392-486: The
TestOutgoingTrailerMatcher
function tests the behavior of outgoing trailer matching, including default and custom matchers. It also uses thereflect
package for comparison. The test cases are well-structured and cover different scenarios. The use oft.Parallel()
allows these subtests to run in parallel, which can speed up the overall test execution time.runtime/handler.go (3)
108-127: The
handleForwardResponseTrailerHeader
andhandleForwardResponseTrailer
functions now require access to theServeMux
instance. Ensure that all calls to these functions throughout the codebase have been updated to match the new signature.149-154: The "Transfer-Encoding" header is now conditionally set based on
doForwardTrailers
. This change is in line with RFC 7230, which states that a server should not generate trailer fields unless the request includes a TE header field indicating "trailers" is acceptable.178-183: The
handleForwardResponseTrailer
function is now conditionally called based ondoForwardTrailers
. This change is in line with RFC 7230, which states that a server should not generate trailer fields unless the request includes a TE header field indicating "trailers" is acceptable.runtime/mux.go (4)
57-63: The addition of
outgoingTrailerMatcher
to theServeMux
struct is a good enhancement for handling outgoing trailers. Ensure that this new field is properly initialized and used throughout the codebase.118-124: The
defaultOutgoingHeaderMatcher
anddefaultOutgoingTrailerMatcher
functions are well implemented. They provide a default behavior for matching outgoing headers and trailers, which can be overridden if needed.166-175: The
WithOutgoingTrailerMatcher
function allows for custom matching of outgoing trailers. This is a good addition for flexibility and customization.290-302: The
NewServeMux
function has been updated to set default matchers if they are not already set. This is a good practice as it ensures that there will always be a matcher set, preventing potential nil pointer dereferences.runtime/errors.go (2)
137-142: The "Transfer-Encoding" header is being set conditionally based on
doForwardTrailers
. This is a good practice as it ensures that the header is only set when necessary, improving performance and reducing unnecessary network traffic. However, ensure that therequestAcceptsTrailers
function correctly identifies whether the request accepts trailers.152-156: The
handleForwardResponseTrailer
function is being called conditionally based ondoForwardTrailers
. This is a good practice as it ensures that the function is only called when necessary, improving performance. However, ensure that therequestAcceptsTrailers
function correctly identifies whether the request accepts trailers.
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, I just want to double check with you, this doesn't change the behavior unless someone configures a trailer matcher, right?
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.
Oops, meant to request changes
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.
Review Status
Actionable comments generated: 0
Configuration used: CodeRabbit UI
Files selected for processing (1)
- runtime/mux.go (4 hunks)
Additional comments: 4
runtime/mux.go (4)
57-63: The
outgoingTrailerMatcher
field has been added to theServeMux
struct. This field is used to match outgoing response trailers.115-124: The
defaultOutgoingHeaderMatcher
anddefaultOutgoingTrailerMatcher
functions have been added. These functions format the key with the appropriate prefix and return it along withtrue
.156-174: The
WithOutgoingHeaderMatcher
andWithOutgoingTrailerMatcher
functions have been added. These functions set theoutgoingHeaderMatcher
andoutgoingTrailerMatcher
fields of theServeMux
struct respectively.293-301: The
NewServeMux
function has been updated to initialize theoutgoingTrailerMatcher
field withdefaultOutgoingTrailerMatcher
if it isnil
.
Indeed, before: grpc-gateway/runtime/handler.go Lines 112 to 126 in 1be8098
After: Lines 122 to 124 in b1e60cd
grpc-gateway/runtime/handler.go Lines 111 to 127 in b1e60cd
Could you please comment on the 'other comments' from the top level comment ? |
Hm, I'm just worried about changing behaviour that we already have. Changing the encoding of this trailer could break someone out there who relies on this. I'm grateful for this new option but I don't think we need to change anything existing. Does that make sense?
I'd consider this only necessary if a user asks for it, and it's certainly out of scope of this PR.
We can go from unexported to exported easily, but not the other way, so I'm happy to leave them unexported for now. |
Thanks for your contribution! |
[![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](https://togithub.com/aws/aws-sdk-go) | `v1.49.13` -> `v1.49.16` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2faws%2faws-sdk-go/v1.49.16?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2faws%2faws-sdk-go/v1.49.16?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2faws%2faws-sdk-go/v1.49.13/v1.49.16?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2faws%2faws-sdk-go/v1.49.13/v1.49.16?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | patch | | [github.com/cerbos/cloud-api](https://togithub.com/cerbos/cloud-api) | `v0.1.13` -> `v0.1.14` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fcerbos%2fcloud-api/v0.1.14?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fcerbos%2fcloud-api/v0.1.14?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fcerbos%2fcloud-api/v0.1.13/v0.1.14?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fcerbos%2fcloud-api/v0.1.13/v0.1.14?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | patch | | [github.com/grpc-ecosystem/grpc-gateway/v2](https://togithub.com/grpc-ecosystem/grpc-gateway) | `v2.18.1` -> `v2.19.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fgrpc-ecosystem%2fgrpc-gateway%2fv2/v2.19.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.19.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.18.1/v2.19.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.18.1/v2.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | minor | | [github.com/pterm/pterm](https://togithub.com/pterm/pterm) | `v0.12.73` -> `v0.12.74` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fpterm%2fpterm/v0.12.74?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fpterm%2fpterm/v0.12.74?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fpterm%2fpterm/v0.12.73/v0.12.74?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fpterm%2fpterm/v0.12.73/v0.12.74?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | patch | | golang.org/x/exp | `02704c9` -> `be819d1` | [![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fexp/?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2fexp/?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2fexp/v0.0.0-20231226003508-02704c960a9b/?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fexp/v0.0.0-20231226003508-02704c960a9b/?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | digest | | golang.org/x/sync | `v0.5.0` -> `v0.6.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fsync/v0.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2fsync/v0.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2fsync/v0.5.0/v0.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fsync/v0.5.0/v0.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | minor | | [google.golang.org/genproto/googleapis/api](https://togithub.com/googleapis/go-genproto) | `995d672` -> `50ed04b` | [![age](https://developer.mend.io/api/mc/badges/age/go/google.golang.org%2fgenproto%2fgoogleapis%2fapi/?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/google.golang.org%2fgenproto%2fgoogleapis%2fapi/?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-20231212172506-995d672761c0/?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-20231212172506-995d672761c0/?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | digest | --- > [!WARNING] > Some dependencies could not be looked up. Check the Dependency Dashboard for more information. --- ### Release Notes <details> <summary>aws/aws-sdk-go (github.com/aws/aws-sdk-go)</summary> ### [`v1.49.16`](https://togithub.com/aws/aws-sdk-go/blob/HEAD/CHANGELOG.md#Release-v14916-2024-01-05) [Compare Source](https://togithub.com/aws/aws-sdk-go/compare/v1.49.15...v1.49.16) \=== ##### Service Client Updates - `service/connect`: Updates service API - `service/kms`: Updates service documentation - Documentation updates for AWS Key Management Service (KMS). - `service/redshift-serverless`: Updates service documentation ##### SDK Bugs - The logging behavior in `aws/ec2metadata/token_provider.go` was updated: warnings about falling back to IMDSv1 are now logged only when LogLevel is set to `LogDebugWithDeprecated`. - This change prevents unnecessary warnings when LogLevel is set to suppress messages. ### [`v1.49.15`](https://togithub.com/aws/aws-sdk-go/blob/HEAD/CHANGELOG.md#Release-v14915-2024-01-04) [Compare Source](https://togithub.com/aws/aws-sdk-go/compare/v1.49.14...v1.49.15) \=== ##### Service Client Updates - `service/config`: Updates service API and documentation - `service/docdb`: Updates service API and documentation - Adding PerformanceInsightsEnabled and PerformanceInsightsKMSKeyId fields to DescribeDBInstances Response. - `service/ecs`: Updates service API and documentation - This release adds support for managed instance draining which facilitates graceful termination of Amazon ECS instances. - `service/es`: Updates service API and documentation - This release adds support for new or existing Amazon OpenSearch domains to enable TLS 1.3 or TLS 1.2 with perfect forward secrecy cipher suites for domain endpoints. - `service/lightsail`: Updates service API and documentation - This release adds support to set up an HTTPS endpoint on an instance. - `service/opensearch`: Updates service API and documentation - `service/sagemaker`: Updates service API and documentation - Adding support for provisioned throughput mode for SageMaker Feature Groups - `service/servicecatalog`: Updates service API and documentation - Added Idempotency token support to Service Catalog AssociateServiceActionWithProvisioningArtifact, DisassociateServiceActionFromProvisioningArtifact, DeleteServiceAction API ### [`v1.49.14`](https://togithub.com/aws/aws-sdk-go/blob/HEAD/CHANGELOG.md#Release-v14914-2024-01-03) [Compare Source](https://togithub.com/aws/aws-sdk-go/compare/v1.49.13...v1.49.14) \=== ##### Service Client Updates - `service/connect`: Updates service API and documentation - `service/mediaconvert`: Updates service API and documentation - This release includes video engine updates including HEVC improvements, support for ingesting VP9 encoded video in MP4 containers, and support for user-specified 3D LUTs. </details> <details> <summary>cerbos/cloud-api (github.com/cerbos/cloud-api)</summary> ### [`v0.1.14`](https://togithub.com/cerbos/cloud-api/compare/v0.1.13...v0.1.14) [Compare Source](https://togithub.com/cerbos/cloud-api/compare/v0.1.13...v0.1.14) </details> <details> <summary>grpc-ecosystem/grpc-gateway (github.com/grpc-ecosystem/grpc-gateway/v2)</summary> ### [`v2.19.0`](https://togithub.com/grpc-ecosystem/grpc-gateway/releases/tag/v2.19.0) [Compare Source](https://togithub.com/grpc-ecosystem/grpc-gateway/compare/v2.18.1...v2.19.0) ##### What's Changed - fix: use req.Body instead of IOReaderFactory when possible by [@​leungster](https://togithub.com/leungster) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3727](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3727) - runtime: Add outgoing trailer matching by [@​adriansmares](https://togithub.com/adriansmares) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3725](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3725) - Add openapiv2\_opt support for passing values to go templates via cli by [@​500poundbear](https://togithub.com/500poundbear) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3764](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3764) - \[Bug [#​3829](https://togithub.com/grpc-ecosystem/grpc-gateway/issues/3829)] \[protoc-gen-openapiv2] consider openapiv2\_tag.name attribute when generating ope… by [@​omrikiei](https://togithub.com/omrikiei) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3830](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3830) - feat: partial message created as named definitions by [@​nkcr](https://togithub.com/nkcr) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3743](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3743) - Fix name tags in methods by [@​omrikiei](https://togithub.com/omrikiei) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3843](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3843) - Revert [`4c79b45`](https://togithub.com/grpc-ecosystem/grpc-gateway/commit/4c79b45386348459926176911cb6b35f6f53dcdc) by [@​johanbrandhorst](https://togithub.com/johanbrandhorst) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3856](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3856) ##### New Contributors - [@​leungster](https://togithub.com/leungster) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3727](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3727) - [@​adriansmares](https://togithub.com/adriansmares) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3725](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3725) - [@​500poundbear](https://togithub.com/500poundbear) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3764](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3764) - [@​omrikiei](https://togithub.com/omrikiei) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3830](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3830) - [@​nkcr](https://togithub.com/nkcr) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3743](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3743) **Full Changelog**: grpc-ecosystem/grpc-gateway@v2.18.1...v2.19.0 </details> <details> <summary>pterm/pterm (github.com/pterm/pterm)</summary> ### [`v0.12.74`](https://togithub.com/pterm/pterm/releases/tag/v0.12.74) [Compare Source](https://togithub.com/pterm/pterm/compare/v0.12.73...v0.12.74) <!-- Release notes generated using configuration in .github/release.yml at master --> #### What's Changed ##### Exciting New Features 🎉 - feat: automatically inject more `CallerOffset` in `pterm.NewSlogHandler` by [@​MarvinJWendt](https://togithub.com/MarvinJWendt) in [https://github.com/pterm/pterm/pull/609](https://togithub.com/pterm/pterm/pull/609) ##### Other Changes - examples: fixed `interactive_multiselect` examples by [@​MarvinJWendt](https://togithub.com/MarvinJWendt) in [https://github.com/pterm/pterm/pull/606](https://togithub.com/pterm/pterm/pull/606) - ci(examples): demo is now always at the top by [@​MarvinJWendt](https://togithub.com/MarvinJWendt) in [https://github.com/pterm/pterm/pull/607](https://togithub.com/pterm/pterm/pull/607) **Full Changelog**: pterm/pterm@v0.12.73...v0.12.74 </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 has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/cerbos/cerbos). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMjEuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEyMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9--> --------- Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: Charith Ellawala <[email protected]> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Charith Ellawala <[email protected]>
… v2.19.0 (#30353) [![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.18.1` -> `v2.19.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fgrpc-ecosystem%2fgrpc-gateway%2fv2/v2.19.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.19.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.18.1/v2.19.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.18.1/v2.19.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.19.0`](https://togithub.com/grpc-ecosystem/grpc-gateway/releases/tag/v2.19.0) [Compare Source](https://togithub.com/grpc-ecosystem/grpc-gateway/compare/v2.18.1...v2.19.0) #### What's Changed - fix: use req.Body instead of IOReaderFactory when possible by [@​leungster](https://togithub.com/leungster) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3727](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3727) - runtime: Add outgoing trailer matching by [@​adriansmares](https://togithub.com/adriansmares) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3725](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3725) - Add openapiv2\_opt support for passing values to go templates via cli by [@​500poundbear](https://togithub.com/500poundbear) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3764](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3764) - \[Bug [#​3829](https://togithub.com/grpc-ecosystem/grpc-gateway/issues/3829)] \[protoc-gen-openapiv2] consider openapiv2\_tag.name attribute when generating ope… by [@​omrikiei](https://togithub.com/omrikiei) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3830](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3830) - feat: partial message created as named definitions by [@​nkcr](https://togithub.com/nkcr) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3743](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3743) - Fix name tags in methods by [@​omrikiei](https://togithub.com/omrikiei) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3843](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3843) - Revert [`4c79b45`](https://togithub.com/grpc-ecosystem/grpc-gateway/commit/4c79b45386348459926176911cb6b35f6f53dcdc) by [@​johanbrandhorst](https://togithub.com/johanbrandhorst) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3856](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3856) #### New Contributors - [@​leungster](https://togithub.com/leungster) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3727](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3727) - [@​adriansmares](https://togithub.com/adriansmares) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3725](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3725) - [@​500poundbear](https://togithub.com/500poundbear) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3764](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3764) - [@​omrikiei](https://togithub.com/omrikiei) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3830](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3830) - [@​nkcr](https://togithub.com/nkcr) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3743](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3743) **Full Changelog**: grpc-ecosystem/grpc-gateway@v2.18.1...v2.19.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 has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/open-telemetry/opentelemetry-collector-contrib). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMjcuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEyNy4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: opentelemetrybot <[email protected]>
[![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.18.1` -> `v2.19.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fgrpc-ecosystem%2fgrpc-gateway%2fv2/v2.19.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.19.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.18.1/v2.19.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.18.1/v2.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | minor | | [go](https://go.dev/) ([source](https://togithub.com/golang/go)) | `1.21.5` -> `1.21.6` | [![age](https://developer.mend.io/api/mc/badges/age/golang-version/go/1.21.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/golang-version/go/1.21.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/golang-version/go/1.21.5/1.21.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/golang-version/go/1.21.5/1.21.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | golang | patch | | [google.golang.org/protobuf](https://togithub.com/protocolbuffers/protobuf-go) | `v1.31.0` -> `v1.32.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/google.golang.org%2fprotobuf/v1.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/google.golang.org%2fprotobuf/v1.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/google.golang.org%2fprotobuf/v1.31.0/v1.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/google.golang.org%2fprotobuf/v1.31.0/v1.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | minor | | | All locks refreshed | [![age](https://developer.mend.io/api/mc/badges/age///?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption///?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility////?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence////?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | lockFileMaintenance | | [jekyll-feed](https://togithub.com/jekyll/jekyll-feed) | `0.15.1` -> `0.17.0` | [![age](https://developer.mend.io/api/mc/badges/age/rubygems/jekyll-feed/0.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/rubygems/jekyll-feed/0.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/rubygems/jekyll-feed/0.15.1/0.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/rubygems/jekyll-feed/0.15.1/0.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | minor | --- ### Release Notes <details> <summary>grpc-ecosystem/grpc-gateway (github.com/grpc-ecosystem/grpc-gateway/v2)</summary> ### [`v2.19.0`](https://togithub.com/grpc-ecosystem/grpc-gateway/releases/tag/v2.19.0) [Compare Source](https://togithub.com/grpc-ecosystem/grpc-gateway/compare/v2.18.1...v2.19.0) #### What's Changed - fix: use req.Body instead of IOReaderFactory when possible by [@​leungster](https://togithub.com/leungster) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3727](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3727) - runtime: Add outgoing trailer matching by [@​adriansmares](https://togithub.com/adriansmares) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3725](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3725) - Add openapiv2\_opt support for passing values to go templates via cli by [@​500poundbear](https://togithub.com/500poundbear) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3764](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3764) - \[Bug [#​3829](https://togithub.com/grpc-ecosystem/grpc-gateway/issues/3829)] \[protoc-gen-openapiv2] consider openapiv2\_tag.name attribute when generating ope… by [@​omrikiei](https://togithub.com/omrikiei) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3830](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3830) - feat: partial message created as named definitions by [@​nkcr](https://togithub.com/nkcr) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3743](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3743) - Fix name tags in methods by [@​omrikiei](https://togithub.com/omrikiei) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3843](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3843) - Revert [`4c79b45`](https://togithub.com/grpc-ecosystem/grpc-gateway/commit/4c79b45386348459926176911cb6b35f6f53dcdc) by [@​johanbrandhorst](https://togithub.com/johanbrandhorst) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3856](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3856) #### New Contributors - [@​leungster](https://togithub.com/leungster) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3727](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3727) - [@​adriansmares](https://togithub.com/adriansmares) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3725](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3725) - [@​500poundbear](https://togithub.com/500poundbear) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3764](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3764) - [@​omrikiei](https://togithub.com/omrikiei) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3830](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3830) - [@​nkcr](https://togithub.com/nkcr) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3743](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3743) **Full Changelog**: grpc-ecosystem/grpc-gateway@v2.18.1...v2.19.0 </details> <details> <summary>golang/go (go)</summary> ### [`v1.21.6`](https://togithub.com/golang/go/compare/go1.21.5...go1.21.6) </details> <details> <summary>protocolbuffers/protobuf-go (google.golang.org/protobuf)</summary> ### [`v1.32.0`](https://togithub.com/protocolbuffers/protobuf-go/releases/tag/v1.32.0) [Compare Source](https://togithub.com/protocolbuffers/protobuf-go/compare/v1.31.0...v1.32.0) **Full Changelog**: protocolbuffers/protobuf-go@v1.31.0...v1.32.0 This release contains commit protocolbuffers/protobuf-go@bfcd647, which fixes a denial of service vulnerability by preventing a stack overflow through a default maximum recursion limit. See [https://github.com/golang/protobuf/issues/1583](https://togithub.com/golang/protobuf/issues/1583) and [https://github.com/golang/protobuf/issues/1584](https://togithub.com/golang/protobuf/issues/1584) for details. </details> <details> <summary>jekyll/jekyll-feed (jekyll-feed)</summary> ### [`v0.17.0`](https://togithub.com/jekyll/jekyll-feed/blob/HEAD/History.markdown#0170--2022-10-14) [Compare Source](https://togithub.com/jekyll/jekyll-feed/compare/v0.16.0...v0.17.0) ##### Documentation - Update CI status badge ([#​363](https://togithub.com/jekyll/jekyll-feed/issues/363)) ##### Development Fixes - Add Ruby 3.1 to the CI matrix ([#​365](https://togithub.com/jekyll/jekyll-feed/issues/365)) ##### Minor Enhancements - Allow disabling of jekyll-feed while in development ([#​370](https://togithub.com/jekyll/jekyll-feed/issues/370)) ### [`v0.16.0`](https://togithub.com/jekyll/jekyll-feed/blob/HEAD/History.markdown#0160--2022-01-03) [Compare Source](https://togithub.com/jekyll/jekyll-feed/compare/v0.15.1...v0.16.0) ##### Minor Enhancements - Add support for `page.description` in front matter to become entry `<summary>` ([#​297](https://togithub.com/jekyll/jekyll-feed/issues/297)) ##### Bug Fixes - Fold private methods into the `:render` method as local variables ([#​327](https://togithub.com/jekyll/jekyll-feed/issues/327)) - Check `post.categories` instead of `post.category` ([#​357](https://togithub.com/jekyll/jekyll-feed/issues/357)) - Switched xml_escape for `<![CDATA[]]>` for post content ([#​332](https://togithub.com/jekyll/jekyll-feed/issues/332)) ##### Development Fixes - Add Ruby 3.0 to CI ([#​337](https://togithub.com/jekyll/jekyll-feed/issues/337)) - Lock RuboCop to v1.18.x ([#​348](https://togithub.com/jekyll/jekyll-feed/issues/348)) - Add workflow to release gem via GH Action ([#​355](https://togithub.com/jekyll/jekyll-feed/issues/355)) ##### Documentation - Use `.atom` extension in documented examples since we write an Atom feed ([#​359](https://togithub.com/jekyll/jekyll-feed/issues/359)) </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. 👻 **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 has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/google/osv.dev). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEyNy4wIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIn0=-->
… v2.19.0 (open-telemetry#30353) [![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.18.1` -> `v2.19.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fgrpc-ecosystem%2fgrpc-gateway%2fv2/v2.19.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.19.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.18.1/v2.19.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.18.1/v2.19.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.19.0`](https://togithub.com/grpc-ecosystem/grpc-gateway/releases/tag/v2.19.0) [Compare Source](https://togithub.com/grpc-ecosystem/grpc-gateway/compare/v2.18.1...v2.19.0) #### What's Changed - fix: use req.Body instead of IOReaderFactory when possible by [@&open-telemetry#8203;leungster](https://togithub.com/leungster) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3727](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3727) - runtime: Add outgoing trailer matching by [@&open-telemetry#8203;adriansmares](https://togithub.com/adriansmares) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3725](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3725) - Add openapiv2\_opt support for passing values to go templates via cli by [@&open-telemetry#8203;500poundbear](https://togithub.com/500poundbear) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3764](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3764) - \[Bug [#&open-telemetry#8203;3829](https://togithub.com/grpc-ecosystem/grpc-gateway/issues/3829)] \[protoc-gen-openapiv2] consider openapiv2\_tag.name attribute when generating ope… by [@&open-telemetry#8203;omrikiei](https://togithub.com/omrikiei) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3830](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3830) - feat: partial message created as named definitions by [@&open-telemetry#8203;nkcr](https://togithub.com/nkcr) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3743](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3743) - Fix name tags in methods by [@&open-telemetry#8203;omrikiei](https://togithub.com/omrikiei) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3843](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3843) - Revert [`4c79b45`](https://togithub.com/grpc-ecosystem/grpc-gateway/commit/4c79b45386348459926176911cb6b35f6f53dcdc) by [@&open-telemetry#8203;johanbrandhorst](https://togithub.com/johanbrandhorst) in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3856](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3856) #### New Contributors - [@&open-telemetry#8203;leungster](https://togithub.com/leungster) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3727](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3727) - [@&open-telemetry#8203;adriansmares](https://togithub.com/adriansmares) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3725](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3725) - [@&open-telemetry#8203;500poundbear](https://togithub.com/500poundbear) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3764](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3764) - [@&open-telemetry#8203;omrikiei](https://togithub.com/omrikiei) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3830](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3830) - [@&open-telemetry#8203;nkcr](https://togithub.com/nkcr) made their first contribution in [https://github.com/grpc-ecosystem/grpc-gateway/pull/3743](https://togithub.com/grpc-ecosystem/grpc-gateway/pull/3743) **Full Changelog**: grpc-ecosystem/grpc-gateway@v2.18.1...v2.19.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 has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/open-telemetry/opentelemetry-collector-contrib). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMjcuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEyNy4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: opentelemetrybot <[email protected]>
References to other Issues or PRs
Closes #1697
Have you read the Contributing Guidelines?
Yes.
Brief description of what is fixed or changed
Trailers
header if the trailers themselves will not be included, especially if the caller did not signal that it accepts trailers.Other comments
I implemented this change due to status: fix/improve status handling grpc/grpc-go#6662 , as I would like to skip this trailer completely since the error details are present in the body. But maybe
grpc-gateway
should convert back binary header/trailer values to base64 before sending them to the HTTP caller, by default ? (similar to how binary metadata is decoded from the HTTP caller to the gRPC client)There is no trailer support for streaming responses - should this be added ?
Should we expose the default matchers ? Currently only the incoming header matcher is a public function, and it is badly named given that there are three matchers now.
Summary by CodeRabbit