)]}'
{
  "log": [
    {
      "commit": "85a13b8de2dfcdf13befa8c369092098a1c40b87",
      "tree": "8579887607c8f54919294bda53fed9ea77872ea4",
      "parents": [
        "376668f803489b970400fae72ca36f0089430399"
      ],
      "author": {
        "name": "Bhoomika Srinivas",
        "email": "bhoomikas@nvidia.com",
        "time": "Tue Mar 03 12:58:22 2026 +0530"
      },
      "committer": {
        "name": "Bhoomika Srinivas IN",
        "email": "bhoomikas@nvidia.com",
        "time": "Thu Mar 12 22:21:02 2026 -0700"
      },
      "message": "Set default createNotes to false\n\nDisabling automatic note creation by default addresses two primary\nconcerns:\n1. Admin Expectations: Most admins seeking a simple self-service\n   interface for service accounts find automatic note generation\n   unexpected and unnecessary for their workflow.\n2. Performance: Reducing metadata overhead prevents impact on push\n   times and Git operations (fetch/GC) on high-traffic, busy servers\n   where excessive Git Notes can inflate the object database.\n\nChange-Id: Ic1d449d926858c6add9972c79b5856bab46f9922\n"
    },
    {
      "commit": "376668f803489b970400fae72ca36f0089430399",
      "tree": "3b91827a63df80d60c515c7e1c6edbad0cad6483",
      "parents": [
        "0ddd9321d9165dd77ea22daade6a79b9fb43d3a8"
      ],
      "author": {
        "name": "Thomas Dräbing",
        "email": "thomas.draebing@sap.com",
        "time": "Mon Nov 24 15:58:58 2025 +0100"
      },
      "committer": {
        "name": "Thomas Dräbing",
        "email": "thomas.draebing@sap.com",
        "time": "Thu Nov 27 10:35:25 2025 +0100"
      },
      "message": "Fix capability of serviceuser owners to delete auth tokens\n\nChange-Id: I8d17ec694fca8dcd24b0a3087f85a5b3aae01ce9\n"
    },
    {
      "commit": "0ddd9321d9165dd77ea22daade6a79b9fb43d3a8",
      "tree": "75748b67b159e2e390520cd74c22fe9db108cb1d",
      "parents": [
        "aa682663eac873e271f1483b2fae0dbf5129b6e9"
      ],
      "author": {
        "name": "Thomas Dräbing",
        "email": "thomas.draebing@sap.com",
        "time": "Mon Nov 17 12:10:03 2025 +0100"
      },
      "committer": {
        "name": "Thomas Dräbing",
        "email": "thomas.draebing@sap.com",
        "time": "Mon Nov 17 12:17:38 2025 +0100"
      },
      "message": "Send auth token expiry notifications to serviceuser owners\n\nChange-Id: I7e6274e2ce5a139aa67f4812647648311d987eba\n"
    },
    {
      "commit": "aa682663eac873e271f1483b2fae0dbf5129b6e9",
      "tree": "cd02a19700d500a974960b036d326180b82ca903",
      "parents": [
        "4b32c17ce34baa29c3dcd12c123cc1e98d34cf54"
      ],
      "author": {
        "name": "Thomas Dräbing",
        "email": "thomas.draebing@sap.com",
        "time": "Mon Aug 18 15:36:41 2025 +0200"
      },
      "committer": {
        "name": "Thomas Dräbing",
        "email": "thomas.draebing@sap.com",
        "time": "Wed Sep 10 06:43:43 2025 -0700"
      },
      "message": "Send email notifications to owners on serviceuser owners\n\nChange-Id: I4ce32ef263a882f01d9af6803d90d62d1d35ed3c\n"
    },
    {
      "commit": "4b32c17ce34baa29c3dcd12c123cc1e98d34cf54",
      "tree": "b45f17edca4f7702251f49150135dff954eb0d03",
      "parents": [
        "21066a5766ca44d7b4482c72611f40fd0a0b6f1e"
      ],
      "author": {
        "name": "Thomas Dräbing",
        "email": "thomas.draebing@sap.com",
        "time": "Wed Aug 20 13:43:24 2025 +0200"
      },
      "committer": {
        "name": "Thomas Dräbing",
        "email": "thomas.draebing@sap.com",
        "time": "Wed Aug 20 13:43:24 2025 +0200"
      },
      "message": "Properly hide warning, when no expiration time has been set\n\nChange-Id: I2d92eacb7515c84f902a7317e1a80c009ae07ebe\n"
    },
    {
      "commit": "21066a5766ca44d7b4482c72611f40fd0a0b6f1e",
      "tree": "c7d680d9463b11d64c45b3be32e5fe261737c5e1",
      "parents": [
        "26d99f1bfd4a091517eea78c2ed3d9a2ee5e3827"
      ],
      "author": {
        "name": "Thomas Dräbing",
        "email": "thomas.draebing@sap.com",
        "time": "Wed Aug 20 12:31:25 2025 +0200"
      },
      "committer": {
        "name": "Thomas Dräbing",
        "email": "thomas.draebing@sap.com",
        "time": "Wed Aug 20 12:33:13 2025 +0200"
      },
      "message": "Adapt token management UI to work with updated Gerrit core\n\nChange-Id: Icc197ba13ea5681bc0376b33f72ba0628af23125\n"
    },
    {
      "commit": "26d99f1bfd4a091517eea78c2ed3d9a2ee5e3827",
      "tree": "89fba5d168319999fbb67b027395131dd5320f38",
      "parents": [
        "485b9e964caf7ee44df58a349b670c49090cc839"
      ],
      "author": {
        "name": "Thomas Dräbing",
        "email": "thomas.draebing@sap.com",
        "time": "Wed Aug 20 12:30:42 2025 +0200"
      },
      "committer": {
        "name": "Thomas Dräbing",
        "email": "thomas.draebing@sap.com",
        "time": "Wed Aug 20 12:33:11 2025 +0200"
      },
      "message": "Use API that allows to create tokens on behalf by non admins\n\nChange-Id: Ica78dc0d792a66bde06bd81622134b210d604ea1\n"
    },
    {
      "commit": "485b9e964caf7ee44df58a349b670c49090cc839",
      "tree": "5343b0bbc3ff1cbe25ec1e0cc725e89e2ec54520",
      "parents": [
        "a39c6348f7b1ff104f3cd6345caf2b9668743a32"
      ],
      "author": {
        "name": "Thomas Dräbing",
        "email": "thomas.draebing@sap.com",
        "time": "Mon Aug 11 10:14:55 2025 +0200"
      },
      "committer": {
        "name": "Thomas Dräbing",
        "email": "thomas.draebing@sap.com",
        "time": "Mon Aug 11 10:15:59 2025 +0200"
      },
      "message": "Adapt SSH panel to new GrAutogrowTextarea\n\nChange-Id: I316ef4e492dbce2dde070717ff291d5ee6f78aa7\n"
    },
    {
      "commit": "a39c6348f7b1ff104f3cd6345caf2b9668743a32",
      "tree": "4f42f4ca52970ddc186d87c0959538c7f7349eef",
      "parents": [
        "da7c515ab9691642388b53570fbd485c34285563"
      ],
      "author": {
        "name": "Thomas Dräbing",
        "email": "thomas.draebing@sap.com",
        "time": "Thu May 08 10:10:14 2025 +0200"
      },
      "committer": {
        "name": "Thomas Dräbing",
        "email": "thomas.draebing@sap.com",
        "time": "Thu Jul 24 09:12:22 2025 +0200"
      },
      "message": "Format with GJF 1.24.0\n\nChange-Id: Ibab98ea96f905706fc203d6b4d6d607790e36b63\n"
    },
    {
      "commit": "da7c515ab9691642388b53570fbd485c34285563",
      "tree": "453aaf6dfacba48b6ba274dfc1c9fde02afe4153",
      "parents": [
        "7711a0b9a5e1e4aa09e5bcdf81326b165a54dcb9"
      ],
      "author": {
        "name": "Thomas Dräbing",
        "email": "thomas.draebing@sap.com",
        "time": "Thu May 08 10:08:43 2025 +0200"
      },
      "committer": {
        "name": "Thomas Dräbing",
        "email": "thomas.draebing@sap.com",
        "time": "Thu Jul 24 09:12:22 2025 +0200"
      },
      "message": "Add support for auth tokens\n\nChange-Id: Ifa16a75bec09898656ede82a1bcba113d788f166\n"
    },
    {
      "commit": "7711a0b9a5e1e4aa09e5bcdf81326b165a54dcb9",
      "tree": "dbe848e2d4910cad16a8375b092cb647087a970f",
      "parents": [
        "c8c68dc9930117761b0910051e106e7916da7031"
      ],
      "author": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@sap.com",
        "time": "Wed Apr 30 15:50:01 2025 +0200"
      },
      "committer": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@sap.com",
        "time": "Wed Apr 30 15:53:08 2025 +0200"
      },
      "message": "Fix importing lit under rollup v3\n\nThe updated https://www.npmjs.com/package/@rollup/plugin-node-resolve\nplugin now looks inside package.json and uses that as a reference.\nIt looks at the exports field.\n\nSee I31f91e807b78d435631f5a0bdd358e5c75b04f3e\nand I9f400ebb021e64dffe8828be04844e840c71f0ec.\n\nChange-Id: I6a05766e6ce4a4f6f35cfd41003463c38e0fa66c\n"
    },
    {
      "commit": "c8c68dc9930117761b0910051e106e7916da7031",
      "tree": "9a7f992d65b4415e71d0d9f13c7b977cdf746611",
      "parents": [
        "8438a9464c3c244a0a4434bb80414fb214bdbf02",
        "f7f29796eaa39580cbbabaf6a01dd2ec6f9e8c2f"
      ],
      "author": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Wed Oct 30 14:22:32 2024 +0100"
      },
      "committer": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Wed Oct 30 14:31:17 2024 +0100"
      },
      "message": "Merge branch \u0027stable-3.9\u0027\n\n* stable-3.9:\n  Invalidate service user cache each time All-Projects is updated\n  Fix missing group add of serviceuser for ssh register command\n\nBug: Issue 372736304\nBug: Issue 367623920\nChange-Id: I13a1b29290632f6433659b62ff1bcdbd3aa3055a\n"
    },
    {
      "commit": "f7f29796eaa39580cbbabaf6a01dd2ec6f9e8c2f",
      "tree": "d18c749fc77bb98a435f40145626d7cafb5cf38a",
      "parents": [
        "b7adb9041819690d1700c2941b412a0286cd4fb6"
      ],
      "author": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Fri Oct 11 11:16:22 2024 +0200"
      },
      "committer": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Tue Oct 15 08:26:54 2024 +0200"
      },
      "message": "Invalidate service user cache each time All-Projects is updated\n\nTo make sure that the cache is fresh on all Gerrit instances\nin a multi-site setup.\n\nBug: Issue 372736304\nChange-Id: I20a177ab18b9efb46e9f92014721553103b75d37\n"
    },
    {
      "commit": "b7adb9041819690d1700c2941b412a0286cd4fb6",
      "tree": "b4c19b942cee949d19d2641197c422ec6aa42186",
      "parents": [
        "7d8f59710d14c5bfca9b5317c6ff89f3a491e2dc"
      ],
      "author": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Tue Sep 17 15:32:16 2024 +0200"
      },
      "committer": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Wed Sep 18 11:28:37 2024 +0200"
      },
      "message": "Fix missing group add of serviceuser for ssh register command\n\nYou can configure groups that a newly created service user\nshould be added to. Before this change using the ssh\nregister command would not add the serviceuser to any\ngroups.\n\nBug: Issue 367623920\nChange-Id: I9a5b2f6d444e46f5f7290cf4c2ea612f89d19f17\n"
    },
    {
      "commit": "8438a9464c3c244a0a4434bb80414fb214bdbf02",
      "tree": "b3bf7272629f99766d14676200a973ba8c317175",
      "parents": [
        "2bb32c3a3293c3df2783e8c107ef3f37f0ea29f7",
        "7d8f59710d14c5bfca9b5317c6ff89f3a491e2dc"
      ],
      "author": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Wed Sep 11 12:36:58 2024 +0200"
      },
      "committer": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Wed Sep 11 12:36:58 2024 +0200"
      },
      "message": "Merge branch \u0027stable-3.9\u0027\n\n* stable-3.9:\n  Fix frontend endpoint call for http token generation\n\nChange-Id: I419351288e69d7b32518f8217d2c16a29b48cd3c\n"
    },
    {
      "commit": "7d8f59710d14c5bfca9b5317c6ff89f3a491e2dc",
      "tree": "9b1d7636419c2e373bec33820dcff4e8779f291c",
      "parents": [
        "3d93d64fd89aaed1ae145ebaf6ac0928005f545b"
      ],
      "author": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Wed Sep 11 10:27:54 2024 +0200"
      },
      "committer": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Wed Sep 11 10:28:16 2024 +0200"
      },
      "message": "Fix frontend endpoint call for http token generation\n\nDuring the migration of this plugin to Lit. The plugin\nendpoint for generating http token was accidentally replaced\nwith the gerrit core version of the endpoint. The core\nendpoint works for admins but not for non-admins.\n\nChange-Id: I9cba3afe571b4899fa2c6094ac631e71eb483b9f\n"
    },
    {
      "commit": "2bb32c3a3293c3df2783e8c107ef3f37f0ea29f7",
      "tree": "30b56a957b22af517c9390c3353037d81b6c5aa6",
      "parents": [
        "35ba86b2127889462bb627c1dcdf32f4313b3aad"
      ],
      "author": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Mon Jul 22 16:56:03 2024 +0200"
      },
      "committer": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Wed Jul 24 17:13:33 2024 +0200"
      },
      "message": "Remove the requirement of setting a ssh key during serviceuser creation\n\nYou may not want use ssh with your serviceuser and if you do\nyou can always add the ssh key afterwards.\n\nChange-Id: Ice70be870dc6811ab80b5f49b878e19ade85b64d\n"
    },
    {
      "commit": "35ba86b2127889462bb627c1dcdf32f4313b3aad",
      "tree": "f8230c5f62e4883fc8e998933de31bfbfa5d22fa",
      "parents": [
        "541bf15b9725cd51e58de912b158f10aac7a9573",
        "3d93d64fd89aaed1ae145ebaf6ac0928005f545b"
      ],
      "author": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Fri Jul 19 11:27:05 2024 +0200"
      },
      "committer": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Fri Jul 19 11:32:39 2024 +0200"
      },
      "message": "Merge branch \u0027stable-3.9\u0027\n\n* stable-3.9:\n  Fix logic for email address text field\n  Make username column show usernames instead of full names\n  Fix another link for context path users\n  Fix anchor element for createNotesAsync in config doc\n  Make serviceuser work with Gerrit setups with context paths\n\nSolves: bug 350779993\nChange-Id: Ie2de27a4b1b7ee9e35d4fd4bb58873207c98fc28\n"
    },
    {
      "commit": "3d93d64fd89aaed1ae145ebaf6ac0928005f545b",
      "tree": "bd647fd083729e33891fa3858c5eef5507aac73e",
      "parents": [
        "98ad09e8bafd2005d51b95e7a3484f69cc3fa165"
      ],
      "author": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Wed Jul 17 17:28:33 2024 +0200"
      },
      "committer": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Thu Jul 18 11:28:41 2024 +0200"
      },
      "message": "Fix logic for email address text field\n\n* Update the state of the button for every change to the\nemail in the textfield so it is disabled as soon as the\nemail is not valid or new anymore.\n* Make empty string the default value of the textfield email\ninstead of undefined if serviceuser has no email set.\n* Make empty string a valid email if serviceuser already\nhas an email set. To make it possible to remove email from\nserviceuser.\n\nChange-Id: I1cc5ae58d97db64af58ac95e895cffe11efe967d\n"
    },
    {
      "commit": "98ad09e8bafd2005d51b95e7a3484f69cc3fa165",
      "tree": "9119e4dc4185f290d15b2244ee3eba88d9907570",
      "parents": [
        "722616fe6a296315d56ed663880f427ceb2310bd"
      ],
      "author": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Tue Jul 16 16:59:11 2024 +0200"
      },
      "committer": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Wed Jul 17 11:58:45 2024 +0200"
      },
      "message": "Make username column show usernames instead of full names\n\nThe backend removes the usernames of the SeviceUserInfo\nobjects but the keys of the map that the backend return\nare usernames, so they can be used instead.\n\nChange-Id: I196965959e401bf7068db381a39788301f4efb26\n"
    },
    {
      "commit": "722616fe6a296315d56ed663880f427ceb2310bd",
      "tree": "862b9fd9b2fce6fc1a46f76c429aef65830a6c48",
      "parents": [
        "688cfa2a253a85950650ec4391a71e4c28f0e9c5"
      ],
      "author": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Mon Jul 15 16:28:49 2024 +0200"
      },
      "committer": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Tue Jul 16 10:04:29 2024 +0200"
      },
      "message": "Fix another link for context path users\n\nWhen making the plugin work with context paths I missed\nthat there was a link to the service users list from the\nleft hand side menu when browsing repo/groups, so I missed\nto fix that part. This is now remedied.\n\nI could not as easily get the context path from the\nplugin.ts file so I changed the approach. For consistency\nI changed the other parts as well.\n\nSolves: bug 350779993\nRelease-Notes: Make serviceuser plugin work with context paths\nChange-Id: I6dfd2de529932c59c28aadea485de5195bcbeff3\n"
    },
    {
      "commit": "688cfa2a253a85950650ec4391a71e4c28f0e9c5",
      "tree": "cb07a467fea292a081546a313c30a45d1e1de09d",
      "parents": [
        "32b6672279415b7be6d63de3a62926622a69ff6d"
      ],
      "author": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Thu Jul 04 11:28:29 2024 +0200"
      },
      "committer": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Thu Jul 04 11:32:25 2024 +0200"
      },
      "message": "Fix anchor element for createNotesAsync in config doc\n\nRelease-Notes: skip\nChange-Id: Ibf0205bbee62f52f34b09b02adf62dfa047da3d7\n"
    },
    {
      "commit": "32b6672279415b7be6d63de3a62926622a69ff6d",
      "tree": "3cf0de1d01b3f00b36f30a3b948c788f86c58390",
      "parents": [
        "b2942496f6c06205b0a92a0d99ad9d29dca9ff4e"
      ],
      "author": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Wed Jul 03 11:58:39 2024 +0200"
      },
      "committer": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Wed Jul 03 13:41:18 2024 +0200"
      },
      "message": "Make serviceuser work with Gerrit setups with context paths\n\nSolves: bug 350779993\nRelease-Notes: Make serviceuser plugin work with context paths\nChange-Id: I1a5e9f9db82eee44035fb8300de011d9568ef178\n"
    },
    {
      "commit": "541bf15b9725cd51e58de912b158f10aac7a9573",
      "tree": "ce66d1c2d6fa9e11c87e023bebf84b647c049728",
      "parents": [
        "5dc94503c03d06cb59b3522ab0d02582385b5564"
      ],
      "author": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@sap.com",
        "time": "Thu Mar 14 23:35:25 2024 +0100"
      },
      "committer": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@sap.com",
        "time": "Thu Mar 14 23:35:25 2024 +0100"
      },
      "message": "Use new VersionedConfigFile to replace ProjectLevelConfig.Bare\n\nPlugins can use the new VersionedConfigFile introduced in Gerrit core\nto read/write a config file stored in git.\n\nChange-Id: Ide582b4404952924632f534ac02ede9a5361a0f1\n"
    },
    {
      "commit": "5dc94503c03d06cb59b3522ab0d02582385b5564",
      "tree": "40210390798c5739aa46c83da25fb5893f417e43",
      "parents": [
        "b2942496f6c06205b0a92a0d99ad9d29dca9ff4e"
      ],
      "author": {
        "name": "Thomas Dräbing",
        "email": "thomas.draebing@sap.com",
        "time": "Tue Jan 09 13:01:08 2024 +0100"
      },
      "committer": {
        "name": "Thomas Dräbing",
        "email": "thomas.draebing@sap.com",
        "time": "Tue Jan 09 13:01:08 2024 +0100"
      },
      "message": "Enable MutableGuiceModule errorprone pattern and fix/suppress issues\n\nSee https://errorprone.info/bugpattern/MutableGuiceModule\n\nChange-Id: I6aef65b6a8e27c75302da6d6ee6ff29192e0b4b5\n"
    },
    {
      "commit": "b2942496f6c06205b0a92a0d99ad9d29dca9ff4e",
      "tree": "b732c6794648b4fdf6f450c2ef47e2f6a543d615",
      "parents": [
        "6acb3c17937cae47f6bada6735fdc847ee2bc66a"
      ],
      "author": {
        "name": "Thomas Dräbing",
        "email": "thomas.draebing@sap.com",
        "time": "Mon Dec 18 15:05:32 2023 +0100"
      },
      "committer": {
        "name": "Thomas Dräbing",
        "email": "thomas.draebing@sap.com",
        "time": "Mon Dec 18 15:08:01 2023 +0100"
      },
      "message": "Fix promise chaining when loading serviceuser details screen\n\nSometimes generating a HTTP password could seem to be stuck. In such\ncases the request was never sent because the pluginRestApi object was\nnull. This happened, because the relevant permission check was done\ntoo late due to improper promise chaining.\n\nChange-Id: I620525f520c62271cfc2009c477d8f2f07ade75a\n"
    },
    {
      "commit": "6acb3c17937cae47f6bada6735fdc847ee2bc66a",
      "tree": "6f1f5bdc3f9caa6683980183bc7ba24660bd9ec6",
      "parents": [
        "f6fe392db99a58fa07a3de340de26ea85111bd0e"
      ],
      "author": {
        "name": "Thomas Dräbing",
        "email": "thomas.draebing@sap.com",
        "time": "Fri Nov 10 13:57:07 2023 +0100"
      },
      "committer": {
        "name": "Thomas Dräbing",
        "email": "thomas.draebing@sap.com",
        "time": "Fri Nov 10 14:30:38 2023 +0100"
      },
      "message": "Convert UI to use Typescript and Lit\n\nChange-Id: I67217f360022d8443424982708ba3276dffa7177\n"
    },
    {
      "commit": "f6fe392db99a58fa07a3de340de26ea85111bd0e",
      "tree": "ce4e61a91a882f4cd5b9eb788d12bad67c1a94c2",
      "parents": [
        "b0c2b4684a5030cb38b6ac869e9256b4cea186d3",
        "56466327b773fa266d3a1371cbf244b7a0082b20"
      ],
      "author": {
        "name": "Saša Živkov",
        "email": "sasa.zivkov@sap.com",
        "time": "Thu Aug 03 10:03:09 2023 +0200"
      },
      "committer": {
        "name": "Saša Živkov",
        "email": "sasa.zivkov@sap.com",
        "time": "Thu Aug 03 10:03:09 2023 +0200"
      },
      "message": "Merge stable-3.6 into master\n\nChange-Id: I2b322fc6d3ab08b4c937bed9ebbc0eb7d969c49f\n"
    },
    {
      "commit": "56466327b773fa266d3a1371cbf244b7a0082b20",
      "tree": "97ef10bbe98c26b1dd5dbd901bfedfa5932a4cef",
      "parents": [
        "7c489de939c2e3de3b1565564618de8d628a158e"
      ],
      "author": {
        "name": "Saša Živkov",
        "email": "sasa.zivkov@sap.com",
        "time": "Fri Jul 28 16:30:03 2023 +0200"
      },
      "committer": {
        "name": "Saša Živkov",
        "email": "sasa.zivkov@sap.com",
        "time": "Fri Jul 28 17:05:34 2023 +0200"
      },
      "message": "Fix commit validation and add unit tests\n\nThe ValidateServiceUserCommits was broken in many ways. In this [1]\nchange the else clause was mistakenly removed. After [1], even if there\nare active owners the creator status is still checked and when the\ncreator is inactive the validation fails.\n\nHowever, even before [1] the code was broken: if the owner group was set\nand all members were inactive then validation would immediately fail\nwithout checking the creator status. So even if the creator was\nactive the validation would fail in this case.\n\nThis change makes the code easier to read by checking the positive cases\nfirst and exiting early, as soon as it detects that the validation will\npass.\n\nAdd unit tests to cover all possible combinations of the creator and\nowner group status.\n\n[1] https://gerrit-review.googlesource.com/c/plugins/serviceuser/+/108158/3/src/main/java/com/googlesource/gerrit/plugins/serviceuser/ValidateServiceUserCommits.java\n\nChange-Id: I3e86eadb4caea85170184566f475a81856b628d2\n"
    },
    {
      "commit": "b0c2b4684a5030cb38b6ac869e9256b4cea186d3",
      "tree": "3fef6dc0f900e9251380b05264caa8c46cce8c2f",
      "parents": [
        "232fb34364c1c58f273a8ecd9224f5a78bdfc501"
      ],
      "author": {
        "name": "Frank Borden",
        "email": "frankborden@google.com",
        "time": "Wed May 24 14:49:44 2023 +0200"
      },
      "committer": {
        "name": "Frank Borden",
        "email": "frankborden@google.com",
        "time": "Wed May 24 15:01:58 2023 +0200"
      },
      "message": "Add lock file\n\nChange-Id: I578cfc2ad804e9673eae1eb72044b3236c8c23ca\n"
    },
    {
      "commit": "232fb34364c1c58f273a8ecd9224f5a78bdfc501",
      "tree": "b9588ce5f4ada42c31aac45b33c09f42190724bf",
      "parents": [
        "2169a7aa53f8482cca43cbc4363be47a71600465",
        "7c489de939c2e3de3b1565564618de8d628a158e"
      ],
      "author": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Tue Nov 15 13:56:31 2022 +0000"
      },
      "committer": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Tue Nov 15 13:56:31 2022 +0000"
      },
      "message": "Merge branch \u0027stable-3.6\u0027\n\n* stable-3.6:\n  Use com.google.gerrit.entities.InternalGroup\n\nChange-Id: I655d9e9d976c6e246ea8f34ea40123d430384a47\n"
    },
    {
      "commit": "7c489de939c2e3de3b1565564618de8d628a158e",
      "tree": "e8120c25579d75c4bade28de8fcce7dd0c8c29e3",
      "parents": [
        "640edfda13e98af9eea9f09800e7f94b4e5339da",
        "833ad5839e2e5fe7b94ddccd2fef619a9d11f2ef"
      ],
      "author": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Tue Nov 15 13:55:45 2022 +0000"
      },
      "committer": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Tue Nov 15 13:55:45 2022 +0000"
      },
      "message": "Merge branch \u0027stable-3.5\u0027 into stable-3.6\n\n* stable-3.5:\n  Use com.google.gerrit.entities.InternalGroup\n\nChange-Id: I7e055c261e25dd5716b5519b1b9fa6b678d7e48b\n"
    },
    {
      "commit": "833ad5839e2e5fe7b94ddccd2fef619a9d11f2ef",
      "tree": "c3b87d90ed8d06a54349093405f47570f5d115ef",
      "parents": [
        "e4bed8ae47dd1c831085bfda55be0cc5abaeff65",
        "aa8375265dcdc0f9c314d5d83b516b9106e0fb49"
      ],
      "author": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Tue Nov 15 13:54:45 2022 +0000"
      },
      "committer": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Tue Nov 15 13:54:45 2022 +0000"
      },
      "message": "Merge branch \u0027stable-3.4\u0027 into stable-3.5\n\n* stable-3.4:\n  Use com.google.gerrit.entities.InternalGroup\n\nChange-Id: I36cbd203f3b14a416f2d982ebb0f919d0051f77d\n"
    },
    {
      "commit": "aa8375265dcdc0f9c314d5d83b516b9106e0fb49",
      "tree": "c3b87d90ed8d06a54349093405f47570f5d115ef",
      "parents": [
        "e4bed8ae47dd1c831085bfda55be0cc5abaeff65"
      ],
      "author": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Thu Oct 06 10:26:32 2022 +0200"
      },
      "committer": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto@gmail.com",
        "time": "Tue Nov 08 17:16:36 2022 +0000"
      },
      "message": "Use com.google.gerrit.entities.InternalGroup\n\nChange-Id: I1eaa0840a46153f5ef0d1dce5b518d34152e173e\n(cherry picked from commit 0ba1cfadc461310fbdc644babaa60541401b6c5c)\n"
    },
    {
      "commit": "2169a7aa53f8482cca43cbc4363be47a71600465",
      "tree": "b9588ce5f4ada42c31aac45b33c09f42190724bf",
      "parents": [
        "232990e3132ffdc1288fdcfc71e4ef011c97cae1",
        "640edfda13e98af9eea9f09800e7f94b4e5339da"
      ],
      "author": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Mon Oct 10 12:52:32 2022 +0200"
      },
      "committer": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Mon Oct 10 12:52:32 2022 +0200"
      },
      "message": "Merge branch \u0027stable-3.6\u0027\n\n* stable-3.6:\n  Format with GJF 1.7\n  Fix creating top menu entry for serviceuser plugin\n  Fix headers in Service User UI\n  Fix capability check in UI\n  Use com.google.gerrit.entities.InternalGroup\n\nChange-Id: I5ce51a5bce82912663e8220ba97c5f6786615d55\n"
    },
    {
      "commit": "640edfda13e98af9eea9f09800e7f94b4e5339da",
      "tree": "e8120c25579d75c4bade28de8fcce7dd0c8c29e3",
      "parents": [
        "0045ee44012a7ebbef09a0e40858b825a0dd5e82"
      ],
      "author": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Thu Oct 06 13:41:06 2022 +0200"
      },
      "committer": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@sap.com",
        "time": "Fri Oct 07 14:11:00 2022 +0200"
      },
      "message": "Format with GJF 1.7\n\nChange-Id: I8abb812ac5596d4298765539b0eed75bd80e65bd\n"
    },
    {
      "commit": "0045ee44012a7ebbef09a0e40858b825a0dd5e82",
      "tree": "2036564f1818abb1e364c447b687e966ef162795",
      "parents": [
        "ef22eabf93b421d34cebc47be5c4a8eeb316b22b"
      ],
      "author": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Thu Oct 06 12:05:28 2022 +0200"
      },
      "committer": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@sap.com",
        "time": "Fri Oct 07 14:10:42 2022 +0200"
      },
      "message": "Fix creating top menu entry for serviceuser plugin\n\nChange-Id: Iefadde34cbe2d7e1899dd9afe63e7a4cd6beaa70\n"
    },
    {
      "commit": "ef22eabf93b421d34cebc47be5c4a8eeb316b22b",
      "tree": "a09d336419605e9073c3da5f8c44dbe02ae1a8d1",
      "parents": [
        "63845b86471b998d49ec0f06a8e8c9476100cc58"
      ],
      "author": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Thu Oct 06 12:01:42 2022 +0200"
      },
      "committer": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Thu Oct 06 13:36:17 2022 +0200"
      },
      "message": "Fix headers in Service User UI\n\nChange-Id: I8f7254d2a11d25b2238126c882b0891ef5bbb7d1\n"
    },
    {
      "commit": "63845b86471b998d49ec0f06a8e8c9476100cc58",
      "tree": "0f1239d273552863636b0c471b01f20ff330c557",
      "parents": [
        "0ba1cfadc461310fbdc644babaa60541401b6c5c"
      ],
      "author": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Thu Oct 06 10:25:42 2022 +0200"
      },
      "committer": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Thu Oct 06 13:36:17 2022 +0200"
      },
      "message": "Fix capability check in UI\n\nChange-Id: I665beae2cf871e871275e15c5451b26e70b19950\n"
    },
    {
      "commit": "0ba1cfadc461310fbdc644babaa60541401b6c5c",
      "tree": "c3b87d90ed8d06a54349093405f47570f5d115ef",
      "parents": [
        "e4bed8ae47dd1c831085bfda55be0cc5abaeff65"
      ],
      "author": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Thu Oct 06 10:26:32 2022 +0200"
      },
      "committer": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Thu Oct 06 13:36:17 2022 +0200"
      },
      "message": "Use com.google.gerrit.entities.InternalGroup\n\nChange-Id: I1eaa0840a46153f5ef0d1dce5b518d34152e173e\n"
    },
    {
      "commit": "232990e3132ffdc1288fdcfc71e4ef011c97cae1",
      "tree": "48af5368a25001334a76aa0633542eb877230f41",
      "parents": [
        "6a3c13b4c8b68803e368a77ff63b425cf4c31692"
      ],
      "author": {
        "name": "Alon Bar-Lev",
        "email": "alon.barlev@gmail.com",
        "time": "Fri Sep 09 19:34:39 2022 +0300"
      },
      "committer": {
        "name": "Alon Bar-Lev",
        "email": "alon.barlev@gmail.com",
        "time": "Fri Sep 09 19:34:39 2022 +0300"
      },
      "message": "Support SSH key delete for owner\n\nCall the Gerrit delete on-behalf similar to the way AddSshKey is\nworking so that owners may delete ssh keys if allowSsh is set.\n\nChange-Id: Icecfb61cf329fe1bca95758cff241e308ea60e6d\nSigned-off-by: Alon Bar-Lev \u003calon.barlev@gmail.com\u003e\n"
    },
    {
      "commit": "6a3c13b4c8b68803e368a77ff63b425cf4c31692",
      "tree": "d3358f6e2fc79f8740df8de3b10f0cdd92049810",
      "parents": [
        "037c9a18ab3f702fc22bd4bb9c24bc65eeb416c9"
      ],
      "author": {
        "name": "Alon Bar-Lev",
        "email": "alon.barlev@gmail.com",
        "time": "Thu Aug 25 17:39:15 2022 +0300"
      },
      "committer": {
        "name": "Alon Bar-Lev",
        "email": "alon.barlev@gmail.com",
        "time": "Thu Aug 25 17:44:59 2022 +0300"
      },
      "message": "replace deprecated page object in frontend\n\npage object is no longer global, direct old use of window.location.href\nis the new method.\n\nChange-Id: Idb47cf9fd5eb776ee0be33949bec816fad45ba35\n"
    },
    {
      "commit": "037c9a18ab3f702fc22bd4bb9c24bc65eeb416c9",
      "tree": "d3db3ba7858b2f4dcf8aa10618cb2e2be9193d45",
      "parents": [
        "e1155ba15718aca540c53d8569ca69a1f7d1082c",
        "7bfc33d7beda8d1570fa94b8e58027b32d48c757"
      ],
      "author": {
        "name": "Thomas Dräbing",
        "email": "thomas.draebing@sap.com",
        "time": "Mon Aug 22 07:04:26 2022 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 22 07:04:26 2022 +0000"
      },
      "message": "Merge \"Allow all users to list service users\""
    },
    {
      "commit": "7bfc33d7beda8d1570fa94b8e58027b32d48c757",
      "tree": "d6910fccb7a459f5a37f72e0a4b1ecf2f34c4ea3",
      "parents": [
        "365e84880e20727465eaf82a46d98fd274e0f4cf"
      ],
      "author": {
        "name": "Alon Bar-Lev",
        "email": "alon.barlev@gmail.com",
        "time": "Sun Aug 14 23:04:07 2022 +0300"
      },
      "committer": {
        "name": "Alon Bar-Lev",
        "email": "alon.barlev@gmail.com",
        "time": "Mon Aug 15 09:50:03 2022 +0300"
      },
      "message": "Allow all users to list service users\n\nCurrently only users who can create service user may see the list of\nservice users while the owner of the users may manage them.\n\nThe list shows only owned users so there is no reason why the owners\ncannot use the user interface in order to manage the service users.\n\nChange-Id: I03b5137055a416de7ff345a6e34c7653aa25940f\nSigned-off-by: Alon Bar-Lev \u003calon.barlev@gmail.com\u003e\n"
    },
    {
      "commit": "e1155ba15718aca540c53d8569ca69a1f7d1082c",
      "tree": "7aa35dff7fd41f1b8cb591b6a59b6ac21f948121",
      "parents": [
        "365e84880e20727465eaf82a46d98fd274e0f4cf"
      ],
      "author": {
        "name": "Alon Bar-Lev",
        "email": "alon.barlev@gmail.com",
        "time": "Mon Aug 15 01:08:53 2022 +0300"
      },
      "committer": {
        "name": "Alon Bar-Lev",
        "email": "alon.barlev@gmail.com",
        "time": "Mon Aug 15 01:55:56 2022 +0300"
      },
      "message": "Clear and enable ssh input after add\n\nCurrently after successfully adding SSH key the user interface is\ndisabled, user requires to refresh in order to add additional key.\n\nThis patch clears the SSH textarea and enables the buttons on success.\n\nChange-Id: I990a2fee04e85d9fc10ae15396cdb3943530d641\nSigned-off-by: Alon Bar-Lev \u003calon.barlev@gmail.com\u003e\n"
    },
    {
      "commit": "365e84880e20727465eaf82a46d98fd274e0f4cf",
      "tree": "e6a5e89b5d9f27f45873ac21e5608d7e2ab9d83f",
      "parents": [
        "92a663cee10b51fce3c93624ec97499d38a8ada7"
      ],
      "author": {
        "name": "Alon Bar-Lev",
        "email": "alon.barlev@gmail.com",
        "time": "Tue Jul 26 13:35:13 2022 +0300"
      },
      "committer": {
        "name": "Alon Bar-Lev",
        "email": "alon.barlev@gmail.com",
        "time": "Tue Jul 26 16:00:31 2022 +0300"
      },
      "message": "Do not fail if user is missing username attribute\n\nThe serviceuser plugin provides a commit validator that checking each\npushed commit, whether the committer is a serviceuser.\n\nIf the validation fails the push fails, even if the user is no\nserviceuser.\n\nBacktrace:\n\n  [SSH git-receive-pack xxx] WARN  com.google.gerrit.server.git.\n  MultiProgressMonitor : MultiProgressMonitor worker did not call end()\n  before returning\n  [SSH git-receive-pack xxx] ERROR com.google.gerrit.server.git.receive.\n  AsyncReceiveCommits : error while processing push\n  java.util.concurrent.ExecutionException: java.util.NoSuchElementException:\n  No value present\n\n  Caused by: java.util.NoSuchElementException: No value present\n          at java.base/java.util.Optional.get(Optional.java:148)\n          at com.googlesource.gerrit.plugins.serviceuser.GetServiceUser.\n             apply(GetServiceUser.java:61)\n          at com.googlesource.gerrit.plugins.serviceuser.ServiceUserResolver.\n             getAsServiceUser(ServiceUserResolver.java:91)\n          at com.googlesource.gerrit.plugins.serviceuser.ValidateServiceUserCommits.\n             onCommitReceived(ValidateServiceUserCommits.java:52)\n\nUsers without username attribute are valid in case of OAuth and other\nproviders until user once set them.\n\nThis change ignores users that are missing username attribute.\n\nChange-Id: I505edc7689ab0e9bd8adee42508badf9bdcec867\nSigned-off-by: Alon Bar-Lev \u003calon.barlev@gmail.com\u003e\n"
    },
    {
      "commit": "92a663cee10b51fce3c93624ec97499d38a8ada7",
      "tree": "6a6b795cb705059c351e6daafe744bdab0323df3",
      "parents": [
        "1abe11e3cc5b32fc9a30bed4ded3a2aa5378446b",
        "e4bed8ae47dd1c831085bfda55be0cc5abaeff65"
      ],
      "author": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Fri Oct 29 10:29:19 2021 +0200"
      },
      "committer": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Fri Oct 29 10:29:19 2021 +0200"
      },
      "message": "Merge branch \u0027stable-3.3\u0027\n\n* branch \u0027stable-3.3\u0027:\n  Upgrade bazlets to latest stable-3.1 to build with 3.1.12 API\n  Use username from notedb in serviceuser.db\n  Upgrade bazlets to latest stable-3.1 to build with 3.1.11 API\n\nChange-Id: Idd35ba419e2d0e873092cb664918595ed8f7e350\n"
    },
    {
      "commit": "e4bed8ae47dd1c831085bfda55be0cc5abaeff65",
      "tree": "d226b24859e99407f0e21f589ae7662123839dbe",
      "parents": [
        "e67074c0161776c63b265dd0ac3c7ef3c1b1e68c",
        "9261a8d8112498a4223741585c1bd8fecf350b59"
      ],
      "author": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Fri Oct 29 10:25:06 2021 +0200"
      },
      "committer": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Fri Oct 29 10:25:06 2021 +0200"
      },
      "message": "Merge branch \u0027stable-3.2\u0027 into stable-3.3\n\n* stable-3.2:\n  Upgrade bazlets to latest stable-3.1 to build with 3.1.12 API\n  Use username from notedb in serviceuser.db\n  Upgrade bazlets to latest stable-3.1 to build with 3.1.11 API\n\nChange-Id: Ia046a448890d5e8220fb67144e00c284bd7d62ed\n"
    },
    {
      "commit": "9261a8d8112498a4223741585c1bd8fecf350b59",
      "tree": "a770d976daa757b9d763ec1b3bb412ce58a0966b",
      "parents": [
        "7151ad8bc14b4a07ba1223a6b31b7326fa402e97",
        "87be2df1db66c3ce519ab68e2469c09d7c20182e"
      ],
      "author": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Thu Oct 28 15:10:45 2021 +0200"
      },
      "committer": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Thu Oct 28 15:10:45 2021 +0200"
      },
      "message": "Merge branch \u0027stable-3.1\u0027 into stable-3.2\n\n* stable-3.1:\n  Upgrade bazlets to latest stable-3.1 to build with 3.1.12 API\n  Use username from notedb in serviceuser.db\n  Upgrade bazlets to latest stable-3.1 to build with 3.1.11 API\n\nChange-Id: Id179a6b1f1778c8f6a99fd78d6a08b5456763b34\n"
    },
    {
      "commit": "1abe11e3cc5b32fc9a30bed4ded3a2aa5378446b",
      "tree": "0027c3441ae937c79947cf76cf42115b876f47a1",
      "parents": [
        "e8aed08631e3a8797afa7e176f92944548a96360"
      ],
      "author": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Mon Oct 18 16:54:31 2021 +0200"
      },
      "committer": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Thu Oct 28 14:49:15 2021 +0200"
      },
      "message": "Add option to allow to set custom HTTP passwords\n\nIt was only possible for administrators to set custom passwords for\nserviceusers. However, there might be a legitimate reason for owners\nof a serviceuser to do so, instead of only generating a password.\n\nThis change adds an option that allows serviceuser owners to set a\ncustom HTTP password. This was made optional, since allowing this\nmight not be compliant with all security standards.\n\nChange-Id: Id674fcbe312f7d912790e0b7fecaa9fd093a085b\n"
    },
    {
      "commit": "e8aed08631e3a8797afa7e176f92944548a96360",
      "tree": "87c0265da9397a9a684326698d9bfd3d76ee4fe8",
      "parents": [
        "cf0818bd0c870d9e64b8e1aa4395f61b80c39bf4"
      ],
      "author": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Mon Oct 18 16:58:42 2021 +0200"
      },
      "committer": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Thu Oct 28 14:47:44 2021 +0200"
      },
      "message": "Format with GJF 1.7\n\nChange-Id: I46868677aa7d7e5b0edd4f31f5f4f4424327f610\n"
    },
    {
      "commit": "87be2df1db66c3ce519ab68e2469c09d7c20182e",
      "tree": "a3690b292f050907a19ec98b92ab17aceb57b14e",
      "parents": [
        "c71da60c6e18b352275bde5414c4c8ca43151904",
        "be6e441a40e9f3af5fb4d0f71f3984007cf24cd3"
      ],
      "author": {
        "name": "Saša Živkov",
        "email": "zivkov@gmail.com",
        "time": "Thu Oct 28 12:30:29 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 28 12:30:29 2021 +0000"
      },
      "message": "Merge \"Use username from notedb in serviceuser.db\" into stable-3.1"
    },
    {
      "commit": "cf0818bd0c870d9e64b8e1aa4395f61b80c39bf4",
      "tree": "09e06b03967fc2af75188671a4337f54de95ebdf",
      "parents": [
        "61c88293ed2008dd84cb0008160cb07192db6260"
      ],
      "author": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Mon Oct 18 10:39:07 2021 +0200"
      },
      "committer": {
        "name": "Saša Živkov",
        "email": "zivkov@gmail.com",
        "time": "Thu Oct 28 10:06:33 2021 +0000"
      },
      "message": "Fix header styling\n\nChange-Id: I86e1cb077323fa37163d6eac84b8b7a838da0768\n"
    },
    {
      "commit": "61c88293ed2008dd84cb0008160cb07192db6260",
      "tree": "178f5945a4c3132860264c22a72056cbafd4c8c7",
      "parents": [
        "fc390f725a02f5389c5cda1142f7d6cd0ab7be99"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Wed Apr 28 18:05:55 2021 +0200"
      },
      "committer": {
        "name": "Saša Živkov",
        "email": "zivkov@gmail.com",
        "time": "Thu Oct 28 10:06:24 2021 +0000"
      },
      "message": "Bazel: Migrate to gerrit_js_bundle rule\n\nChange-Id: Ie706f0db155a8d79d463f06e47b30fb6b8692782\n"
    },
    {
      "commit": "fc390f725a02f5389c5cda1142f7d6cd0ab7be99",
      "tree": "16a18dac2f56362035a7f62b371e5a61427287f1",
      "parents": [
        "bab7226c2a389dd8c4fb4b5b7db1ae234325a543",
        "e67074c0161776c63b265dd0ac3c7ef3c1b1e68c"
      ],
      "author": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Wed Oct 13 13:54:10 2021 +0200"
      },
      "committer": {
        "name": "Saša Živkov",
        "email": "sasa.zivkov@sap.com",
        "time": "Thu Oct 28 12:05:16 2021 +0200"
      },
      "message": "Merge branch \u0027stable-3.3\u0027\n\n* stable-3.3:\n  Format build file using buildifier\n  Fix \"Authentication required\" in serviceuser plugin\n  Log internal errors when validating service user\n  Migrate UI to Polymer 3\n\nChange-Id: Ib2e34f28abc514fe54b007c54e6005c48f15104b\n"
    },
    {
      "commit": "e67074c0161776c63b265dd0ac3c7ef3c1b1e68c",
      "tree": "a1de5e8842c8a2d5dea166b6566669560ffad89e",
      "parents": [
        "6b489c47bebcf02f9d681ba6a56a5cc73e18230b",
        "7151ad8bc14b4a07ba1223a6b31b7326fa402e97"
      ],
      "author": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Fri Sep 03 13:37:18 2021 +0200"
      },
      "committer": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Fri Sep 03 14:17:21 2021 +0200"
      },
      "message": "Merge branch \u0027stable-3.2\u0027 into stable-3.3\n\n* stable-3.2:\n  Format build file using buildifier\n  Fix \"Authentication required\" in serviceuser plugin\n  Log internal errors when validating service user\n  Migrate UI to Polymer 3\n\nChange-Id: I2e36fcb6fb7f72867f1fcc245dea9d31b0abe3a1\n"
    },
    {
      "commit": "7151ad8bc14b4a07ba1223a6b31b7326fa402e97",
      "tree": "a93b08ef883c88ba78aad8433d470a313064a080",
      "parents": [
        "68781066fd2f98e13010c13ef793847e9079cfaf"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Wed Apr 28 08:08:01 2021 +0200"
      },
      "committer": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Wed Apr 28 08:08:01 2021 +0200"
      },
      "message": "Format build file using buildifier\n\nChange-Id: I27db7410af7e0467dc4b8411df0cfb031369725d\n"
    },
    {
      "commit": "68781066fd2f98e13010c13ef793847e9079cfaf",
      "tree": "629f1c01ee1b19cc1c20b3e515b19e8f058dcc7d",
      "parents": [
        "4e4e2997853bcdd5a69d23411a7a3814a98df4cc",
        "0f3fa15e76ccef704eaf6aeb215b286921fa9679"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david.ostrovsky@gmail.com",
        "time": "Wed Apr 28 06:01:56 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 28 06:01:56 2021 +0000"
      },
      "message": "Merge \"Migrate UI to Polymer 3\" into stable-3.2"
    },
    {
      "commit": "bab7226c2a389dd8c4fb4b5b7db1ae234325a543",
      "tree": "1d466272935ec85c67466371338025d9ba6f8325",
      "parents": [
        "d37b0daec9fcfcb647f45ededb88e156bab16de7"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Mon Apr 12 09:06:37 2021 +0200"
      },
      "committer": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Mon Apr 12 09:07:50 2021 +0200"
      },
      "message": "Adapt to changes in Gerrit core\n\nIn Ia177bc8cfd6 InternalGroup was moved to the entities package.\n\nChange-Id: I4707ac273f9090096493d50e0ca1427c6494df58\n"
    },
    {
      "commit": "d37b0daec9fcfcb647f45ededb88e156bab16de7",
      "tree": "8232dd452ce5c056d61a2ca377c804cdef1c5268",
      "parents": [
        "9dd2dcfc50680bd50ac49ec5ee0f1555a297177d",
        "a9dff2f6c340785486b8813550c030cb69ffdf57"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david.ostrovsky@gmail.com",
        "time": "Mon Apr 12 07:03:34 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 12 07:03:34 2021 +0000"
      },
      "message": "Merge \"Merge branch \u0027stable-3.3\u0027\""
    },
    {
      "commit": "c71da60c6e18b352275bde5414c4c8ca43151904",
      "tree": "8332083235c483862f408932dc79bf9771771ece",
      "parents": [
        "5fb7bae0a3940ad59567a0829cc876580c80d6c7"
      ],
      "author": {
        "name": "Marco Miller",
        "email": "marco.miller@ericsson.com",
        "time": "Mon Mar 22 13:51:28 2021 -0400"
      },
      "committer": {
        "name": "Marco Miller",
        "email": "marco.miller@ericsson.com",
        "time": "Mon Mar 22 13:51:28 2021 -0400"
      },
      "message": "Upgrade bazlets to latest stable-3.1 to build with 3.1.12 API\n\nChange-Id: I0e500dd7c3d403a88e149eff9f2d1668576f1d0a\n"
    },
    {
      "commit": "be6e441a40e9f3af5fb4d0f71f3984007cf24cd3",
      "tree": "d89855f07cbccf5c5265f058c76d51e0c537cfff",
      "parents": [
        "5fb7bae0a3940ad59567a0829cc876580c80d6c7"
      ],
      "author": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Wed Mar 17 08:02:56 2021 +0100"
      },
      "committer": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Wed Mar 17 08:02:56 2021 +0100"
      },
      "message": "Use username from notedb in serviceuser.db\n\nWith auth.userNameToLowerCase set, serviceusers were not listed\ncorrectly in the UI, since the capitalization in serviceuser.db\nwas different to the one in notedb.\n\nChange-Id: I52f51777f3306c293e0a914b8815e69c86220d48\n"
    },
    {
      "commit": "4e4e2997853bcdd5a69d23411a7a3814a98df4cc",
      "tree": "ccb325c919879787123065f60a9b1eb0b03521a0",
      "parents": [
        "a0e068d48110eaca5b7928c83bfac85d37c0c293"
      ],
      "author": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@sap.com",
        "time": "Mon Mar 08 14:49:59 2021 +0100"
      },
      "committer": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@sap.com",
        "time": "Mon Mar 08 14:52:07 2021 +0100"
      },
      "message": "Fix \"Authentication required\" in serviceuser plugin\n\nThis error occurred when serviceuser plugin tried to parse a\nGroupsCollection via public REST API of the core when\nValidateServiceUserCommits tried to resolve the committer as a service\nuser.\n\nBug: Issue 14193\nChange-Id: Idb9ba5bcbd38cd5c81cc90731397b75290b31ea7\n"
    },
    {
      "commit": "a0e068d48110eaca5b7928c83bfac85d37c0c293",
      "tree": "138b66b1983dc8621a78c9c0f60033a9cdb19ced",
      "parents": [
        "613763cb6439e338d5a1a23d26e508b278075993"
      ],
      "author": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@sap.com",
        "time": "Mon Mar 08 14:40:29 2021 +0100"
      },
      "committer": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@sap.com",
        "time": "Mon Mar 08 14:52:06 2021 +0100"
      },
      "message": "Log internal errors when validating service user\n\nBug: Issue 14193\nChange-Id: If237f45e52cdfade964f5eea4b0849a8b49856ad\n"
    },
    {
      "commit": "a9dff2f6c340785486b8813550c030cb69ffdf57",
      "tree": "8232dd452ce5c056d61a2ca377c804cdef1c5268",
      "parents": [
        "643d6d755a97360cf323fc1d2a3c51e0f069cbe8",
        "6b489c47bebcf02f9d681ba6a56a5cc73e18230b"
      ],
      "author": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@sap.com",
        "time": "Tue Mar 02 15:11:09 2021 +0100"
      },
      "committer": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@sap.com",
        "time": "Tue Mar 02 15:11:09 2021 +0100"
      },
      "message": "Merge branch \u0027stable-3.3\u0027\n\n* stable-3.3:\n  Ensure in-memory model matches state committed to All-Projects\n  Fix formatting of documentation\n  Remove unsused variable\n  Allow blocking of usernames using wildcards and regex\n  Use MetaDataUpdate.Server instead of MetaDataUpdate.User in cache loader\n  Add command to register existing user as service user\n  Cache the service user db\n  Load ProjectLevelConfig directly\n  Remove standalone build mode\n  Remove unnecessary public qualifier from GetConfig.ConfigInfo\n  Fix errorprone errors\n  Define Provider\u003cProjectLevelConfig.Bare\u003e, reduce code repetition\n  Stop using deprecated JGit API getAllRefs\n  Make compatible with Gerrit stable-3.3 branch\n  Upgrade bazlets to latest stable-3.2 to build with 3.2.5.1 API\n  Upgrade bazlets to latest stable-3.1 to build with 3.1.10 API\n  Bump Bazel version to 3.7.0\n  Upgrade bazlets to latest stable-3.0 to build with 3.0.13 API\n  Bump Bazel version to 3.5.0\n\nChange-Id: Iff000a965e1f3ff31880116c8f3748b01b5fbc30\n"
    },
    {
      "commit": "6b489c47bebcf02f9d681ba6a56a5cc73e18230b",
      "tree": "8232dd452ce5c056d61a2ca377c804cdef1c5268",
      "parents": [
        "be128f6dd7ba567952dfb1c12a123b6f183fb633",
        "613763cb6439e338d5a1a23d26e508b278075993"
      ],
      "author": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@sap.com",
        "time": "Tue Mar 02 14:03:12 2021 +0100"
      },
      "committer": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@sap.com",
        "time": "Tue Mar 02 14:23:53 2021 +0100"
      },
      "message": "Merge branch \u0027stable-3.2\u0027 into stable-3.3\n\n* stable-3.2:\n  Ensure in-memory model matches state committed to All-Projects\n\nChange-Id: I0d778129348f59b9979ad9a72188c1f4e2bbabe9\n"
    },
    {
      "commit": "613763cb6439e338d5a1a23d26e508b278075993",
      "tree": "191f14cd1138474708c93b1164fea0003736888c",
      "parents": [
        "d48b057c31a97bfc58f4f163418463c81813c136"
      ],
      "author": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@sap.com",
        "time": "Mon Mar 01 17:26:33 2021 +0100"
      },
      "committer": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@sap.com",
        "time": "Mon Mar 01 17:26:33 2021 +0100"
      },
      "message": "Ensure in-memory model matches state committed to All-Projects\n\nEvict the All-Projects project cache entry after committing changes\nto All-Projects in order to ensure the in-memory model and committed\nstate always match.\n\nIf commit() fails we observed that the in-memory model and the commit\nstate may diverge which has the effect that a user will see a new\nservice user entry in the UI which disappears when the service user\nplugin is reloaded or the All-Projects project cache entry is evicted\nfor another reason.\n\nChange-Id: Iab01a178bd2e9e90fc491f7c1132c161f39dc631\n"
    },
    {
      "commit": "be128f6dd7ba567952dfb1c12a123b6f183fb633",
      "tree": "50c04ae06e678383b1692fcad0926c93b8fb2695",
      "parents": [
        "b4401f4f7dda53348381fe864f3b057f207102fb",
        "d48b057c31a97bfc58f4f163418463c81813c136"
      ],
      "author": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Wed Feb 24 07:44:16 2021 +0100"
      },
      "committer": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Wed Feb 24 08:41:26 2021 +0100"
      },
      "message": "Merge branch \u0027stable-3.2\u0027 into stable-3.3\n\n* stable-3.2:\n  Fix formatting of documentation\n  Remove unsused variable\n  Allow blocking of usernames using wildcards and regex\n  Add command to register existing user as service user\n\nChange-Id: Ib9dfe4cac48acefd85a103a7241c2abbc9c2f675\n"
    },
    {
      "commit": "d48b057c31a97bfc58f4f163418463c81813c136",
      "tree": "a90f4ca256aba3d4748cdb34d54845a9c300d7a7",
      "parents": [
        "18eb3978cccf783618be8a1d6128a89d95d607c3",
        "b25f29acb8de1e04a23595d55154871502c06677"
      ],
      "author": {
        "name": "Thomas Dräbing",
        "email": "thomas.draebing@sap.com",
        "time": "Mon Feb 22 09:47:43 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 22 09:47:43 2021 +0000"
      },
      "message": "Merge \"Remove unsused variable\" into stable-3.2"
    },
    {
      "commit": "18eb3978cccf783618be8a1d6128a89d95d607c3",
      "tree": "c504bff97c03fabeacfa4e04545c9afecb2438da",
      "parents": [
        "bb71e21cc05b8d82dfcf188ab6a989bfc48440a9"
      ],
      "author": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Fri Feb 19 08:23:38 2021 +0100"
      },
      "committer": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Fri Feb 19 08:23:38 2021 +0100"
      },
      "message": "Fix formatting of documentation\n\nChange-Id: I079062823eb8116c272b6148695f901dc3f5473b\n"
    },
    {
      "commit": "b25f29acb8de1e04a23595d55154871502c06677",
      "tree": "fbc6896fd5d913b3995a53398dccfce167651550",
      "parents": [
        "bb71e21cc05b8d82dfcf188ab6a989bfc48440a9"
      ],
      "author": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Tue Feb 16 14:38:37 2021 +0100"
      },
      "committer": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Tue Feb 16 14:38:37 2021 +0100"
      },
      "message": "Remove unsused variable\n\nChange-Id: I1a8749aeadbad948decb15b9a591fdb034222ea0\n"
    },
    {
      "commit": "bb71e21cc05b8d82dfcf188ab6a989bfc48440a9",
      "tree": "7bfcd11ab9abbc44b2a8762663039b61eebbea1f",
      "parents": [
        "0be2467f1c4b8261a23e083f7f686f62d3aae0e2"
      ],
      "author": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Fri Feb 12 10:51:36 2021 +0100"
      },
      "committer": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Tue Feb 16 07:19:03 2021 +0100"
      },
      "message": "Allow blocking of usernames using wildcards and regex\n\nSo far, only usernames matching exactly a configured string could be\nblocked from being used for a service user. This could be tedious.\n\nNow, next to exact matching, a wildcard at the end of the block\ndefinition can be used, as well as regex, if the pattern string\nstarts with \u0027^\u0027.\n\nChange-Id: Idd668efc1fccf2dce009d1ebaca7079486b7c4ea\n"
    },
    {
      "commit": "b4401f4f7dda53348381fe864f3b057f207102fb",
      "tree": "0bd394842ff5fba0a787fe6dc9e5240613de3eb7",
      "parents": [
        "cfeeddf0a7e5c02ee51126722cf34d165db99a9a"
      ],
      "author": {
        "name": "Saša Živkov",
        "email": "sasa.zivkov@sap.com",
        "time": "Mon Feb 15 14:39:29 2021 +0100"
      },
      "committer": {
        "name": "Saša Živkov",
        "email": "sasa.zivkov@sap.com",
        "time": "Mon Feb 15 14:39:29 2021 +0100"
      },
      "message": "Use MetaDataUpdate.Server instead of MetaDataUpdate.User in cache loader\n\nCache loading may be done in a different thread and we may not have the\ncurrent user defined for that thread. We also do not need the current\nuser when loading the serviceuser.db.\n\nChange-Id: I5659dae7a38c6ec75053953ffe892307a8fd0fde\n"
    },
    {
      "commit": "0be2467f1c4b8261a23e083f7f686f62d3aae0e2",
      "tree": "776fed723f772364a9780f8f882d11b5e548d768",
      "parents": [
        "2ac76b5d6855ba8f2813237e6499ec7394180c43"
      ],
      "author": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Fri Feb 12 09:28:08 2021 +0100"
      },
      "committer": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Mon Feb 15 14:37:51 2021 +0100"
      },
      "message": "Add command to register existing user as service user\n\nBefore installing the serviceuser plugin technical users might already\nexist, e.g. in LDAP or in Gerrit itself. It might be desirable to\nregister those users as service users to avoid having multiple account\ntypes for the same purpose.\n\nThis change adds a SSH command that allows to register an existing\nuser as a serviceuser by adding the serviceuser specific data to the\nserviceuser.db file in the All-Projects repository.\n\nTo be able to execute this command, the caller has to either be an\nadministrator or be the user that should be registered as a service\nuser and have the \u0027create serviceuser\u0027 capability. This was done to\nprevent users from registering other users, which they don\u0027t own, as\nserviceusers, which would allow them to basically get all access rights\nthe serviceuser has.\n\nThe command allows for setting the creator manually and to also set\nthe owner group.\n\nChange-Id: I447bc702565d2836ef12072fd5656be343428cf3\n"
    },
    {
      "commit": "cfeeddf0a7e5c02ee51126722cf34d165db99a9a",
      "tree": "38f96f21ce3f48265a25f0f65da53e9b814bf134",
      "parents": [
        "f1a1f57e8ab9b84fd3593c53fec2bbf315867f4c"
      ],
      "author": {
        "name": "Saša Živkov",
        "email": "sasa.zivkov@sap.com",
        "time": "Fri Feb 05 17:52:00 2021 +0100"
      },
      "committer": {
        "name": "Saša Živkov",
        "email": "sasa.zivkov@sap.com",
        "time": "Mon Feb 08 10:06:31 2021 +0100"
      },
      "message": "Cache the service user db\n\nThis both improves performance and reduces code repetition.\n\nChange-Id: I12c502670bf30e94eebde3fed976b7ff89ca5ca6\n"
    },
    {
      "commit": "f1a1f57e8ab9b84fd3593c53fec2bbf315867f4c",
      "tree": "8079627b7f08b3f7d3efbea201e0426531b854be",
      "parents": [
        "b8f116e0ead39920b775065552d0bf66ced06584"
      ],
      "author": {
        "name": "Francois Ferrand",
        "email": "thetypz@gmail.com",
        "time": "Wed Feb 03 16:05:44 2021 +0100"
      },
      "committer": {
        "name": "Francois Ferrand",
        "email": "thetypz@gmail.com",
        "time": "Fri Feb 05 19:14:56 2021 +0100"
      },
      "message": "Load ProjectLevelConfig directly\n\nCache introduced in [1] (in 3.3.1) prevents using getAllProjects().getConfig(...)\nfrom Gerrit Core to read serviceuser db file.\n\nTo overcome this, we need to read config directly, bypassing the cache.\n\n[1] https://gerrit-review.googlesource.com/c/gerrit/+/275992\n\nChange-Id: I9b4b1e66cf8e2b41059997bb53ebeeaba7ee3ea3\n"
    },
    {
      "commit": "5fb7bae0a3940ad59567a0829cc876580c80d6c7",
      "tree": "fe92ec792730322b2f5a9bb6096c143e17baf3c1",
      "parents": [
        "baffa30bfd53e0a454add0d48eaedf180fb570e4"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "jcentkowski@digital.ai",
        "time": "Wed Jan 13 08:38:22 2021 +0100"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "jcentkowski@digital.ai",
        "time": "Wed Jan 13 08:38:22 2021 +0100"
      },
      "message": "Upgrade bazlets to latest stable-3.1 to build with 3.1.11 API\n\nChange-Id: I139e1f6e9e998248ca686043d4d2635826222452\n"
    },
    {
      "commit": "9dd2dcfc50680bd50ac49ec5ee0f1555a297177d",
      "tree": "8265a9de49759bc8bc4fdb14463c429fb7db5a98",
      "parents": [
        "643d6d755a97360cf323fc1d2a3c51e0f069cbe8",
        "b8f116e0ead39920b775065552d0bf66ced06584"
      ],
      "author": {
        "name": "Saša Živkov",
        "email": "sasa.zivkov@sap.com",
        "time": "Fri Jan 08 22:11:53 2021 +0100"
      },
      "committer": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Fri Jan 08 22:12:35 2021 +0100"
      },
      "message": "Merge branch \u0027stable-3.3\u0027\n\n* stable-3.3:\n  Remove standalone build mode\n  Remove unnecessary public qualifier from GetConfig.ConfigInfo\n  Fix errorprone errors\n  Define Provider\u003cProjectLevelConfig.Bare\u003e, reduce code repetition\n  Stop using deprecated JGit API getAllRefs\n  Make compatible with Gerrit stable-3.3 branch\n  Upgrade bazlets to latest stable-3.2 to build with 3.2.5.1 API\n  Upgrade bazlets to latest stable-3.1 to build with 3.1.10 API\n  Bump Bazel version to 3.7.0\n  Upgrade bazlets to latest stable-3.0 to build with 3.0.13 API\n  Bump Bazel version to 3.5.0\n\nChange-Id: Icc5a7f9f0e8b0a7d3af60c640e184f98947a3b86\n"
    },
    {
      "commit": "b8f116e0ead39920b775065552d0bf66ced06584",
      "tree": "8265a9de49759bc8bc4fdb14463c429fb7db5a98",
      "parents": [
        "7490e731067cd849b59ccc78c9cc371c41a5c8ac",
        "2ac76b5d6855ba8f2813237e6499ec7394180c43"
      ],
      "author": {
        "name": "Saša Živkov",
        "email": "sasa.zivkov@sap.com",
        "time": "Fri Jan 08 10:27:00 2021 +0100"
      },
      "committer": {
        "name": "Saša Živkov",
        "email": "sasa.zivkov@sap.com",
        "time": "Fri Jan 08 10:27:00 2021 +0100"
      },
      "message": "Merge stable-3.2 into stable-3.3\n\n* stable-3.2:\n  Remove standalone build mode\n  Upgrade bazlets to latest stable-3.2 to build with 3.2.5.1 API\n  Upgrade bazlets to latest stable-3.1 to build with 3.1.10 API\n  Bump Bazel version to 3.7.0\n  Upgrade bazlets to latest stable-3.0 to build with 3.0.13 API\n  Bump Bazel version to 3.5.0\n\nChange-Id: Ie48eaa92fe8fb57877e3da7aed24df0a4cc15fed\n"
    },
    {
      "commit": "2ac76b5d6855ba8f2813237e6499ec7394180c43",
      "tree": "99f6ec7c074aaf8074b31784d798672d32c79c69",
      "parents": [
        "363856d61a75f9b340039229c8efeb139f149dc7"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Thu Jan 07 19:20:01 2021 +0100"
      },
      "committer": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Thu Jan 07 19:20:11 2021 +0100"
      },
      "message": "Remove standalone build mode\n\nThis is a preparation change for migration to Polymer 3.\n\nChange-Id: If8e5a03cc08ab458d5143d338d491c9004c76bc8\n"
    },
    {
      "commit": "7490e731067cd849b59ccc78c9cc371c41a5c8ac",
      "tree": "4475727a44e83af56f0ac41be94244aba89714ef",
      "parents": [
        "f6c0fe2bd26e60bc0968debf058929ec31a31919"
      ],
      "author": {
        "name": "Saša Živkov",
        "email": "sasa.zivkov@sap.com",
        "time": "Thu Jan 07 17:30:31 2021 +0100"
      },
      "committer": {
        "name": "Saša Živkov",
        "email": "sasa.zivkov@sap.com",
        "time": "Thu Jan 07 17:30:31 2021 +0100"
      },
      "message": "Remove unnecessary public qualifier from GetConfig.ConfigInfo\n\nChange-Id: I3cd77b9871332ad4f4992f8528286255d2af30ec\n"
    },
    {
      "commit": "f6c0fe2bd26e60bc0968debf058929ec31a31919",
      "tree": "3d876f2e4315802cf8a5ef4be05a2d0b015f6e76",
      "parents": [
        "52172514c9e47abf7cdbef8dbe97ff3e20b9ffb4"
      ],
      "author": {
        "name": "Saša Živkov",
        "email": "sasa.zivkov@sap.com",
        "time": "Thu Jan 07 17:02:38 2021 +0100"
      },
      "committer": {
        "name": "Saša Živkov",
        "email": "zivkov@gmail.com",
        "time": "Thu Jan 07 16:28:57 2021 +0000"
      },
      "message": "Fix errorprone errors\n\nChange-Id: I0abf1b59871b069e0f7ee3ec7f259a286bfc7c69\n"
    },
    {
      "commit": "52172514c9e47abf7cdbef8dbe97ff3e20b9ffb4",
      "tree": "5b2e2fc9b165bd7d17d34163e353e49f7e2fecaa",
      "parents": [
        "49e0101359d70062142bee9b9592a6535d44338a"
      ],
      "author": {
        "name": "Saša Živkov",
        "email": "sasa.zivkov@sap.com",
        "time": "Thu Jan 07 15:50:11 2021 +0100"
      },
      "committer": {
        "name": "Saša Živkov",
        "email": "zivkov@gmail.com",
        "time": "Thu Jan 07 16:28:45 2021 +0000"
      },
      "message": "Define Provider\u003cProjectLevelConfig.Bare\u003e, reduce code repetition\n\nChange-Id: I854b8f8722c1cc25d1334b256d4ae201ffb11e3f\n"
    },
    {
      "commit": "49e0101359d70062142bee9b9592a6535d44338a",
      "tree": "6241d76db65ab7602fd6d41ec16f159a55700d37",
      "parents": [
        "35086cfdb5bffea4fd59583e0936c90f54c8763d"
      ],
      "author": {
        "name": "Saša Živkov",
        "email": "sasa.zivkov@sap.com",
        "time": "Thu Jan 07 15:26:24 2021 +0100"
      },
      "committer": {
        "name": "Saša Živkov",
        "email": "zivkov@gmail.com",
        "time": "Thu Jan 07 16:28:37 2021 +0000"
      },
      "message": "Stop using deprecated JGit API getAllRefs\n\nChange-Id: I5dbb450cc426d2303415156c56a599fe4056171c\n"
    },
    {
      "commit": "35086cfdb5bffea4fd59583e0936c90f54c8763d",
      "tree": "d20aca541f70465a62c12c5a366c47c1708d9eea",
      "parents": [
        "643d6d755a97360cf323fc1d2a3c51e0f069cbe8"
      ],
      "author": {
        "name": "Andrew Z Allen",
        "email": "achew@stairwell.com",
        "time": "Wed Jan 06 23:24:42 2021 -0700"
      },
      "committer": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Thu Jan 07 17:21:41 2021 +0100"
      },
      "message": "Make compatible with Gerrit stable-3.3 branch\n\nIn I2379e28b4 `ProjectLevelConfig`\u0027s inheritence was changed to not\nextend `VersionedMetaData`. As a result it no longer has a `.commit()`\nmethod on it.\n\nInstead, read the config directly from the git repo and manipulate it\nthere. This probably makes some subtle cache bugs go away as a side\neffect, but it likely isn\u0027t important since it would only matter in a\nhigh contention service user creation situation. Such a situation is\ndifficult to imagine.\n\nChange-Id: I4c7c94dd4db189c4a5e818ac184ddb2c318ebcb4\n"
    },
    {
      "commit": "363856d61a75f9b340039229c8efeb139f149dc7",
      "tree": "8b50a2bbd5d3a93ffc1d466633a7c4ef6bf75299",
      "parents": [
        "d1c87933ac8dd965733369f483a3c381de167cb8"
      ],
      "author": {
        "name": "Marco Miller",
        "email": "marco.miller@ericsson.com",
        "time": "Tue Nov 24 17:58:14 2020 -0500"
      },
      "committer": {
        "name": "Marco Miller",
        "email": "marco.miller@ericsson.com",
        "time": "Wed Nov 25 14:07:47 2020 -0500"
      },
      "message": "Upgrade bazlets to latest stable-3.2 to build with 3.2.5.1 API\n\nChange-Id: I6fb11180fa4aa8958aa14e657d85f1bd0e867934\n"
    },
    {
      "commit": "d1c87933ac8dd965733369f483a3c381de167cb8",
      "tree": "9de263343070fc958a916e606928b4d5026f7476",
      "parents": [
        "8e12cf788e502604ff31b0655076444f38897f8f",
        "baffa30bfd53e0a454add0d48eaedf180fb570e4"
      ],
      "author": {
        "name": "Marco Miller",
        "email": "marco.miller@ericsson.com",
        "time": "Wed Nov 25 14:03:46 2020 -0500"
      },
      "committer": {
        "name": "Marco Miller",
        "email": "marco.miller@ericsson.com",
        "time": "Wed Nov 25 14:03:46 2020 -0500"
      },
      "message": "Merge branch \u0027stable-3.1\u0027 into stable-3.2\n\n* stable-3.1:\n  Upgrade bazlets to latest stable-3.1 to build with 3.1.10 API\n\nChange-Id: Ic09169e648034b1e2df5ea7f1dc80b8d776753d4\n"
    },
    {
      "commit": "baffa30bfd53e0a454add0d48eaedf180fb570e4",
      "tree": "7c8fc5a0bc7324889b2914300adc8b161b89b49a",
      "parents": [
        "0cba5f73be759c41d26dacdaad883bf494d0202a"
      ],
      "author": {
        "name": "Marco Miller",
        "email": "marco.miller@ericsson.com",
        "time": "Tue Nov 24 16:27:55 2020 -0500"
      },
      "committer": {
        "name": "Marco Miller",
        "email": "marco.miller@ericsson.com",
        "time": "Tue Nov 24 16:27:55 2020 -0500"
      },
      "message": "Upgrade bazlets to latest stable-3.1 to build with 3.1.10 API\n\nChange-Id: I4a7b8a4c7383fc60b2cb8b12d3daf0a5a8462d6f\n"
    },
    {
      "commit": "8e12cf788e502604ff31b0655076444f38897f8f",
      "tree": "9de263343070fc958a916e606928b4d5026f7476",
      "parents": [
        "3c36962005eae41db289decc09f5f776a424467d",
        "0cba5f73be759c41d26dacdaad883bf494d0202a"
      ],
      "author": {
        "name": "Marco Miller",
        "email": "marco.miller@ericsson.com",
        "time": "Fri Oct 30 09:33:21 2020 -0400"
      },
      "committer": {
        "name": "Marco Miller",
        "email": "marco.miller@ericsson.com",
        "time": "Fri Oct 30 09:33:21 2020 -0400"
      },
      "message": "Merge branch \u0027stable-3.1\u0027 into stable-3.2\n\n* stable-3.1:\n  Bump Bazel version to 3.7.0\n  Upgrade bazlets to latest stable-3.0 to build with 3.0.13 API\n\nChange-Id: If796d51d660999943a2f6ba0fb43821726059796\n"
    },
    {
      "commit": "0cba5f73be759c41d26dacdaad883bf494d0202a",
      "tree": "c1ccf33f3e4b8ead6eea29824a2890af311c6826",
      "parents": [
        "a94c6e0e478e36c55f57febfce6cd1e3ec939cf6",
        "dc7c6083d8a155c38bdb54f464e3fdbd3792bced"
      ],
      "author": {
        "name": "Marco Miller",
        "email": "marco.miller@ericsson.com",
        "time": "Thu Oct 29 11:58:00 2020 -0400"
      },
      "committer": {
        "name": "Marco Miller",
        "email": "marco.miller@ericsson.com",
        "time": "Thu Oct 29 11:58:00 2020 -0400"
      },
      "message": "Merge branch \u0027stable-3.0\u0027 into stable-3.1\n\n* stable-3.0:\n  Bump Bazel version to 3.7.0\n  Upgrade bazlets to latest stable-3.0 to build with 3.0.13 API\n\nChange-Id: I856d78a9da5906e203c66c93b0c1aa070ad9af28\n"
    },
    {
      "commit": "dc7c6083d8a155c38bdb54f464e3fdbd3792bced",
      "tree": "2c8a95301b4fef04eca89279aaea4d5e686ce3a9",
      "parents": [
        "f33be2cb3a2bf24554bc1e9b7ec346b07aa9f369"
      ],
      "author": {
        "name": "Marco Miller",
        "email": "marco.miller@ericsson.com",
        "time": "Tue Oct 27 16:12:58 2020 -0400"
      },
      "committer": {
        "name": "Marco Miller",
        "email": "marco.miller@ericsson.com",
        "time": "Tue Oct 27 16:12:58 2020 -0400"
      },
      "message": "Bump Bazel version to 3.7.0\n\nChange-Id: I9cd669508bd84e441252391689956e262e99c40d\n"
    },
    {
      "commit": "f33be2cb3a2bf24554bc1e9b7ec346b07aa9f369",
      "tree": "593163a8e658eaaa6cded06323204910c1d67a0e",
      "parents": [
        "4f83b6f1c8a3a7e80e9f147624c3aba8817d0de7"
      ],
      "author": {
        "name": "Marco Miller",
        "email": "marco.miller@ericsson.com",
        "time": "Tue Oct 20 15:59:24 2020 -0400"
      },
      "committer": {
        "name": "Marco Miller",
        "email": "marco.miller@ericsson.com",
        "time": "Tue Oct 20 15:59:24 2020 -0400"
      },
      "message": "Upgrade bazlets to latest stable-3.0 to build with 3.0.13 API\n\nChange-Id: I7cc7d1a682cba94532214998aba0ec84b461741b\n"
    },
    {
      "commit": "0f3fa15e76ccef704eaf6aeb215b286921fa9679",
      "tree": "8051a9abf040297798852427bb9952441dca495d",
      "parents": [
        "580b8e31cf6986df5446764377e3dcf08cb523bb"
      ],
      "author": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Fri Sep 04 12:57:27 2020 +0200"
      },
      "committer": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Fri Sep 11 11:18:33 2020 +0200"
      },
      "message": "Migrate UI to Polymer 3\n\nChange-Id: I36b794caa40e76669c0cf2720206af75f8080737\n"
    },
    {
      "commit": "3c36962005eae41db289decc09f5f776a424467d",
      "tree": "c14bf82b2affe9c8c836ba9539103e5f661d70e6",
      "parents": [
        "580b8e31cf6986df5446764377e3dcf08cb523bb",
        "a94c6e0e478e36c55f57febfce6cd1e3ec939cf6"
      ],
      "author": {
        "name": "Marco Miller",
        "email": "marco.miller@ericsson.com",
        "time": "Wed Sep 09 08:57:26 2020 -0400"
      },
      "committer": {
        "name": "Marco Miller",
        "email": "marco.miller@ericsson.com",
        "time": "Wed Sep 09 08:57:57 2020 -0400"
      },
      "message": "Merge branch \u0027stable-3.1\u0027 into stable-3.2\n\n* stable-3.1:\n  Bump Bazel version to 3.5.0\n\nChange-Id: Ifa61dd0510a3a3b1c6c8106c768bd7bf4f28110c\n"
    },
    {
      "commit": "a94c6e0e478e36c55f57febfce6cd1e3ec939cf6",
      "tree": "303ac686f17dd6257750cf72a5451f9606653c09",
      "parents": [
        "4bac1462a53893fc590573b535a9ed9556f8cd69",
        "4f83b6f1c8a3a7e80e9f147624c3aba8817d0de7"
      ],
      "author": {
        "name": "Marco Miller",
        "email": "marco.miller@ericsson.com",
        "time": "Tue Sep 08 15:34:23 2020 -0400"
      },
      "committer": {
        "name": "Marco Miller",
        "email": "marco.miller@ericsson.com",
        "time": "Tue Sep 08 15:35:57 2020 -0400"
      },
      "message": "Merge branch \u0027stable-3.0\u0027 into stable-3.1\n\n* stable-3.0:\n  Bump Bazel version to 3.5.0\n\nChange-Id: I22243a8bb3b412d03052acd1a34e988d3bbefdab\n"
    },
    {
      "commit": "4f83b6f1c8a3a7e80e9f147624c3aba8817d0de7",
      "tree": "9f6f1f65149ad20aa2faac3ea70ddeafca127b10",
      "parents": [
        "82092492d30834edc74cc061a11d44b8d0f2da1b"
      ],
      "author": {
        "name": "Marco Miller",
        "email": "marco.miller@ericsson.com",
        "time": "Thu Sep 03 15:11:19 2020 -0400"
      },
      "committer": {
        "name": "Marco Miller",
        "email": "marco.miller@ericsson.com",
        "time": "Thu Sep 03 15:11:19 2020 -0400"
      },
      "message": "Bump Bazel version to 3.5.0\n\nChange-Id: Iaf8ea1890e1b5ada240e7adc6bf34334968ef6d5\n"
    },
    {
      "commit": "643d6d755a97360cf323fc1d2a3c51e0f069cbe8",
      "tree": "f2608a43ec0082864c377fb296d0ee3eaf320c3c",
      "parents": [
        "a78897488ec7a26baa7229473155bb8ddd9d74bb",
        "580b8e31cf6986df5446764377e3dcf08cb523bb"
      ],
      "author": {
        "name": "Marco Miller",
        "email": "marco.miller@ericsson.com",
        "time": "Thu Jul 30 11:26:46 2020 -0400"
      },
      "committer": {
        "name": "Marco Miller",
        "email": "marco.miller@ericsson.com",
        "time": "Thu Jul 30 16:56:08 2020 -0400"
      },
      "message": "Merge branch \u0027stable-3.2\u0027\n\n* stable-3.2:\n  Upgrade bazlets to latest master to build with 3.2.3 API\n  Upgrade bazlets to latest stable-3.1 to build with 3.1.8 API\n  Upgrade bazlets to latest stable-3.0 to build with 3.0.12 API\n  Upgrade bazlets to latest stable-2.16 to build with 2.16.22 API\n\nSwitch to the snapshot API to build stand-alone successfully, until the\nnext release (API) that contains the previously adapted code for master.\n\nChange-Id: If9e83659a68b2c94543cae56887763b0fc6c67d7\n"
    },
    {
      "commit": "580b8e31cf6986df5446764377e3dcf08cb523bb",
      "tree": "40f2e0ac53e38ca9ae61509cc655d2378631d11f",
      "parents": [
        "3d77f4b4f5e634c7a8bbbd2f718af824d5f42545"
      ],
      "author": {
        "name": "Marco Miller",
        "email": "marco.miller@ericsson.com",
        "time": "Wed Jul 29 10:06:58 2020 -0400"
      },
      "committer": {
        "name": "Marco Miller",
        "email": "marco.miller@ericsson.com",
        "time": "Wed Jul 29 10:06:58 2020 -0400"
      },
      "message": "Upgrade bazlets to latest master to build with 3.2.3 API\n\nChange-Id: Ib99a3b6b992a57c2fbeb7ea7ea466f648c18076b\n"
    },
    {
      "commit": "3d77f4b4f5e634c7a8bbbd2f718af824d5f42545",
      "tree": "f6f3730f4f1365fa65ab8d833096ab6f77bbdc89",
      "parents": [
        "f9ee9ea596af7d1db2dac0cf2871d9bd28634d3b",
        "4bac1462a53893fc590573b535a9ed9556f8cd69"
      ],
      "author": {
        "name": "Marco Miller",
        "email": "marco.miller@ericsson.com",
        "time": "Tue Jul 28 17:20:33 2020 -0400"
      },
      "committer": {
        "name": "Marco Miller",
        "email": "marco.miller@ericsson.com",
        "time": "Tue Jul 28 17:20:33 2020 -0400"
      },
      "message": "Merge branch \u0027stable-3.1\u0027 into stable-3.2\n\n* stable-3.1:\n  Upgrade bazlets to latest stable-3.1 to build with 3.1.8 API\n  Upgrade bazlets to latest stable-3.0 to build with 3.0.12 API\n  Upgrade bazlets to latest stable-2.16 to build with 2.16.22 API\n\nChange-Id: I6c5a8c59d2195a3b177c0a4fbbbe6a285c5885ce\n"
    },
    {
      "commit": "4bac1462a53893fc590573b535a9ed9556f8cd69",
      "tree": "cc3233748866f0d37ab814360480485f5e62a1a0",
      "parents": [
        "bd7c0419d0d060f4580173c059ef31bfa3d76aeb"
      ],
      "author": {
        "name": "Marco Miller",
        "email": "marco.miller@ericsson.com",
        "time": "Tue Jul 28 14:59:07 2020 -0400"
      },
      "committer": {
        "name": "Marco Miller",
        "email": "marco.miller@ericsson.com",
        "time": "Tue Jul 28 14:59:07 2020 -0400"
      },
      "message": "Upgrade bazlets to latest stable-3.1 to build with 3.1.8 API\n\nChange-Id: I15e654a7e6b6583dc79e8c94e7b61ad359e064ee\n"
    }
  ],
  "next": "bd7c0419d0d060f4580173c059ef31bfa3d76aeb"
}
