{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":167429490,"defaultBranch":"master","name":"gubernator","ownerLogin":"mailgun","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2019-01-24T20:05:55.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/447686?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1713535627.0","currentOid":""},"activityList":{"items":[{"before":"32073cf8029afa511a11b30b99e4f85bd9f57a51","after":null,"ref":"refs/heads/dependabot/go_modules/google.golang.org/protobuf-1.33.0","pushedAt":"2024-04-19T14:07:07.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":"54f7c213725683cb999e3330fc31f06bb88eb565","after":null,"ref":"refs/heads/dependabot/go_modules/golang.org/x/net-0.23.0","pushedAt":"2024-04-19T14:06:59.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":"120f629ba890db8de2ffdf26b501c5c345e06476","after":"d3b62bb48d2d8fbd30c77dd654b84fcadc69a222","ref":"refs/heads/master","pushedAt":"2024-04-19T14:04:12.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Baliedge","name":"Shawn Poulson","path":"/Baliedge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92753637?s=80&v=4"},"commit":{"message":"Added new home notice to README.md (#229)","shortMessageHtmlLink":"Added new home notice to README.md (#229)"}},{"before":null,"after":"54f7c213725683cb999e3330fc31f06bb88eb565","ref":"refs/heads/dependabot/go_modules/golang.org/x/net-0.23.0","pushedAt":"2024-04-19T13:22:49.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.22.0 to 0.23.0\n\nBumps [golang.org/x/net](https://github.com/golang/net) from 0.22.0 to 0.23.0.\n- [Commits](https://github.com/golang/net/compare/v0.22.0...v0.23.0)\n\n---\nupdated-dependencies:\n- dependency-name: golang.org/x/net\n dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"Bump golang.org/x/net from 0.22.0 to 0.23.0"}},{"before":"0b2adf6622b918648b243d4bd16ec936067bd66d","after":null,"ref":"refs/heads/Baliedge/fix-global","pushedAt":"2024-03-19T13:50:15.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"Baliedge","name":"Shawn Poulson","path":"/Baliedge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92753637?s=80&v=4"}},{"before":"3982e503a47444572bae710506dfead13ffa33fa","after":"120f629ba890db8de2ffdf26b501c5c345e06476","ref":"refs/heads/master","pushedAt":"2024-03-19T13:27:47.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Baliedge","name":"Shawn Poulson","path":"/Baliedge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92753637?s=80&v=4"},"commit":{"message":"Update version to v2.4.0.","shortMessageHtmlLink":"Update version to v2.4.0."}},{"before":"63fd9ffb60f941fbc61dcc14a933eaf91eb68dfd","after":"3982e503a47444572bae710506dfead13ffa33fa","ref":"refs/heads/master","pushedAt":"2024-03-19T13:18:24.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Baliedge","name":"Shawn Poulson","path":"/Baliedge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92753637?s=80&v=4"},"commit":{"message":"MegaFix global behavior bugs. (#225)\n\n* Fix global behavior `ResetTime` bug.\r\n\r\nEvery call to `GetRateLimits` would reset the `ResetTime` and not the `Remaining` counter. This would cause counters to eventually deplete and never fully reset.\r\n\r\n* Refine request time propagation.\r\n\r\nRequest time is resolved at first call to `getLocalRateLimit()`, then is propagated across peer-to-peer for global behavior.\r\n\r\n* Fix race condition in global behavior.\r\n\r\nQueueUpdate() allowed for sending request/response when local ratelimits are updated. However, the order they get called to QueueUpdate() is not guaranteed to be chronological. This causes stale updates to propagate, causing lost hits.\r\nInstead, QueueUpdate() will only pass the request. The current ratelimit state will be retrieved immediately before propagation.\r\n\r\nRigorous functional tests added around global behavior.\r\n\r\n* Fix intermittent test error caused by `TestHealthCheck`.\r\n\r\n* Refactor global behavior and functional tests for stability.\r\n\r\n- Simplify passing of request time across layers.\r\n- Better handling of metrics in tests.\r\n- Better detection of global broadcasts, global updates, and idle.\r\n- Drop redundant metric `guberator_global_broadcast_counter`.\r\n- Fix metric `gubernator_global_queue_length` for global broadcast.\r\n- Add metric `gubernator_global_send_queue_length` for global send.\r\n\r\n* Backwards compatibility needed for upgrading.\r\n\r\n* Don't call `OnChange()` event from non-owner.\r\n\r\nNon-owners shouldn't be persisting rate limit state.\r\n\r\n* Simplify cache item expiration check.\r\n\r\n* Rename `RequestTime` to `CreatedAt` in protos.","shortMessageHtmlLink":"MegaFix global behavior bugs. (#225)"}},{"before":null,"after":"32073cf8029afa511a11b30b99e4f85bd9f57a51","ref":"refs/heads/dependabot/go_modules/google.golang.org/protobuf-1.33.0","pushedAt":"2024-03-13T23:36:25.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 google.golang.org/protobuf from 1.32.0 to 1.33.0\n\nBumps google.golang.org/protobuf from 1.32.0 to 1.33.0.\n\n---\nupdated-dependencies:\n- dependency-name: google.golang.org/protobuf\n dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"Bump google.golang.org/protobuf from 1.32.0 to 1.33.0"}},{"before":"5ce3bc1941d50f427942da98fe906087905d6553","after":"0b2adf6622b918648b243d4bd16ec936067bd66d","ref":"refs/heads/Baliedge/fix-global","pushedAt":"2024-03-13T14:57:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Baliedge","name":"Shawn Poulson","path":"/Baliedge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92753637?s=80&v=4"},"commit":{"message":"Revert optimization that won't work.","shortMessageHtmlLink":"Revert optimization that won't work."}},{"before":"d55016d2447eaac133c0a5f381fd988abcd5a97d","after":"5ce3bc1941d50f427942da98fe906087905d6553","ref":"refs/heads/Baliedge/fix-global","pushedAt":"2024-03-13T14:48:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Baliedge","name":"Shawn Poulson","path":"/Baliedge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92753637?s=80&v=4"},"commit":{"message":"Rename `RequestTime` to `CreatedAt` in protos.","shortMessageHtmlLink":"Rename RequestTime to CreatedAt in protos."}},{"before":"f51861d4d4cc14de3e33d48f0fa8f23396e11360","after":"d55016d2447eaac133c0a5f381fd988abcd5a97d","ref":"refs/heads/Baliedge/fix-global","pushedAt":"2024-03-13T14:24:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Baliedge","name":"Shawn Poulson","path":"/Baliedge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92753637?s=80&v=4"},"commit":{"message":"Simplify cache item expiration check.","shortMessageHtmlLink":"Simplify cache item expiration check."}},{"before":"5f137ad64c21e321fe5c9915d3263a1901b60ac2","after":"f51861d4d4cc14de3e33d48f0fa8f23396e11360","ref":"refs/heads/Baliedge/fix-global","pushedAt":"2024-03-12T00:09:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Baliedge","name":"Shawn Poulson","path":"/Baliedge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92753637?s=80&v=4"},"commit":{"message":"Don't call `OnChange()` event from non-owner.\n\nNon-owners shouldn't be persisting rate limit state.","shortMessageHtmlLink":"Don't call OnChange() event from non-owner."}},{"before":"517bf634e5af35ae57495e2c80fad332440731c7","after":"5f137ad64c21e321fe5c9915d3263a1901b60ac2","ref":"refs/heads/Baliedge/fix-global","pushedAt":"2024-03-11T23:38:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Baliedge","name":"Shawn Poulson","path":"/Baliedge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92753637?s=80&v=4"},"commit":{"message":"Changed mind. Instead of `calltype=\"local non-owner\"`, just don't increment a counter.","shortMessageHtmlLink":"Changed mind. Instead of calltype=\"local non-owner\", just don't inc…"}},{"before":"c0608d5a90e825d82fa8780edbc6d53b01edb205","after":"517bf634e5af35ae57495e2c80fad332440731c7","ref":"refs/heads/Baliedge/fix-global","pushedAt":"2024-03-11T23:34:03.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Baliedge","name":"Shawn Poulson","path":"/Baliedge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92753637?s=80&v=4"},"commit":{"message":"Metric `gubernator_getratelimit_counter` adds calltype value \"local non-owner\"\n\nBetter tracks the code path.\nCan exclude non-owner activity.\nCan get accurate total rate limit checks with query like `rate(gubernator_getratelimit_counter{calltype=\"local\"}[1m])`","shortMessageHtmlLink":"Metric gubernator_getratelimit_counter adds calltype value \"local n…"}},{"before":"2229596b52cda7c38077d0bbc80c8a07e0dde229","after":"c0608d5a90e825d82fa8780edbc6d53b01edb205","ref":"refs/heads/Baliedge/fix-global","pushedAt":"2024-03-11T23:16:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Baliedge","name":"Shawn Poulson","path":"/Baliedge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92753637?s=80&v=4"},"commit":{"message":"Fix for overlimit metric doublecounting on non-owner and owner.","shortMessageHtmlLink":"Fix for overlimit metric doublecounting on non-owner and owner."}},{"before":"47eede560ccf6f754921a2e78845f14381e3f5e9","after":"2229596b52cda7c38077d0bbc80c8a07e0dde229","ref":"refs/heads/Baliedge/fix-global","pushedAt":"2024-03-11T19:27:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Baliedge","name":"Shawn Poulson","path":"/Baliedge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92753637?s=80&v=4"},"commit":{"message":"Fix test.","shortMessageHtmlLink":"Fix test."}},{"before":"0fb2a335531f6b5a1f3e6b7d7f6c146bf52997af","after":"47eede560ccf6f754921a2e78845f14381e3f5e9","ref":"refs/heads/Baliedge/fix-global","pushedAt":"2024-03-11T18:56:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Baliedge","name":"Shawn Poulson","path":"/Baliedge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92753637?s=80&v=4"},"commit":{"message":"Fix compile error.","shortMessageHtmlLink":"Fix compile error."}},{"before":"cd7bbab89e71d58ad6341940a1b0a060954f376f","after":"0fb2a335531f6b5a1f3e6b7d7f6c146bf52997af","ref":"refs/heads/Baliedge/fix-global","pushedAt":"2024-03-11T18:45:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Baliedge","name":"Shawn Poulson","path":"/Baliedge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92753637?s=80&v=4"},"commit":{"message":"Backwards compatibility needed for upgrading.","shortMessageHtmlLink":"Backwards compatibility needed for upgrading."}},{"before":"d5c74d25ba611ca78c08e9a7b77ef019d20e9a7f","after":"cd7bbab89e71d58ad6341940a1b0a060954f376f","ref":"refs/heads/Baliedge/fix-global","pushedAt":"2024-03-11T18:09:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Baliedge","name":"Shawn Poulson","path":"/Baliedge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92753637?s=80&v=4"},"commit":{"message":"Fix flaky test `TestHealthCheck`.","shortMessageHtmlLink":"Fix flaky test TestHealthCheck."}},{"before":"65ee4fa143772ab24d2c4be007d002c615731048","after":"d5c74d25ba611ca78c08e9a7b77ef019d20e9a7f","ref":"refs/heads/Baliedge/fix-global","pushedAt":"2024-03-11T16:57:18.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Baliedge","name":"Shawn Poulson","path":"/Baliedge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92753637?s=80&v=4"},"commit":{"message":"Fix TestHealthCheck.","shortMessageHtmlLink":"Fix TestHealthCheck."}},{"before":"bd38ee691ca5687a1666c5aba9bf270953a11204","after":"65ee4fa143772ab24d2c4be007d002c615731048","ref":"refs/heads/Baliedge/fix-global","pushedAt":"2024-03-11T16:45:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Baliedge","name":"Shawn Poulson","path":"/Baliedge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92753637?s=80&v=4"},"commit":{"message":"Fix benchmark test errors.","shortMessageHtmlLink":"Fix benchmark test errors."}},{"before":"ea424420dd4447d9a3772076da6acb1bc7a9ec2b","after":"bd38ee691ca5687a1666c5aba9bf270953a11204","ref":"refs/heads/Baliedge/fix-global","pushedAt":"2024-03-11T16:09:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Baliedge","name":"Shawn Poulson","path":"/Baliedge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92753637?s=80&v=4"},"commit":{"message":"Fix tests.","shortMessageHtmlLink":"Fix tests."}},{"before":"7c67a321658eb7f7d8d4d7d1f62de308d589c55c","after":"ea424420dd4447d9a3772076da6acb1bc7a9ec2b","ref":"refs/heads/Baliedge/fix-global","pushedAt":"2024-03-11T15:38:55.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"Baliedge","name":"Shawn Poulson","path":"/Baliedge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92753637?s=80&v=4"},"commit":{"message":"Add back tests that were erroneously removed.","shortMessageHtmlLink":"Add back tests that were erroneously removed."}},{"before":"e2b8853c048c861c6fe5a3568cfe83f2b368680a","after":"7c67a321658eb7f7d8d4d7d1f62de308d589c55c","ref":"refs/heads/Baliedge/fix-global","pushedAt":"2024-03-11T15:22:47.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Baliedge","name":"Shawn Poulson","path":"/Baliedge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92753637?s=80&v=4"},"commit":{"message":"Fix lint errors.","shortMessageHtmlLink":"Fix lint errors."}},{"before":"cb3816a55eeca1b2447683513a25dd06ecb339c1","after":"e2b8853c048c861c6fe5a3568cfe83f2b368680a","ref":"refs/heads/Baliedge/fix-global","pushedAt":"2024-03-11T15:21:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Baliedge","name":"Shawn Poulson","path":"/Baliedge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92753637?s=80&v=4"},"commit":{"message":"Refactor global behavior and functional tests for stability.\n\n- Simplify passing of request time across layers.\n- Better handling of metrics in tests.\n- Better detection of global broadcasts, global updates, and idle.\n- Drop redundant metric `guberator_global_broadcast_counter`.\n- Fix metric `gubernator_global_queue_length` for global broadcast.\n- Add metric `gubernator_global_send_queue_length` for global send.","shortMessageHtmlLink":"Refactor global behavior and functional tests for stability."}},{"before":"38b0f795ad790a8d4416af6305b9af960966c993","after":"f00d4e23eba92e6d3fffd4a22aa8cb28a398ff88","ref":"refs/heads/Baliedge/global-tests","pushedAt":"2024-03-08T21:03:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Baliedge","name":"Shawn Poulson","path":"/Baliedge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92753637?s=80&v=4"},"commit":{"message":"Tidy code.","shortMessageHtmlLink":"Tidy code."}},{"before":"5fd6dadcaa6317bbce49a61a15bcd0988565272c","after":"38b0f795ad790a8d4416af6305b9af960966c993","ref":"refs/heads/Baliedge/global-tests","pushedAt":"2024-03-08T20:56:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Baliedge","name":"Shawn Poulson","path":"/Baliedge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92753637?s=80&v=4"},"commit":{"message":"Fix hit on non-owner peer changing status when Hits=0.\n\nIt should just return whatever status is cached.","shortMessageHtmlLink":"Fix hit on non-owner peer changing status when Hits=0."}},{"before":"432c84791c4b342e5ace6344faa9c0713b274683","after":"5fd6dadcaa6317bbce49a61a15bcd0988565272c","ref":"refs/heads/Baliedge/global-tests","pushedAt":"2024-03-08T19:14:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Baliedge","name":"Shawn Poulson","path":"/Baliedge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92753637?s=80&v=4"},"commit":{"message":"Tidy code.","shortMessageHtmlLink":"Tidy code."}},{"before":"fd28875c349c0de63dbb5c35fe0d6fb7437b7247","after":"432c84791c4b342e5ace6344faa9c0713b274683","ref":"refs/heads/Baliedge/global-tests","pushedAt":"2024-03-08T17:12:00.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Baliedge","name":"Shawn Poulson","path":"/Baliedge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92753637?s=80&v=4"},"commit":{"message":"Fix inconsistency in response status when calling a non-owner peer.","shortMessageHtmlLink":"Fix inconsistency in response status when calling a non-owner peer."}},{"before":"e1b13a5a0faabe0ff871cf4c2b6c270360baf33c","after":"fd28875c349c0de63dbb5c35fe0d6fb7437b7247","ref":"refs/heads/Baliedge/global-tests","pushedAt":"2024-03-07T15:01:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Baliedge","name":"Shawn Poulson","path":"/Baliedge","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/92753637?s=80&v=4"},"commit":{"message":"Add tests from PR219.","shortMessageHtmlLink":"Add tests from PR219."}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAENTuOGwA","startCursor":null,"endCursor":null}},"title":"Activity · mailgun/gubernator"}