Skip to content
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

✨ new feat: selector middleware #511

Merged
merged 1 commit into from
Sep 7, 2022

Conversation

aimuz
Copy link
Contributor

@aimuz aimuz commented Sep 2, 2022

It allows to set check rules to whitelist or blacklist middleware such as Auth
Requests that match the rules will go to the next level of middleware

Copy link
Collaborator

@johanbrandhorst johanbrandhorst left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks cool, but I think it's missing some things:

  1. Where are the tests? We should include some tests of this new functionality.
  2. Could you include an selector_example_test.go file with an example of how to use this? It will automatically be shown as part of the documentation. See https://go.dev/blog/examples.

@aimuz
Copy link
Contributor Author

aimuz commented Sep 3, 2022

Yes, that's how it should be. I'll take care of it.

@codecov-commenter
Copy link

codecov-commenter commented Sep 3, 2022

Codecov Report

Base: 84.01% // Head: 58.74% // Decreases project coverage by -25.26% ⚠️

Coverage data is based on head (eda6e54) compared to base (6e2c2ac).
Patch coverage: 50.91% of modified lines in pull request are covered.

❗ Current head eda6e54 differs from pull request most recent head f7fa9eb. Consider uploading reports for the commit f7fa9eb to get more accurate results

Additional details and impacted files
@@             Coverage Diff             @@
##               v2     #511       +/-   ##
===========================================
- Coverage   84.01%   58.74%   -25.27%     
===========================================
  Files          30       31        +1     
  Lines         932     1583      +651     
===========================================
+ Hits          783      930      +147     
- Misses        110      590      +480     
- Partials       39       63       +24     
Impacted Files Coverage Δ
chain.go 0.00% <ø> (-90.91%) ⬇️
interceptors/auth/auth.go 100.00% <ø> (ø)
interceptors/ratelimit/ratelimit.go 60.00% <0.00%> (-40.00%) ⬇️
interceptors/recovery/options.go 78.57% <ø> (ø)
metadata/single_key.go 60.00% <ø> (ø)
testing/testpb/interceptor_suite.go 0.00% <0.00%> (ø)
testing/testpb/test.manual_validator.pb.go 0.00% <0.00%> (ø)
util/backoffutils/backoff.go 60.00% <ø> (ø)
wrappers.go 66.66% <ø> (-33.34%) ⬇️
interceptors/reporter.go 45.45% <20.00%> (-17.05%) ⬇️
... and 28 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

☔ View full report at Codecov.
📢 Do you have feedback about the report comment? Let us know in this issue.

Copy link
Collaborator

@johanbrandhorst johanbrandhorst left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the tests, just a few suggestions

`selector` a generic server-side selector middleware for gRPC.

# Server Side Selector Middleware
It allows to set check rules to whitelist or blacklist middleware such as Auth
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the updates, do you mind changing these phrases to allowlist and blocklist consistently through this PR?

Suggested change
It allows to set check rules to whitelist or blacklist middleware such as Auth
It allows to set check rules to allowlist or blocklist middleware such as Auth


type Option func(o *options)

// WithMatch ...
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this comment needs improving

Suggested change
// WithMatch ...
// WithMatch configures what condition should trigger the selector to run the interceptor.
// If used multiple times, the last one specified will be used.

return optCopy
}

// AlwaysMatch is the default implementation, always selected
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// AlwaysMatch is the default implementation, always selected
// AlwaysMatch can be used to always run the interceptor. This is the default behavior.

return true
}

// UnaryServerInterceptor returns a new unary server interceptors that performs per-request selector.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// UnaryServerInterceptor returns a new unary server interceptors that performs per-request selector.
// UnaryServerInterceptor returns a new unary server interceptor that will decide whether to call the interceptor on the behavior of the MatchFunc.

}

// UnaryServerInterceptor returns a new unary server interceptors that performs per-request selector.
func UnaryServerInterceptor(interceptors grpc.UnaryServerInterceptor, opts ...Option) grpc.UnaryServerInterceptor {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm leaning towards removing MatchFunc as an option and making it a required parameter. This solves two problems:

  1. If you accidentally use the selector without a match func, you gain no utility from it.
  2. If you accidentally specify two match func options, you might be confused about which to use.

That simplifies things generally, no need for the AlwaysMatch function, etc.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I readjusted it, can you help me in seeing what is wrong?


# Server Side Selector Middleware
It allows to set check rules to whitelist or blacklist middleware such as Auth
Requests that match the rules will go to the next level of middleware
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Requests that match the rules will go to the next level of middleware
interceptors to toggle behavior on or off based on the request path.

}

