)]}'
{
  "commit": "55243c642b69a9de5ee76540488cefd525199441",
  "tree": "bc3201b8cb3c3bef4534bcc3a5f7c12c2dc7235f",
  "parents": [
    "55b5dd6acad0538e23e55bfd7a1eefcbf756c6f3"
  ],
  "author": {
    "name": "Mark Bekhet",
    "email": "mark.bekhet@ericsson.com",
    "time": "Mon Mar 29 15:01:41 2021 -0400"
  },
  "committer": {
    "name": "Mark Bekhet",
    "email": "mark.bekhet@ericsson.com",
    "time": "Wed Apr 14 08:51:58 2021 -0400"
  },
  "message": "Introduce a configuration to define time lapse for rate limiter\n\nBefore this change, rate limiter was executed every hour. Sometimes, a\nsudden high memory demand on a short period of time happens caused by\nhigh number of clones and fetches. Also, the user gets blocked from\nfetching information due to reaching the limit per hour.\n\nThis change introduces an optional configurable field \"timelapse\". This\nfield defines a duration in minutes supported by the rate-limiter\nplugin. This helps address the potential problem of sudden high memory\ndemand by configuring the number of uploaded packs over smaller amount\nof time. If this field is not defined or is defined for a value higher\nthan or equal to 60, the default value of 60 minutes is established and\na warning message is logged.\n\nThis change also adapts the warnings provided by the rate limiter to\nreflect the time lapse of the plugin.\n\nBug: Issue 10302\nChange-Id: I5cdbb931d676c7630178d0b8ba0245e3c8b774a8\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "191a86accd06572f5e54e95ed5235cf36d45ceb1",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/ratelimiter/Module.java",
      "new_id": "c59c2fe9e60e34fcdc379c8acd7e10f917b07df8",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/ratelimiter/Module.java"
    },
    {
      "type": "rename",
      "old_id": "4f9e44c0c23b03b30a42429bf5e8663119b46f2f",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/ratelimiter/HourlyRateLimiter.java",
      "new_id": "203645d851901db6cdb33ea51487f1879ef6c4d8",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/ratelimiter/PeriodicRateLimiter.java",
      "score": 82
    },
    {
      "type": "modify",
      "old_id": "0d6e4e5ce8600e093ea22649d97471a0bb3d53d0",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/ratelimiter/RateLimitType.java",
      "new_id": "337508f1fda9a8fa875ceaefbb57081bf82c8249",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/ratelimiter/RateLimitType.java"
    },
    {
      "type": "rename",
      "old_id": "497917ead49e38bee3bd5a6338d4eb55ed2d87b6",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/ratelimiter/WarningHourlyRateLimiter.java",
      "new_id": "5ce2200a1cb0f3e62b01eede0489ec1319025b26",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/ratelimiter/WarningRateLimiter.java",
      "score": 86
    },
    {
      "type": "rename",
      "old_id": "d2b8b09e2709508245d19a633e7cd396ceb24f51",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/ratelimiter/WarningHourlyUnlimitedRateLimiter.java",
      "new_id": "f9e55b3ac3d6c949cde9a3a7078ee6851bc5f3b5",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/ratelimiter/WarningUnlimitedRateLimiter.java",
      "score": 83
    },
    {
      "type": "modify",
      "old_id": "3313b71e01f711d08abd5de9402400779394f98a",
      "old_mode": 33188,
      "old_path": "src/main/resources/Documentation/about.md",
      "new_id": "e62f6f81bceba0d4b8a657029904c03eb0d71047",
      "new_mode": 33188,
      "new_path": "src/main/resources/Documentation/about.md"
    },
    {
      "type": "modify",
      "old_id": "098f1e2a8fe0606e4b4c53faf1c5e92ad5f86b45",
      "old_mode": 33188,
      "old_path": "src/main/resources/Documentation/config.md",
      "new_id": "ac07f24da3058e44c12d1827b91343458b5517bb",
      "new_mode": 33188,
      "new_path": "src/main/resources/Documentation/config.md"
    },
    {
      "type": "rename",
      "old_id": "7040682f979e2792c646106596044272c49c6bd1",
      "old_mode": 33188,
      "old_path": "src/test/java/com/googlesource/gerrit/plugins/ratelimiter/HourlyRateLimiterTest.java",
      "new_id": "0343d6bd78246bda3569889247767ba16d67b3ea",
      "new_mode": 33188,
      "new_path": "src/test/java/com/googlesource/gerrit/plugins/ratelimiter/PeriodicRateLimiterTest.java",
      "score": 79
    },
    {
      "type": "modify",
      "old_id": "f421748e4009cf7e1512e23ce5f20b02c3b0295c",
      "old_mode": 33188,
      "old_path": "src/test/java/com/googlesource/gerrit/plugins/ratelimiter/RateLimitUploadPackIT.java",
      "new_id": "7b3200661d3d328fef6ec6cce56da77ef4b95efc",
      "new_mode": 33188,
      "new_path": "src/test/java/com/googlesource/gerrit/plugins/ratelimiter/RateLimitUploadPackIT.java"
    },
    {
      "type": "rename",
      "old_id": "7541aa10393a42c6e13b749bb1368732f0256bc7",
      "old_mode": 33188,
      "old_path": "src/test/java/com/googlesource/gerrit/plugins/ratelimiter/WarningHourlyRateLimiterTest.java",
      "new_id": "4a0162f609c753a1f07e1975e7cd4c63771dfb57",
      "new_mode": 33188,
      "new_path": "src/test/java/com/googlesource/gerrit/plugins/ratelimiter/WarningRateLimiterTest.java",
      "score": 77
    },
    {
      "type": "rename",
      "old_id": "f2abebf3a2d9da023931e9b75e157625a1d3dd34",
      "old_mode": 33188,
      "old_path": "src/test/java/com/googlesource/gerrit/plugins/ratelimiter/WarningHourlyUnlimitedRateLimiterTest.java",
      "new_id": "b402e77d2c0ed1a57eb7efec092f26c6eba8f24b",
      "new_mode": 33188,
      "new_path": "src/test/java/com/googlesource/gerrit/plugins/ratelimiter/WarningUnlimitedRateLimiterTest.java",
      "score": 79
    }
  ]
}
