{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":58821882,"defaultBranch":"main","name":"go-grpc-middleware","ownerLogin":"grpc-ecosystem","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2016-05-14T17:48:56.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/19352526?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1714020745.0","currentOid":""},"activityList":{"items":[{"before":"daf5ccf8a182e9d22af36b720a2aa5cc39fd4e17","after":"7da22cf3f3d3ae190467d9c7a3ea749b3d0e63b5","ref":"refs/heads/main","pushedAt":"2024-04-25T04:50:13.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"johanbrandhorst","name":"Johan Brandhorst-Satzkorn","path":"/johanbrandhorst","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6604151?s=80&v=4"},"commit":{"message":"Fix providers/prometheus depend on go-grpc-middleware v2.1.0 (#706)","shortMessageHtmlLink":"Fix providers/prometheus depend on go-grpc-middleware v2.1.0 (#706)"}},{"before":"ea545dc68ba999921c289be6e5424fe091606e51","after":"daf5ccf8a182e9d22af36b720a2aa5cc39fd4e17","ref":"refs/heads/main","pushedAt":"2024-04-08T21:18:47.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"johanbrandhorst","name":"Johan Brandhorst-Satzkorn","path":"/johanbrandhorst","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6604151?s=80&v=4"},"commit":{"message":"logging: Document correct WithFieldsFromContext/WithFieldsFromContextAndCallMeta usage (#703)\n\nSigned-off-by: Chance Zibolski ","shortMessageHtmlLink":"logging: Document correct WithFieldsFromContext/WithFieldsFromContext…"}},{"before":"3834477040993ff385d88890844cf851e84b01d2","after":"ea545dc68ba999921c289be6e5424fe091606e51","ref":"refs/heads/main","pushedAt":"2024-04-08T20:47:57.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"johanbrandhorst","name":"Johan Brandhorst-Satzkorn","path":"/johanbrandhorst","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6604151?s=80&v=4"},"commit":{"message":"interceptors: Update logging interceptor Reporter to re-extract fields from context before logging (#702)\n\nWhen using logging.WithFieldsFromContext, if the value being extracted\r\nas a log field is modified after the logging interceptor initializes the\r\nReporter before the underlying handler is called, then the updated value\r\nwill not be reflected in the log message.\r\n\r\nTo fix this, re-extract fields from the context before logging them in\r\nPostCall, PostMsgSend and PostMsgReceive, ensuring the updated values in\r\nthe context are logged.\r\n\r\nSigned-off-by: Chance Zibolski ","shortMessageHtmlLink":"interceptors: Update logging interceptor Reporter to re-extract field…"}},{"before":"3f5e2b31e36c931159a1b80287847840cd581e6e","after":"3834477040993ff385d88890844cf851e84b01d2","ref":"refs/heads/main","pushedAt":"2024-03-14T16:40:43.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"johanbrandhorst","name":"Johan Brandhorst-Satzkorn","path":"/johanbrandhorst","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6604151?s=80&v=4"},"commit":{"message":"Call retry callback on retry (#700)\n\n* Move on retry callback to when it retries\r\n\r\n* the same for streaming\r\n\r\n* after backoff wait\r\n\r\n* add test on retry callback on non-retriable errors","shortMessageHtmlLink":"Call retry callback on retry (#700)"}},{"before":"757544f213574186a46ee9bf6c8a5be6b06c1b7d","after":"3f5e2b31e36c931159a1b80287847840cd581e6e","ref":"refs/heads/main","pushedAt":"2024-02-22T15:43:25.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"johanbrandhorst","name":"Johan Brandhorst-Satzkorn","path":"/johanbrandhorst","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6604151?s=80&v=4"},"commit":{"message":"Fix for vulnerability CVE-2023-44487 (#696)\n\n* Fix for vulnerability CVE-2023-44487\r\n\r\nVulnerability: https://nvd.nist.gov/vuln/detail/CVE-2023-44487\r\nhttps://nvd.nist.gov/vuln/detail/CVE-2023-44487zThe HTTP/2 protocol allows a denial of service (server resource consumption) because request cancellation can reset many streams quickly, as exploited in the wild in August through October 2023.\r\n\r\ngrpc fix version - https://github.com/grpc/grpc-go/releases/tag/v1.56.3\r\n\r\nThis change includes updating the packgae google.golang.org/grpc as a fix to above vulnerability.\r\n\r\n* update examples dir to fix CI","shortMessageHtmlLink":"Fix for vulnerability CVE-2023-44487 (#696)"}},{"before":"37827591b26cd8d936deec02939c80820462b860","after":"757544f213574186a46ee9bf6c8a5be6b06c1b7d","ref":"refs/heads/main","pushedAt":"2024-02-12T19:22:51.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"johanbrandhorst","name":"Johan Brandhorst-Satzkorn","path":"/johanbrandhorst","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6604151?s=80&v=4"},"commit":{"message":"Extend realip interceptors with ip selection based on proxy count and list (#695)\n\n* Extend realip interceptors with ip selection based on proxy count and list\r\n\r\nThe rightmost IP is not always the client IP. One example is Google:\r\nhttps://cloud.google.com/load-balancing/docs/https#x-forwarded-for_header\r\n\r\nThe PR extends the IP selection for `X-Forwarded-For` based on\r\n[MDN Selecting an IP address](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#selecting_an_ip_address).\r\n\r\nJust so you know, it is possible to configure both at the same time.\r\nThe user needs to be cautious when configuring these for IP selection and preferably pick `TrustedProxies` or `TrustedProxiesCount`.\r\n\r\n* Use functional options to configure the interceptor\r\n\r\n* Fix linter","shortMessageHtmlLink":"Extend realip interceptors with ip selection based on proxy count and…"}},{"before":"c2940ba9c9def538fa4861da628bc50507c99779","after":"37827591b26cd8d936deec02939c80820462b860","ref":"refs/heads/main","pushedAt":"2024-02-02T18:44:42.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"johanbrandhorst","name":"Johan Brandhorst-Satzkorn","path":"/johanbrandhorst","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6604151?s=80&v=4"},"commit":{"message":"Fix logging Example : log only first field (#694)\n\nCo-authored-by: Pierre PERRIER-RIDET ","shortMessageHtmlLink":"Fix logging Example : log only first field (#694)"}},{"before":"220740bc30b1fb92c6a36f3ac3c248ad0c5cc53d","after":"c2940ba9c9def538fa4861da628bc50507c99779","ref":"refs/heads/main","pushedAt":"2024-02-02T18:43:59.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"johanbrandhorst","name":"Johan Brandhorst-Satzkorn","path":"/johanbrandhorst","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6604151?s=80&v=4"},"commit":{"message":"Extend realip parsing of GRPC peer address to handle IPv6 (#692)\n\n* Extend realip parsing of GRPC peer address to handle IPv6\r\n\r\n* Remove debug fmt","shortMessageHtmlLink":"Extend realip parsing of GRPC peer address to handle IPv6 (#692)"}},{"before":"f6f8eae3ffedcbdd208f210a6a28cb4d89525b7a","after":"220740bc30b1fb92c6a36f3ac3c248ad0c5cc53d","ref":"refs/heads/main","pushedAt":"2024-01-29T19:03:46.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"johanbrandhorst","name":"Johan Brandhorst-Satzkorn","path":"/johanbrandhorst","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6604151?s=80&v=4"},"commit":{"message":"Support retriable func condition (#687)\n\n* Support retriable func condition\r\n\r\n* Refactor WithCodes option","shortMessageHtmlLink":"Support retriable func condition (#687)"}},{"before":"a7768606198e56a6ac6e1a9bb9a9483cd97bc5eb","after":"f6f8eae3ffedcbdd208f210a6a28cb4d89525b7a","ref":"refs/heads/main","pushedAt":"2024-01-25T16:57:21.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"johanbrandhorst","name":"Johan Brandhorst-Satzkorn","path":"/johanbrandhorst","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6604151?s=80&v=4"},"commit":{"message":"Fix `InitializeMetrics` signature to allow use with `xds.GRPCServer` (#689)","shortMessageHtmlLink":"Fix InitializeMetrics signature to allow use with xds.GRPCServer (#…"}},{"before":"c29f793e8488fb1cf0c6ce853ffbc6ce0bec755e","after":"a7768606198e56a6ac6e1a9bb9a9483cd97bc5eb","ref":"refs/heads/main","pushedAt":"2024-01-16T01:18:12.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"johanbrandhorst","name":"Johan Brandhorst-Satzkorn","path":"/johanbrandhorst","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6604151?s=80&v=4"},"commit":{"message":"Update README.md (#688)\n\nFix typo","shortMessageHtmlLink":"Update README.md (#688)"}},{"before":"f35f04747c8d812281a0fb02d846f18dea045d4e","after":"c29f793e8488fb1cf0c6ce853ffbc6ce0bec755e","ref":"refs/heads/main","pushedAt":"2024-01-01T21:30:07.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"johanbrandhorst","name":"Johan Brandhorst-Satzkorn","path":"/johanbrandhorst","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6604151?s=80&v=4"},"commit":{"message":"protovalidate: add option to ignore certain message types (#684)\n\n* protovalidate: add option to ignore certain message types\r\n\r\n* address review comments\r\n\r\n* adjust stream handler\r\n\r\n---------\r\n\r\nCo-authored-by: Igor Tsiglyar ","shortMessageHtmlLink":"protovalidate: add option to ignore certain message types (#684)"}},{"before":"9e92fd5063c9cd61a08d6723aa7f2af0e73de07e","after":"f35f04747c8d812281a0fb02d846f18dea045d4e","ref":"refs/heads/main","pushedAt":"2023-12-13T05:03:02.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"johanbrandhorst","name":"Johan Brandhorst-Satzkorn","path":"/johanbrandhorst","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6604151?s=80&v=4"},"commit":{"message":"Middleware for determining the real ip of the client (#682)\n\n* feat: added realip middleware\r\n\r\n* refactor for netip\r\n\r\n* set proper case\r\n\r\n* update header values\r\n\r\n* force lowercase when checking header","shortMessageHtmlLink":"Middleware for determining the real ip of the client (#682)"}},{"before":"3ade00c067599e45664a46dabe922c8d32b32ddd","after":"9e92fd5063c9cd61a08d6723aa7f2af0e73de07e","ref":"refs/heads/main","pushedAt":"2023-11-20T18:37:41.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"johanbrandhorst","name":"Johan Brandhorst-Satzkorn","path":"/johanbrandhorst","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6604151?s=80&v=4"},"commit":{"message":"add doc for disabling log opts (#680)\n\nSigned-off-by: Coleen Iona Quadros ","shortMessageHtmlLink":"add doc for disabling log opts (#680)"}},{"before":"2f96db671f87045b33c0aaf271631e7a4eb67a36","after":null,"ref":"refs/heads/dependabot/go_modules/github.com/bufbuild/protovalidate-go-0.4.1","pushedAt":"2023-11-20T15:11:44.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"}},{"before":null,"after":"9e616a1dcef4d99f0497f1a5cdd78137ac97c434","ref":"refs/heads/dependabot/go_modules/github.com/bufbuild/protovalidate-go-0.4.2","pushedAt":"2023-11-20T15:11:37.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"},"commit":{"message":"Bump github.com/bufbuild/protovalidate-go from 0.2.1 to 0.4.2\n\nBumps [github.com/bufbuild/protovalidate-go](https://github.com/bufbuild/protovalidate-go) from 0.2.1 to 0.4.2.\n- [Release notes](https://github.com/bufbuild/protovalidate-go/releases)\n- [Commits](https://github.com/bufbuild/protovalidate-go/compare/v0.2.1...v0.4.2)\n\n---\nupdated-dependencies:\n- dependency-name: github.com/bufbuild/protovalidate-go\n dependency-type: direct:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"Bump github.com/bufbuild/protovalidate-go from 0.2.1 to 0.4.2"}},{"before":"a58486276de8bd068078e61e1cdf88b3de14237b","after":null,"ref":"refs/heads/dependabot/go_modules/buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go-1.31.0-20231106192134-1baebb0a1518.2","pushedAt":"2023-11-16T15:26:45.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"}},{"before":null,"after":"8028c27fb98749ecfedc2cbbb60447739dcfe0fe","ref":"refs/heads/dependabot/go_modules/buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go-1.31.0-20231115204500-e097f827e652.2","pushedAt":"2023-11-16T15:26:39.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"},"commit":{"message":"Bump buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go\n\n---\nupdated-dependencies:\n- dependency-name: buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go\n dependency-type: direct:production\n update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"Bump buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go"}},{"before":"08f99fefaef49784f808505b010ec3acbcf01c2a","after":null,"ref":"refs/heads/dependabot/go_modules/github.com/bufbuild/protovalidate-go-0.4.0","pushedAt":"2023-11-14T15:28:25.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"}},{"before":null,"after":"2f96db671f87045b33c0aaf271631e7a4eb67a36","ref":"refs/heads/dependabot/go_modules/github.com/bufbuild/protovalidate-go-0.4.1","pushedAt":"2023-11-14T15:28:18.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"},"commit":{"message":"Bump github.com/bufbuild/protovalidate-go from 0.2.1 to 0.4.1\n\nBumps [github.com/bufbuild/protovalidate-go](https://github.com/bufbuild/protovalidate-go) from 0.2.1 to 0.4.1.\n- [Release notes](https://github.com/bufbuild/protovalidate-go/releases)\n- [Commits](https://github.com/bufbuild/protovalidate-go/compare/v0.2.1...v0.4.1)\n\n---\nupdated-dependencies:\n- dependency-name: github.com/bufbuild/protovalidate-go\n dependency-type: direct:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"Bump github.com/bufbuild/protovalidate-go from 0.2.1 to 0.4.1"}},{"before":null,"after":"4022a259114b6507e90aa3a5ed929dc16c67259d","ref":"refs/heads/dependabot/go_modules/examples/go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc-0.46.0","pushedAt":"2023-11-12T16:11:16.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"},"commit":{"message":"Bump go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc\n\nBumps [go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc](https://github.com/open-telemetry/opentelemetry-go-contrib) from 0.40.0 to 0.46.0.\n- [Release notes](https://github.com/open-telemetry/opentelemetry-go-contrib/releases)\n- [Changelog](https://github.com/open-telemetry/opentelemetry-go-contrib/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/open-telemetry/opentelemetry-go-contrib/compare/zpages/v0.40.0...zpages/v0.46.0)\n\n---\nupdated-dependencies:\n- dependency-name: go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc\n dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"Bump go.opentelemetry.io/contrib/instrumentation/google.golang.org/gr…"}},{"before":"2b420d5c84e38b1f697620299a7ef1c7fc44e175","after":null,"ref":"refs/heads/dependabot/go_modules/golang.org/x/net-0.17.0","pushedAt":"2023-11-09T15:20:26.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"}},{"before":null,"after":"3717a1a06113158767e4b0d3a8df1b276bf4d099","ref":"refs/heads/dependabot/go_modules/golang.org/x/net-0.18.0","pushedAt":"2023-11-09T15:20:19.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"},"commit":{"message":"Bump golang.org/x/net from 0.14.0 to 0.18.0\n\nBumps [golang.org/x/net](https://github.com/golang/net) from 0.14.0 to 0.18.0.\n- [Commits](https://github.com/golang/net/compare/v0.14.0...v0.18.0)\n\n---\nupdated-dependencies:\n- dependency-name: golang.org/x/net\n dependency-type: direct:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"Bump golang.org/x/net from 0.14.0 to 0.18.0"}},{"before":"b03cfac8b58641f5d4637480409bee9f2b60fc23","after":null,"ref":"refs/heads/dependabot/go_modules/golang.org/x/oauth2-0.13.0","pushedAt":"2023-11-09T15:20:19.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"}},{"before":null,"after":"ba88b79b5cc54da77c63ddda9547bfeed6c373c6","ref":"refs/heads/dependabot/go_modules/golang.org/x/oauth2-0.14.0","pushedAt":"2023-11-09T15:20:13.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"},"commit":{"message":"Bump golang.org/x/oauth2 from 0.4.0 to 0.14.0\n\nBumps [golang.org/x/oauth2](https://github.com/golang/oauth2) from 0.4.0 to 0.14.0.\n- [Commits](https://github.com/golang/oauth2/compare/v0.4.0...v0.14.0)\n\n---\nupdated-dependencies:\n- dependency-name: golang.org/x/oauth2\n dependency-type: direct:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"Bump golang.org/x/oauth2 from 0.4.0 to 0.14.0"}},{"before":"56f6514fbc163e01cc018f1d7bf262efd3c0df8c","after":null,"ref":"refs/heads/dependabot/go_modules/buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go-1.31.0-20231030212536-12f9cba37c9d.2","pushedAt":"2023-11-07T15:22:24.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"}},{"before":null,"after":"a58486276de8bd068078e61e1cdf88b3de14237b","ref":"refs/heads/dependabot/go_modules/buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go-1.31.0-20231106192134-1baebb0a1518.2","pushedAt":"2023-11-07T15:22:18.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"},"commit":{"message":"Bump buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go\n\n---\nupdated-dependencies:\n- dependency-name: buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go\n dependency-type: direct:production\n update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"Bump buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go"}},{"before":"9a90441064d19b60b582eecaf35246d10e9a8835","after":"3ade00c067599e45664a46dabe922c8d32b32ddd","ref":"refs/heads/main","pushedAt":"2023-10-31T17:11:45.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"johanbrandhorst","name":"Johan Brandhorst-Satzkorn","path":"/johanbrandhorst","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6604151?s=80&v=4"},"commit":{"message":"adds custom durationFieldFunc to request/response log entries (#670)\n\nthe request and response log messages include a duration string,\r\nbut does not make use of the `durationFieldFunc` like other\r\nparts of the request lifecycle.\r\n\r\nThe `durationFieldFunc` function is useful when conducting log analysis\r\nwith log aggregator tools out there, because it normalizes the value\r\nto a number that can be filtered by or compared to. For example,\r\na GCP Log Explorer does not support converting log field types like\r\na duration to an integer, so you cannot run queries like \"give me\r\nall logs that took more than 50ms\" because it would be interpreted\r\nas a string comparison. This makes very tedious to audit application logs\r\nthat log API calls using this gRPC middleware.\r\n\r\nThe perhaps controversial part of this change is that request/response\r\nlogs have a different naming convention for the duration. I personally\r\ndon't find use for a different field name - grpc.time and grpc.time_ms\r\nwould seem expressive enough to support the 4 logged entries, but maybe\r\nI'm missing something here. I would suggest to rename those fields as well,\r\nbut I understand that may be a \"breaking change\", if we consider the log fields\r\na contract.","shortMessageHtmlLink":"adds custom durationFieldFunc to request/response log entries (#670)"}},{"before":"6acc5539b2971825b39b224f1ed632b62092a3c1","after":null,"ref":"refs/heads/dependabot/go_modules/github.com/bufbuild/protovalidate-go-0.3.4","pushedAt":"2023-10-31T15:47:31.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"}},{"before":"673b1dbd5e044ac934c3f6add39c181339dc1ac9","after":null,"ref":"refs/heads/dependabot/go_modules/buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go-1.31.0-20231017183020-0de7443d03cf.2","pushedAt":"2023-10-31T15:47:26.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEOcVWiQA","startCursor":null,"endCursor":null}},"title":"Activity · grpc-ecosystem/go-grpc-middleware"}