func loginSkip(ctx context.Context, fullMethod string) bool {
return fullMethod != "login"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lets use a realistic looking path, like you are doing in the tests

Suggested change
return fullMethod != "login"
return fullMethod != "/auth.v1.AuthService/Login"

@aimuz aimuz force-pushed the v2-selector branch 2 times, most recently from e3b9f5e to d3ce045 Compare September 4, 2022 07:10
Comment on lines 11 to 29
// Allow After the method is matched, the interceptor is run
func Allow(methods []string) MatchFunc {
return func(ctx context.Context, fullMethod string) bool {
for _, s := range methods {
if s == fullMethod {
return true
}
}
return false
}
}

// Block the interceptor will not run after the method matches
func Block(methods []string) MatchFunc {
allow := Allow(methods)
return func(ctx context.Context, fullMethod string) bool {
return !allow(ctx, fullMethod)
}
}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think we need these, to be honest. Users can easily implement these themselves.

"testing"
)

var whiteList = []string{"/auth.v1beta1.AuthService/Login"}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
var whiteList = []string{"/auth.v1beta1.AuthService/Login"}
var allowList = []string{"/auth.v1beta1.AuthService/Login"}

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have adjusted

@@ -1,18 +1,16 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.25.0
// protoc-gen-go v1.28.0
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you revert these changes, I don't think these should need to be changed?

@johanbrandhorst
Copy link
Collaborator

Looks like there is a formatting issue, can you run make lint?

@aimuz aimuz force-pushed the v2-selector branch 2 times, most recently from 9add81a to 948425e Compare September 7, 2022 05:07
@aimuz
Copy link
Contributor Author

aimuz commented Sep 7, 2022

done

@johanbrandhorst johanbrandhorst merged commit 001ba37 into grpc-ecosystem:v2 Sep 7, 2022
@johanbrandhorst
Copy link
Collaborator

Thank you for your contribution!

