)]}'
{
  "commit": "e241fb53729be7d2d9532a98ba73d79e0c155fe8",
  "tree": "cc07ae9d8f7f40ac918caca956483c1a935145b0",
  "parents": [
    "85610b43e365ae09974cbf6ebce265aca0dd1867"
  ],
  "author": {
    "name": "Adithya Chakilam",
    "email": "achakilam@nvidia.com",
    "time": "Mon Sep 08 09:23:18 2025 -0500"
  },
  "committer": {
    "name": "Adithya Chakilam",
    "email": "achakilam@nvidia.com",
    "time": "Mon Sep 08 14:57:33 2025 -0500"
  },
  "message": "Share the threads/permits for soft maxes\n\n```\n[quota \"project-a\"]\n    softMaxStartPerUserForQueue \u003d 5 SSH-Interactive-Worker\n[quota \"project-b\"]\n    softMaxStartPerUserForQueue \u003d 10 SSH-Interactive-Worker\n```\n\nPreviously, for the above configuration, The computation of free threads\nwas buggy since each instance is not aware of the permits acquired by\nthe other quota. This results in config not being enforced correctly.\nFix this to only have single shared QueueStats object.\n\nChange-Id: I7e19bc4370c8fd30e158092f7b0d1f12e59fa5e2\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ebf2f8a56fe8dd66373c75ebac2a0f14cc270e6e",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/quota/QueueStats.java"
    },
    {
      "type": "modify",
      "old_id": "f70f24a3ec86c70f98bd36d5386f0bdba3af1508",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/quota/QuotaSection.java",
      "new_id": "a1be14b75a5bf3ce653f001b82030184fe86761c",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/quota/QuotaSection.java"
    },
    {
      "type": "modify",
      "old_id": "60d2d8425c05e142f01b7248aeddbc5d48570541",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/quota/SoftMaxPerUserForQueue.java",
      "new_id": "c2d623eb8fc6982d14652c4a4aad3c4830627615",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/quota/SoftMaxPerUserForQueue.java"
    },
    {
      "type": "modify",
      "old_id": "ab111387e3dc720c62c801f6b9ba9636c4bdfdeb",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/quota/TaskQuota.java",
      "new_id": "1e689a1fe989949fe5f5150ec3853e51ba15c2bd",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/quota/TaskQuota.java"
    },
    {
      "type": "modify",
      "old_id": "14f74acc1a7e9f9bb8dedb2a35531b744fad54f7",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/quota/TaskQuotaForTask.java",
      "new_id": "2d15abe0153e54e1851b00d13458f283498f7144",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/quota/TaskQuotaForTask.java"
    },
    {
      "type": "modify",
      "old_id": "69ef8bf7ede38b4b147d67d711046585be1526c6",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/quota/TaskQuotaForTaskForQueue.java",
      "new_id": "f8ae3cc30fe389f6f85ea43263593cade531ed14",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/quota/TaskQuotaForTaskForQueue.java"
    },
    {
      "type": "modify",
      "old_id": "eb64ae55a2f5d4fdc2dd58d34e206b2ed389606e",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/quota/TaskQuotaForTaskForQueueForUser.java",
      "new_id": "7582619e0c5c75a690bff28ffab22d1f7c445c15",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/quota/TaskQuotaForTaskForQueueForUser.java"
    },
    {
      "type": "modify",
      "old_id": "469441ddfc4da529a53bcf39124210c1392e6f42",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/quota/TaskQuotaKeys.java",
      "new_id": "1d840e3c3a75b7cf9573ee10796e7bca10099304",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/quota/TaskQuotaKeys.java"
    },
    {
      "type": "modify",
      "old_id": "311b3658369f7953d8a5f9b350243ebfba8c4268",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/quota/TaskQuotaPerUserForTaskForQueue.java",
      "new_id": "783045f583eaed6fe8ffb2f7417fe8b5055eb586",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/quota/TaskQuotaPerUserForTaskForQueue.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8a8bc94b222ce13ad48b52b465dad91867391198",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/quota/TaskQuotaWithPermits.java"
    },
    {
      "type": "modify",
      "old_id": "1b776d65da9375606e88c4acb6008e692673047b",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/quota/TaskQuotas.java",
      "new_id": "a4af2005fefa278baa45266c1c5e2d8cb2b081a9",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/quota/TaskQuotas.java"
    }
  ]
}