@aimuz aimuz deleted the v2-selector branch September 7, 2022 14:22
yurishkuro referenced this pull request in jaegertracing/jaeger Jun 13, 2024
[![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/go-grpc-middleware](https://github.com/grpc-ecosystem/go-grpc-middleware)
| `v1.4.0` -> `v2.1.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fgrpc-ecosystem%2fgo-grpc-middleware/v2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fgrpc-ecosystem%2fgo-grpc-middleware/v2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fgrpc-ecosystem%2fgo-grpc-middleware/v1.4.0/v2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fgrpc-ecosystem%2fgo-grpc-middleware/v1.4.0/v2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>grpc-ecosystem/go-grpc-middleware
(github.com/grpc-ecosystem/go-grpc-middleware)</summary>

###
[`v2.1.0`](https://github.com/grpc-ecosystem/go-grpc-middleware/releases/tag/v2.1.0)

[Compare
Source](https://github.com/grpc-ecosystem/go-grpc-middleware/compare/v2.0.1...v2.1.0)

#### What's Changed

- Support for subsystem in grpc prometheus counter and histogram metrics
by [@&#8203;rohsaini](https://github.com/rohsaini) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/643](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/643)
- doc: update client interceptors chaining example with grpc functions
by [@&#8203;dethi](https://github.com/dethi) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/669](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/669)
- adds fields from durationFieldFunc to request/response log entries by
[@&#8203;vroldanbet](https://github.com/vroldanbet) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/670](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/670)
- add doc for disabling log opts by
[@&#8203;coleenquadros](https://github.com/coleenquadros) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/680](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/680)
- Middleware for determining the real ip of the client by
[@&#8203;MadsRC](https://github.com/MadsRC) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/682](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/682)
- protovalidate: add option to ignore certain message types by
[@&#8203;igor-tsiglyar](https://github.com/igor-tsiglyar) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/684](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/684)
- Update README.md by [@&#8203;zeroboo](https://github.com/zeroboo) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/688](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/688)
- Fix `InitializeMetrics` signature to allow use with `xds.GRPCServer`
by [@&#8203;bozaro](https://github.com/bozaro) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/689](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/689)
- Support retriable func condition by
[@&#8203;tamayika](https://github.com/tamayika) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/687](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/687)
- Extend realip parsing of GRPC peer address to handle IPv6 by
[@&#8203;surik](https://github.com/surik) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/692](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/692)
- Fix logging Example : log only first field by
[@&#8203;arckadious](https://github.com/arckadious) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/694](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/694)
- Extent realip interceptors with ip selection based on proxy count and
list by [@&#8203;surik](https://github.com/surik) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/695](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/695)
- Fix for vulnerability CVE-2023-44487 by
[@&#8203;vkaushik](https://github.com/vkaushik) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/696](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/696)

#### New Contributors

- [@&#8203;rohsaini](https://github.com/rohsaini) made their first
contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/643](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/643)
- [@&#8203;dethi](https://github.com/dethi) made their first
contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/669](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/669)
- [@&#8203;vroldanbet](https://github.com/vroldanbet) made their first
contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/670](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/670)
- [@&#8203;MadsRC](https://github.com/MadsRC) made their first
contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/682](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/682)
- [@&#8203;igor-tsiglyar](https://github.com/igor-tsiglyar) made their
first contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/684](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/684)
- [@&#8203;zeroboo](https://github.com/zeroboo) made their first
contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/688](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/688)
- [@&#8203;bozaro](https://github.com/bozaro) made their first
contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/689](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/689)
- [@&#8203;tamayika](https://github.com/tamayika) made their first
contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/687](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/687)
- [@&#8203;surik](https://github.com/surik) made their first
contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/692](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/692)
- [@&#8203;arckadious](https://github.com/arckadious) made their first
contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/694](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/694)
- [@&#8203;vkaushik](https://github.com/vkaushik) made their first
contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/696](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/696)

**Full Changelog**:
grpc-ecosystem/go-grpc-middleware@v2.0.1...v2.1.0

###
[`v2.0.1`](https://github.com/grpc-ecosystem/go-grpc-middleware/releases/tag/v2.0.1)

[Compare
Source](https://github.com/grpc-ecosystem/go-grpc-middleware/compare/v2.0.0...v2.0.1)

#### What's Changed

- Fix outdated 'make proto' command by
[@&#8203;takp](https://github.com/takp) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/623](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/623)
- Fix linting errors by [@&#8203;takp](https://github.com/takp) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/624](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/624)
- Logging: Add missing variadic operator for fields by
[@&#8203;olivierlemasle](https://github.com/olivierlemasle) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/629](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/629)
- feat: Support extracting fields from CallMeta by
[@&#8203;fsaintjacques](https://github.com/fsaintjacques) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/628](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/628)
- Fix "make test" and "make lint" by
[@&#8203;olivierlemasle](https://github.com/olivierlemasle) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/627](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/627)
- Do not set timeout for stream initialization by
[@&#8203;DavyJohnes](https://github.com/DavyJohnes) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/645](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/645)
- Add logging option to disable fields in log entry by
[@&#8203;coleenquadros](https://github.com/coleenquadros) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/631](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/631)
- Update logging adapter docs by
[@&#8203;aboryslawski](https://github.com/aboryslawski) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/647](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/647)

#### New Contributors

- [@&#8203;takp](https://github.com/takp) made their first
contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/623](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/623)
- [@&#8203;olivierlemasle](https://github.com/olivierlemasle) made
their first contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/629](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/629)
- [@&#8203;fsaintjacques](https://github.com/fsaintjacques) made their
first contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/628](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/628)
- [@&#8203;DavyJohnes](https://github.com/DavyJohnes) made their first
contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/645](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/645)
- [@&#8203;coleenquadros](https://github.com/coleenquadros) made their
first contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/631](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/631)
- [@&#8203;aboryslawski](https://github.com/aboryslawski) made their
first contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/647](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/647)

**Full Changelog**:
grpc-ecosystem/go-grpc-middleware@v2.0.0...v2.0.1

###
[`v2.0.0`](https://github.com/grpc-ecosystem/go-grpc-middleware/releases/tag/v2.0.0)

[Compare
Source](https://github.com/grpc-ecosystem/go-grpc-middleware/compare/v1.4.0...v2.0.0)

This is the first stable release of the new v2 release branch 🎉

Many of the interceptors have been rewritten from scratch and the
project has been upgraded to use the Go Protobuf v2 API.

See the project README for details and migration guide. Thanks to all
contributors who made this possible! 💪🏽

#### What's Changed

- Initial change for v2. by
[@&#8203;bwplotka](https://github.com/bwplotka) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/276](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/276)
- Updated README with note that it's under development. by
[@&#8203;bwplotka](https://github.com/bwplotka) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/278](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/278)
- Fix typo in field extractor (splices -> slices)
([#&#8203;287](https://github.com/grpc-ecosystem/go-grpc-middleware/issues/287))
by [@&#8203;bvwells](https://github.com/bvwells) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/289](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/289)
- Moved imports to v2; Moved to Go 1.14.2 by
[@&#8203;bwplotka](https://github.com/bwplotka) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/290](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/290)
- Formatted code; Added goimports to Makefile, Renamed pb_testproto to
testpb. by [@&#8203;bwplotka](https://github.com/bwplotka) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/291](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/291)
- Fixed providers go modules, examples and consistency. by
[@&#8203;bwplotka](https://github.com/bwplotka) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/292](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/292)
- added example for AuthFuncOverride v2 branch by
[@&#8203;tegk](https://github.com/tegk) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/294](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/294)
- Added some description of the Makefile in the contributing.md by
[@&#8203;yashrsharma44](https://github.com/yashrsharma44) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/298](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/298)
- v2: Add support for the zerolog logging provider by
[@&#8203;irridia](https://github.com/irridia) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/299](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/299)
- proto: fix gogoproto import by
[@&#8203;johanbrandhorst](https://github.com/johanbrandhorst) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/302](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/302)
- Retry dial and connection errors for grpc stream. by
[@&#8203;kartlee](https://github.com/kartlee) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/308](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/308)
- Moved to GH actions; Added lint; Added issue/PR templates. by
[@&#8203;bwplotka](https://github.com/bwplotka) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/296](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/296)
- inline localhost certificate into go file by
[@&#8203;bmon](https://github.com/bmon) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/318](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/318)
- Update streaming interceptor example by
[@&#8203;G07cha](https://github.com/G07cha) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/322](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/322)
- Do not stop retrying based on earlier good message from the stream by
[@&#8203;kartlee](https://github.com/kartlee) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/323](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/323)
- test certs - cherry-pick PR325 on v2 by
[@&#8203;dmitris](https://github.com/dmitris) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/331](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/331)
- add all make target, reword instructions by
[@&#8203;dmitris](https://github.com/dmitris) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/335](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/335)
- remove 1.12.x from build config for consistency with master by
[@&#8203;dmitris](https://github.com/dmitris) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/337](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/337)
- \[v2] Fix the special case for jaeger format traceid extraction by
[@&#8203;nvx](https://github.com/nvx) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/340](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/340)
- \[v2] Fix ctxtags TagBasedRequestFieldExtractor extracting from fields
in a oneof by [@&#8203;nvx](https://github.com/nvx) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/339](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/339)
- Request Logging by
[@&#8203;yashrsharma44](https://github.com/yashrsharma44) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/311](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/311)
- Bug fix for data race by
[@&#8203;yashrsharma44](https://github.com/yashrsharma44) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/354](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/354)
- make ratelimit interface context aware by
[@&#8203;xinxiao](https://github.com/xinxiao) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/367](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/367)
- Add error param to the decider method of logging middleware by
[@&#8203;yashrsharma44](https://github.com/yashrsharma44) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/372](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/372)
- \[v2] Add skip interceptor by
[@&#8203;XSAM](https://github.com/XSAM) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/364](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/364)
- Chain middleware by
[@&#8203;drewwells](https://github.com/drewwells) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/385](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/385)
- Update travis ci badget to Github actions badge. by
[@&#8203;drewwells](https://github.com/drewwells) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/384](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/384)
- Upgraded proto related deps: grpc and protobuf; removed gogo from
core. by [@&#8203;bwplotka](https://github.com/bwplotka) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/321](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/321)
- improve v2 rate-limiter by
[@&#8203;MalloZup](https://github.com/MalloZup) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/380](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/380)
- Moved to buf; Added buf lint; Fixed ping service to match standards; …
by [@&#8203;bwplotka](https://github.com/bwplotka) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/383](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/383)
- Add timer interface for OpenMetrics(Prometheus) Provider by
[@&#8203;yashrsharma44](https://github.com/yashrsharma44) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/387](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/387)
- \[Rate-limit provider]: Add token bucket implementation of
rate-limiter by [@&#8203;MalloZup](https://github.com/MalloZup) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/386](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/386)
- Add OpenMetrics(Prometheus) in the provider module by
[@&#8203;yashrsharma44](https://github.com/yashrsharma44) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/379](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/379)
- v2: Client unary interceptor timeout on v2 branch by
[@&#8203;instabledesign](https://github.com/instabledesign) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/330](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/330)
- add onRetryCallback callback function by
[@&#8203;shamil](https://github.com/shamil) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/405](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/405)
- v2: validator support for protoc-gen-validate 0.6.0 by
[@&#8203;danielhochman](https://github.com/danielhochman) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/418](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/418)
- v2: Refactor metrics interceptor and fix tests by
[@&#8203;ash2k](https://github.com/ash2k) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/413](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/413)
- Support customization of timestamp format (v2 branch) by
[@&#8203;stanhu](https://github.com/stanhu) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/399](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/399)
- Fixed misleading comments in the interceptor file by
[@&#8203;iamrajiv](https://github.com/iamrajiv) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/424](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/424)
- v2: Switch from github.com/go-kit/kit to github.com/go-kit/log
interfaces by [@&#8203;liggitt](https://github.com/liggitt) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/427](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/427)
- v2: Add support for the phuslog logging provider by
[@&#8203;ogimenezb](https://github.com/ogimenezb) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/425](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/425)
- v2:providers/zap: fix caller annotation by
[@&#8203;jkawamoto](https://github.com/jkawamoto) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/432](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/432)
- Added Dependabot by [@&#8203;iamrajiv](https://github.com/iamrajiv)
in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/376](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/376)
- Added a Copyright check in the Makefile by
[@&#8203;yashrsharma44](https://github.com/yashrsharma44) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/420](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/420)
- Cleanup v2 with some updates by
[@&#8203;yashrsharma44](https://github.com/yashrsharma44) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/419](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/419)
- openmetrics: forward server context by
[@&#8203;amenzhinsky](https://github.com/amenzhinsky) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/434](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/434)
- recovery: change the default behavior by
[@&#8203;amenzhinsky](https://github.com/amenzhinsky) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/439](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/439)
- Add all-validator support by
[@&#8203;leventeliu](https://github.com/leventeliu) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/443](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/443)
- Remove backoffutils and added the files to retry package by
[@&#8203;yashrsharma44](https://github.com/yashrsharma44) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/390](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/390)
- v2:interceptors/logging: allow to separate request response payload
logging by [@&#8203;michaljemala](https://github.com/michaljemala) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/442](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/442)
- Removed tags; Simplified interceptor code; Added logging fields
editability. by [@&#8203;bwplotka](https://github.com/bwplotka) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/394](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/394)
- InterceptorTestSuite client connection optimize by
[@&#8203;HUSTtoKTH](https://github.com/HUSTtoKTH) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/455](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/455)
- Remove opentracing from go.mod by
[@&#8203;jpkrohling](https://github.com/jpkrohling) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/477](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/477)
- Replace two old Go versions with two new ones by
[@&#8203;jpkrohling](https://github.com/jpkrohling) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/478](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/478)
- Move util/metautils to root-level package metadata, fixes
[#&#8203;392](https://github.com/grpc-ecosystem/go-grpc-middleware/issues/392)
by [@&#8203;rahulkhairwar](https://github.com/rahulkhairwar) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/474](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/474)
- Remove data race from zerolog provider by
[@&#8203;ecordell](https://github.com/ecordell) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/487](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/487)
- Update provider/kit by
[@&#8203;metalmatze](https://github.com/metalmatze) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/490](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/490)
- Refactor tracing interceptor by
[@&#8203;XSAM](https://github.com/XSAM) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/450](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/450)
- Add opentracing provider by [@&#8203;XSAM](https://github.com/XSAM)
in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/492](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/492)
- update phuslog to fix typo by
[@&#8203;ogimenezb](https://github.com/ogimenezb) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/499](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/499)
- Added logr as logging Library provider by
[@&#8203;mcdoker18](https://github.com/mcdoker18) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/510](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/510)
- ✨ new feat: selector middleware by
[@&#8203;aimuz](https://github.com/aimuz) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/511](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/511)
- Add 1.18.x and 1.19.x unit tests by
[@&#8203;aimuz](https://github.com/aimuz) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/513](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/513)
- change the doc.go to the latest format by
[@&#8203;aimuz](https://github.com/aimuz) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/512](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/512)
- fix provider examples by
[@&#8203;forsaken628](https://github.com/forsaken628) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/529](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/529)
- docs: add `logging.InjectFields` usage description by
[@&#8203;aimuz](https://github.com/aimuz) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/541](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/541)
- Bump golang.org/x/net from 0.0.0-20201021035429-f5854403a974 to 0.7.0
by [@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/537](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/537)
- v2: All for v2: Exemplars, Cleanup, Docs, Lint, Proto upgrades and
more by [@&#8203;bwplotka](https://github.com/bwplotka) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/543](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/543)
- \[interceptors/validator] feat: add error logging in validator by
[@&#8203;rohanraj7316](https://github.com/rohanraj7316) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/544](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/544)
- fix auto-generated docs by
[@&#8203;peczenyj](https://github.com/peczenyj) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/548](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/548)
- fix vulnerability GO-2022-0603 by
[@&#8203;peczenyj](https://github.com/peczenyj) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/549](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/549)
- add support to trace on grpc_logrus.DefaultMessageProducer by
[@&#8203;peczenyj](https://github.com/peczenyj) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/547](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/547)
- Simplified logging middleware; Fields are now "any" type; Moved
logging providers to examples only. by
[@&#8203;bwplotka](https://github.com/bwplotka) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/552](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/552)
- Removed deciders; Cleaned up validators. by
[@&#8203;bwplotka](https://github.com/bwplotka) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/554](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/554)
- Adjustments to README and consistency of callback options. by
[@&#8203;bwplotka](https://github.com/bwplotka) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/555](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/555)
- Merge v2 into main (with -X theirs) by
[@&#8203;bwplotka](https://github.com/bwplotka) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/556](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/556)
- Bump golang.org/x/net from 0.5.0 to 0.7.0 in /providers/prometheus by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/561](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/561)
- Fix overwritten logger in zerolog example by
[@&#8203;longshine](https://github.com/longshine) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/574](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/574)
- Changed for for mapping fields, different var for logger in zap
example by [@&#8203;MichalFikejs](https://github.com/MichalFikejs) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/581](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/581)
- cleanup: no cap definition required by
[@&#8203;aimuz](https://github.com/aimuz) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/582](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/582)
- providers/prometheus: Add WithHistogramOpts for native histograms by
[@&#8203;metalmatze](https://github.com/metalmatze) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/584](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/584)
- fix: Refactor logger initialization in example_test.go by
[@&#8203;aimuz](https://github.com/aimuz) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/580](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/580)
- Minor code cleanups by [@&#8203;ash2k](https://github.com/ash2k) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/586](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/586)
- fix prometheus interceptors not converting context errors to gRPC
codes by [@&#8203;vtermanis](https://github.com/vtermanis) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/571](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/571)
- Update README.md by [@&#8203;bwplotka](https://github.com/bwplotka)
in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/600](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/600)
- Update PULL_REQUEST_TEMPLATE.md by
[@&#8203;bwplotka](https://github.com/bwplotka) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/601](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/601)
- Add Client rate limit interceptors 520 by
[@&#8203;rahulkhairwar](https://github.com/rahulkhairwar) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/599](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/599)
- Use default go errors package instead of github.com/pkg/errors by
[@&#8203;rifkyazizf](https://github.com/rifkyazizf) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/608](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/608)
- fix bug : should drain channel of timer after stop by
[@&#8203;ikenchina](https://github.com/ikenchina) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/612](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/612)
- feat: add interceptor for bufbuild/protovalidate by
[@&#8203;gvencadze](https://github.com/gvencadze) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/614](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/614)
- Enhancement: Introduce Option Interface for Future Interceptor
Customization by
[@&#8203;elliotmjackson](https://github.com/elliotmjackson) in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/615](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/615)

#### New Contributors

- [@&#8203;irridia](https://github.com/irridia) made their first
contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/299](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/299)
- [@&#8203;xinxiao](https://github.com/xinxiao) made their first
contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/367](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/367)
- [@&#8203;XSAM](https://github.com/XSAM) made their first
contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/364](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/364)
- [@&#8203;MalloZup](https://github.com/MalloZup) made their first
contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/380](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/380)
- [@&#8203;instabledesign](https://github.com/instabledesign) made
their first contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/330](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/330)
- [@&#8203;shamil](https://github.com/shamil) made their first
contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/405](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/405)
- [@&#8203;ash2k](https://github.com/ash2k) made their first
contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/413](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/413)
- [@&#8203;ogimenezb](https://github.com/ogimenezb) made their first
contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/425](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/425)
- [@&#8203;amenzhinsky](https://github.com/amenzhinsky) made their
first contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/434](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/434)
- [@&#8203;leventeliu](https://github.com/leventeliu) made their first
contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/443](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/443)
- [@&#8203;michaljemala](https://github.com/michaljemala) made their
first contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/442](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/442)
- [@&#8203;HUSTtoKTH](https://github.com/HUSTtoKTH) made their first
contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/455](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/455)
- [@&#8203;jpkrohling](https://github.com/jpkrohling) made their first
contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/477](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/477)
- [@&#8203;rahulkhairwar](https://github.com/rahulkhairwar) made their
first contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/474](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/474)
- [@&#8203;ecordell](https://github.com/ecordell) made their first
contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/487](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/487)
- [@&#8203;metalmatze](https://github.com/metalmatze) made their first
contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/490](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/490)
- [@&#8203;mcdoker18](https://github.com/mcdoker18) made their first
contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/510](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/510)
- [@&#8203;aimuz](https://github.com/aimuz) made their first
contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/511](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/511)
- [@&#8203;forsaken628](https://github.com/forsaken628) made their
first contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/529](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/529)
- [@&#8203;dependabot](https://github.com/dependabot) made their first
contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/537](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/537)
- [@&#8203;rohanraj7316](https://github.com/rohanraj7316) made their
first contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/544](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/544)
- [@&#8203;peczenyj](https://github.com/peczenyj) made their first
contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/548](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/548)
- [@&#8203;longshine](https://github.com/longshine) made their first
contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/574](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/574)
- [@&#8203;MichalFikejs](https://github.com/MichalFikejs) made their
first contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/581](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/581)
- [@&#8203;vtermanis](https://github.com/vtermanis) made their first
contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/571](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/571)
- [@&#8203;rifkyazizf](https://github.com/rifkyazizf) made their first
contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/608](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/608)
- [@&#8203;ikenchina](https://github.com/ikenchina) made their first
contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/612](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/612)
- [@&#8203;gvencadze](https://github.com/gvencadze) made their first
contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/614](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/614)
- [@&#8203;elliotmjackson](https://github.com/elliotmjackson) made
their first contribution in
[https://github.com/grpc-ecosystem/go-grpc-middleware/pull/615](https://github.com/grpc-ecosystem/go-grpc-middleware/pull/615)

**Full Changelog**:
grpc-ecosystem/go-grpc-middleware@v1.4.0...v2.0.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 has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/jaegertracing/jaeger).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zOTMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjM5My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJjaGFuZ2Vsb2c6ZGVwZW5kZW5jaWVzIl19-->

---------

Signed-off-by: Mend Renovate <[email protected]>
Signed-off-by: Yuri Shkuro <[email protected]>
Co-authored-by: Yuri Shkuro <[email protected]>
Co-authored-by: Yuri Shkuro <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants