)]}'
{
  "log": [
    {
      "commit": "0813d0f6c768ee9436993654fae33cd1cd751e1d",
      "tree": "fa3d006fcb56ec77b392999fc1a82bc06f35c14e",
      "parents": [
        "d8abb93b043a57746e0cc18ba1359dc9840409fd",
        "800ca7e9cd785205253659f4671d1337e2dc4f8b"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sun Oct 25 19:07:01 2026 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sun Oct 25 19:07:01 2026 +0000"
      },
      "message": "Merge branch \u0027stable-3.15\u0027\n\n* stable-3.15:\n  Hover the feature card only for installable plugins\n  Fetch and render plugin license from Gerrit-CI\n  Reuse SmartGson.getReader() in JenkinsCiPluginsRepository\n  Improve parameter name of the JenkinsCiPluginRepository\n  Fix grammar and wording in the intro page\n  Use a relative URL to fetch the Diffy logo\n\nChange-Id: I9d1f51fbad9ee950e98437410959f530154fb9b1\n"
    },
    {
      "commit": "800ca7e9cd785205253659f4671d1337e2dc4f8b",
      "tree": "fa3d006fcb56ec77b392999fc1a82bc06f35c14e",
      "parents": [
        "92f37f9bdff54aceee56201589593fd314869b98"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Oct 24 21:50:36 2026 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sun Oct 25 11:46:17 2026 -0700"
      },
      "message": "Hover the feature card only for installable plugins\n\nThe hover on the plugins\u0027 feature cards should generate a transition and\nshadow only for those plugins that aren\u0027t already installed. The\nanimation and raising of the card should have a visual experience of\ninviting the admin to experiment with the plugin and install it.\n\nBefore this change, all the feature cards were animated, and the\nhovering had no real meaning beyond its visual effect.\n\nChange-Id: I813560163bb869640d6c523ddec1bf6a3cccdfb4\n(cherry picked from commit d8abb93b043a57746e0cc18ba1359dc9840409fd)\n"
    },
    {
      "commit": "92f37f9bdff54aceee56201589593fd314869b98",
      "tree": "923e2583d122b0298e56592507165a5dbec2d12d",
      "parents": [
        "a21bfc361e205c49e0a21ac0e6cf2aba2ed51a0c"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Oct 23 00:32:16 2026 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sun Oct 25 11:45:36 2026 -0700"
      },
      "message": "Fetch and render plugin license from Gerrit-CI\n\nEnrich the plugin information with a new \u0027license\u0027 field that captures\nthe first 2 lines of the LICENSE file published by Gerrit-CI.\n\nAll Gerrit core plugins are associated with the Apache 2.0 license.\n\nWhenever a plugin exposes a LICENSE file in its source code, the plugin\nmanager displays a \"legal\" icon that shows the license type on mouse\nhover.\n\nAlso add test coverage for JenkinsCiPluginsRepository for fetching the\nplugin information from a successful Jenkins Job build run.\n\nOld plugin card : https://www.pasteboard.co/s87jpkcCcKxa.png\nNew plugin card : https://www.pasteboard.co/ZG3qMXgQqY81.png\nHover on license: https://www.pasteboard.co/cYAPqhlB2HZY.png\n\nChange-Id: Ieb274a7f236c0c6d3a03db07838b5ea2a1926767\n(cherry picked from commit 37f52d04052f6e763e45e74bd4c21f2947b8f981)\n"
    },
    {
      "commit": "a21bfc361e205c49e0a21ac0e6cf2aba2ed51a0c",
      "tree": "e984d9234dc36abb7896af7ce924e1d6a38f272e",
      "parents": [
        "f72f0fee35a81a69b60880c5c4bc1fa3f9e5094a"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Oct 24 06:08:57 2026 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sun Oct 25 11:44:49 2026 -0700"
      },
      "message": "Reuse SmartGson.getReader() in JenkinsCiPluginsRepository\n\nJenkinsCiPluginsRepository was reading directly from a URI when fetching\na remote stream rather than relying on the SmartGson.getReader(), which\nhad exactly the same logic.\n\nUse a unique channel to fetch from a remote source so that mocking\nbecomes easier and also replacing it with a different transport handler\nwould not require changes to the JenkinsCiPluginsRepository\nimplementation.\n\nChange-Id: Ib1f25e7085cafb1c133e1b7e48dc993328489254\n(cherry picked from commit b6c8fa3ea94abfdde067621ce71fbb3a52ba26b6)\n"
    },
    {
      "commit": "f72f0fee35a81a69b60880c5c4bc1fa3f9e5094a",
      "tree": "7a624c061bb144f37c4f3c554f9d41dbf970e476",
      "parents": [
        "d4f1e59977dfe6846b0d21a3da29cd770f64935a"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu Oct 22 23:00:13 2026 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sun Oct 25 11:44:10 2026 -0700"
      },
      "message": "Improve parameter name of the JenkinsCiPluginRepository\n\nThe findArtifact() method has now a better parameter name for\nfinding all the artifacts that have a specific suffix.\n\nChange-Id: I1296a8101d483afb3a07b2558357200683c03e41\n(cherry picked from commit 4f185f2096e5e4a03553fed91333fe3d582ebcad)\n"
    },
    {
      "commit": "d8abb93b043a57746e0cc18ba1359dc9840409fd",
      "tree": "b550d90954d27fb6233d15ecad45073184dc6988",
      "parents": [
        "37f52d04052f6e763e45e74bd4c21f2947b8f981"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Oct 24 21:50:36 2026 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Oct 24 13:57:35 2026 -0700"
      },
      "message": "Hover the feature card only for installable plugins\n\nThe hover on the plugins\u0027 feature cards should generate a transition and\nshadow only for those plugins that aren\u0027t already installed. The\nanimation and raising of the card should have a visual experience of\ninviting the admin to experiment with the plugin and install it.\n\nBefore this change, all the feature cards were animated, and the\nhovering had no real meaning beyond its visual effect.\n\nChange-Id: I813560163bb869640d6c523ddec1bf6a3cccdfb4\n"
    },
    {
      "commit": "37f52d04052f6e763e45e74bd4c21f2947b8f981",
      "tree": "fc10726a9627c449dde2ca817517504d868b2236",
      "parents": [
        "f2a1f16af870156eda132eed7e9164d60c7651e2"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Oct 23 00:32:16 2026 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Oct 24 21:22:41 2026 +0100"
      },
      "message": "Fetch and render plugin license from Gerrit-CI\n\nEnrich the plugin information with a new \u0027license\u0027 field that captures\nthe first 2 lines of the LICENSE file published by Gerrit-CI.\n\nAll Gerrit core plugins are associated with the Apache 2.0 license.\n\nWhenever a plugin exposes a LICENSE file in its source code, the plugin\nmanager displays a \"legal\" icon that shows the license type on mouse\nhover.\n\nAlso add test coverage for JenkinsCiPluginsRepository for fetching the\nplugin information from a successful Jenkins Job build run.\n\nOld plugin card : https://www.pasteboard.co/s87jpkcCcKxa.png\nNew plugin card : https://www.pasteboard.co/ZG3qMXgQqY81.png\nHover on license: https://www.pasteboard.co/cYAPqhlB2HZY.png\n\nChange-Id: Ieb274a7f236c0c6d3a03db07838b5ea2a1926767\n"
    },
    {
      "commit": "f2a1f16af870156eda132eed7e9164d60c7651e2",
      "tree": "0fe3a6ef0a378b03b5e3ca22457d2815619488b3",
      "parents": [
        "4f185f2096e5e4a03553fed91333fe3d582ebcad",
        "b6c8fa3ea94abfdde067621ce71fbb3a52ba26b6"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Oct 24 03:41:52 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Oct 24 03:41:52 2026 -0700"
      },
      "message": "Merge \"Reuse SmartGson.getReader() in JenkinsCiPluginsRepository\""
    },
    {
      "commit": "b6c8fa3ea94abfdde067621ce71fbb3a52ba26b6",
      "tree": "cf5a9450ac795071418a9782e9923d1e77bfcb83",
      "parents": [
        "dcd591412d3d6169ee2deb60d4b0fcee50f7d1df"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Oct 24 06:08:57 2026 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Oct 23 22:15:35 2026 -0700"
      },
      "message": "Reuse SmartGson.getReader() in JenkinsCiPluginsRepository\n\nJenkinsCiPluginsRepository was reading directly from a URI when fetching\na remote stream rather than relying on the SmartGson.getReader(), which\nhad exactly the same logic.\n\nUse a unique channel to fetch from a remote source so that mocking\nbecomes easier and also replacing it with a different transport handler\nwould not require changes to the JenkinsCiPluginsRepository\nimplementation.\n\nChange-Id: Ib1f25e7085cafb1c133e1b7e48dc993328489254\n"
    },
    {
      "commit": "4f185f2096e5e4a03553fed91333fe3d582ebcad",
      "tree": "823ef8e4fd221ec73df4e4570d0b3a079bca7c07",
      "parents": [
        "dcd591412d3d6169ee2deb60d4b0fcee50f7d1df"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu Oct 22 23:00:13 2026 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu Oct 22 23:00:13 2026 +0100"
      },
      "message": "Improve parameter name of the JenkinsCiPluginRepository\n\nThe findArtifact() method has now a better parameter name for\nfinding all the artifacts that have a specific suffix.\n\nChange-Id: I1296a8101d483afb3a07b2558357200683c03e41\n"
    },
    {
      "commit": "d4f1e59977dfe6846b0d21a3da29cd770f64935a",
      "tree": "a264815f5bca4cac6687ba0f5b859f33852f309f",
      "parents": [
        "4cd5f6f9b135d3be54891045bff229808645617e"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Mon Oct 12 15:57:34 2026 +0100"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Mon Oct 12 10:39:45 2026 -0700"
      },
      "message": "Fix grammar and wording in the intro page\n\nCorrect ungrammatical phrasing (\"starting using\", \"conferences\nvideos\"), redundant wording (\"workflow works\"), the capitalisation\nof \"community\", and the Bluesky brand spelling. Use the Oxford comma\nconsistently across the page.\n\nRelease-Notes: skip\nChange-Id: Ic23370052d1bc4582fbb270e586facf75bdca763\n"
    },
    {
      "commit": "4cd5f6f9b135d3be54891045bff229808645617e",
      "tree": "65641db3e357850c3b39c2418444175f886f0b80",
      "parents": [
        "b707d7385c81fb41bafdc3efd27105f40156b7c3"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Oct 12 07:28:27 2026 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Oct 12 00:41:05 2026 -0700"
      },
      "message": "Use a relative URL to fetch the Diffy logo\n\nThe Diffy logo is located on the Gerrit root path, which may not be the\nroot path of the domain.\n\nUse a relative URL path so that the logo can be located in any mounted\nlocation on the front-end reverse proxy.\n\nChange-Id: Ie87819ff0eefa9a49b99665238c80428028c7015\n(cherry picked from commit 1bfc2ff57843e14702a7228baea6cfc5cfe7246e)\n"
    },
    {
      "commit": "dcd591412d3d6169ee2deb60d4b0fcee50f7d1df",
      "tree": "65641db3e357850c3b39c2418444175f886f0b80",
      "parents": [
        "1bfc2ff57843e14702a7228baea6cfc5cfe7246e",
        "e3fa70adbc87809c3c5ace7a7c6c34fd2c7761ab"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Oct 12 00:40:46 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 12 00:40:46 2026 -0700"
      },
      "message": "Merge \"Merge branch \u0027stable-3.15\u0027\""
    },
    {
      "commit": "1bfc2ff57843e14702a7228baea6cfc5cfe7246e",
      "tree": "65641db3e357850c3b39c2418444175f886f0b80",
      "parents": [
        "6b19964dd31d25a839d0e07f24821f9f16ce888f"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Oct 12 07:28:27 2026 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sun Oct 11 23:34:32 2026 -0700"
      },
      "message": "Use a relative URL to fetch the Diffy logo\n\nThe Diffy logo is located on the Gerrit root path, which may not be the\nroot path of the domain.\n\nUse a relative URL path so that the logo can be located in any mounted\nlocation on the front-end reverse proxy.\n\nChange-Id: Ie87819ff0eefa9a49b99665238c80428028c7015\n"
    },
    {
      "commit": "e3fa70adbc87809c3c5ace7a7c6c34fd2c7761ab",
      "tree": "7c6de56986101876fa75b2f9cbc0fe0aa8f50148",
      "parents": [
        "6b19964dd31d25a839d0e07f24821f9f16ce888f",
        "b707d7385c81fb41bafdc3efd27105f40156b7c3"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Oct 12 07:05:07 2026 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Oct 12 07:05:07 2026 +0100"
      },
      "message": "Merge branch \u0027stable-3.15\u0027\n\n* stable-3.15:\n  Align plugin-manager header bar with Gerrit\n  Align the primary blue with Gerrit blue-tonal values\n\nChange-Id: I9270638889a70952f1210082ce641d2f7ece9d65\n"
    },
    {
      "commit": "b707d7385c81fb41bafdc3efd27105f40156b7c3",
      "tree": "7c6de56986101876fa75b2f9cbc0fe0aa8f50148",
      "parents": [
        "e89429df08157efb0680a8c826bf0a3ac57c959d"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sun Oct 11 16:00:36 2026 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sun Oct 11 23:04:31 2026 -0700"
      },
      "message": "Align plugin-manager header bar with Gerrit\n\nUse the same \u0027Roboto\u0027 font as the Google screen and align the style of\nthe top-level bar, including the search box. Also, swap the action\nbutton font with the \u0027Open Sans\u0027 used in the Gerrit header.\n\nIn order to reuse the same Gerrit fonts, import the /styles/fonts.css\nfrom the plugin-manager and intro pages.\n\nOld custom UI            : https://www.pasteboard.co/_EDQs3sdyOEU.png\nUI more aligned to Gerrit: https://www.pasteboard.co/pUNu1B9guRTP.png\n\nRelease-Notes: Align plugin-manager and intro headers with Gerrit L\u0026F\nChange-Id: I8248c2e67e29033ffde779eade6aeeb7684d6b75\n(cherry picked from commit 6b19964dd31d25a839d0e07f24821f9f16ce888f)\n"
    },
    {
      "commit": "e89429df08157efb0680a8c826bf0a3ac57c959d",
      "tree": "42c9bca50d0598c119cd2d979d60675259787cd1",
      "parents": [
        "b312d55a9657ebd7fcb5a5a8461b8b91c485b145"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sun Oct 11 15:27:38 2026 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sun Oct 11 23:03:46 2026 -0700"
      },
      "message": "Align the primary blue with Gerrit blue-tonal values\n\nBy aligning the colors of the plugin-manager and intro screen with\nGerrit header, the user experience will look more fluent and less\nfragmented.\n\nOld blue tone: https://www.pasteboard.co/3jGBoYNk7_Eq.png\nNew blue tone: https://www.pasteboard.co/_EDQs3sdyOEU.png\n\nRelease-Notes: Align the intro and plugin-manager headers\u0027 colors with Gerrit\nChange-Id: Ib47cad3d790536937dc7c8a29e6e2a389f646639\n(cherry picked from commit 0aa59e2c834866d8c46a7b2a8a4656e3abf89f82)\n"
    },
    {
      "commit": "6b19964dd31d25a839d0e07f24821f9f16ce888f",
      "tree": "7c6de56986101876fa75b2f9cbc0fe0aa8f50148",
      "parents": [
        "0aa59e2c834866d8c46a7b2a8a4656e3abf89f82"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sun Oct 11 16:00:36 2026 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sun Oct 11 21:33:16 2026 +0100"
      },
      "message": "Align plugin-manager header bar with Gerrit\n\nUse the same \u0027Roboto\u0027 font as the Google screen and align the style of\nthe top-level bar, including the search box. Also, swap the action\nbutton font with the \u0027Open Sans\u0027 used in the Gerrit header.\n\nIn order to reuse the same Gerrit fonts, import the /styles/fonts.css\nfrom the plugin-manager and intro pages.\n\nOld custom UI            : https://www.pasteboard.co/_EDQs3sdyOEU.png\nUI more aligned to Gerrit: https://www.pasteboard.co/pUNu1B9guRTP.png\n\nRelease-Notes: Align plugin-manager and intro headers with Gerrit L\u0026F\nChange-Id: I8248c2e67e29033ffde779eade6aeeb7684d6b75\n"
    },
    {
      "commit": "0aa59e2c834866d8c46a7b2a8a4656e3abf89f82",
      "tree": "42c9bca50d0598c119cd2d979d60675259787cd1",
      "parents": [
        "2b952a6156e7e0b81b7e6a5bb65a252564200974"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sun Oct 11 15:27:38 2026 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sun Oct 11 10:54:36 2026 -0700"
      },
      "message": "Align the primary blue with Gerrit blue-tonal values\n\nBy aligning the colors of the plugin-manager and intro screen with\nGerrit header, the user experience will look more fluent and less\nfragmented.\n\nOld blue tone: https://www.pasteboard.co/3jGBoYNk7_Eq.png\nNew blue tone: https://www.pasteboard.co/_EDQs3sdyOEU.png\n\nRelease-Notes: Align the intro and plugin-manager headers\u0027 colors with Gerrit\nChange-Id: Ib47cad3d790536937dc7c8a29e6e2a389f646639\n"
    },
    {
      "commit": "2b952a6156e7e0b81b7e6a5bb65a252564200974",
      "tree": "5216926aff7099c53893c5ccf34910d2d81d2e57",
      "parents": [
        "35ac0fdbd5d4661dfe2b85d4a9eeecd1f2a79080",
        "b312d55a9657ebd7fcb5a5a8461b8b91c485b145"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu Oct 08 18:41:29 2026 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu Oct 08 18:41:29 2026 +0100"
      },
      "message": "Merge branch \u0027stable-3.15\u0027\n\n* stable-3.15:\n  Align the look\u0026feel of the plugin manager with the intro page\n  Fetch Gerrit version dynamically in intro.html\n  Modernise Gerrit intro page\n\nChange-Id: Ia0cdef91bd887150fc66e39abd9225b046d9a357\n"
    },
    {
      "commit": "b312d55a9657ebd7fcb5a5a8461b8b91c485b145",
      "tree": "5216926aff7099c53893c5ccf34910d2d81d2e57",
      "parents": [
        "ee9260fd3ced449933b952ac92520b7256a3d0e8"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Oct 06 16:41:29 2026 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Oct 06 08:49:28 2026 -0700"
      },
      "message": "Align the look\u0026feel of the plugin manager with the intro page\n\nReuse the same styles of the new intro page in the plugin manager page,\ngiving a more consistent user experience when switching from one to the\nother as part of the out-of-the-box experience of Gerrit Code Review.\n\nOld plugin manager page: https://www.pasteboard.co/2nlqsuEIJxbD.png\nNew plugin manager page: https://www.pasteboard.co/-Ap5c7i95Yxo.png\n\nRelease-Notes: New look\u0026feel for the plugin manager page, aligned with the intro page\nChange-Id: I9a4dd3c7111b41ec2561635bf55628dc70783924\n"
    },
    {
      "commit": "ee9260fd3ced449933b952ac92520b7256a3d0e8",
      "tree": "c388397d052b084dffc763cc565edbdff4b84faf",
      "parents": [
        "8e24ebe1abbf1d8137ba842f258185a500949cd0"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Oct 06 06:50:35 2026 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Oct 05 22:51:55 2026 -0700"
      },
      "message": "Fetch Gerrit version dynamically in intro.html\n\nAvoid having a stale version number in the intro.html and fetch the\ncurrent version dynamically using the /config/server/version.\n\nIn case of errors, keep the v3.15 text by default.\n\nChange-Id: I1c99f23cfeebb2081fa7bf06818531d5e9a511f1\n"
    },
    {
      "commit": "8e24ebe1abbf1d8137ba842f258185a500949cd0",
      "tree": "1c7037bb87c9293fce3b0d3ed7138075b24bb76a",
      "parents": [
        "35ac0fdbd5d4661dfe2b85d4a9eeecd1f2a79080"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Oct 05 22:07:19 2026 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Oct 05 15:04:01 2026 -0700"
      },
      "message": "Modernise Gerrit intro page\n\nUpdate the Gerrit Code Review introduction page by removing obsolete\nreferences to Atlassian Jira and give more space to new integrations\nsuch as access to the AI review agent chat.\n\nAlso update the social channels links and include X, Mastodon BlueSky\nand Discord.\n\nOld intro page: https://www.pasteboard.co/-zxX9NtbQ2Tx.png\nNew intro page: https://www.pasteboard.co/JD_FF2dDq52A.png\n\nRelease-Notes: Update the Gerrit introduction page.\nChange-Id: I1abe2669fcb95e22d944a246100b6498e6042c65\n"
    },
    {
      "commit": "35ac0fdbd5d4661dfe2b85d4a9eeecd1f2a79080",
      "tree": "a14862bd6b12c16aacf590d2e99577a454264322",
      "parents": [
        "ef8a081488380a93994f2300c93d201986c21fe3",
        "6c2e130bcc4db6012b5c4db2e2f5cbabfa46ba28"
      ],
      "author": {
        "name": "Fabio Ponciroli",
        "email": "ponch78@gmail.com",
        "time": "Tue Sep 22 08:20:25 2026 +0200"
      },
      "committer": {
        "name": "Fabio Ponciroli",
        "email": "ponch78@gmail.com",
        "time": "Tue Sep 22 08:20:25 2026 +0200"
      },
      "message": "Merge branch \u0027stable-3.13\u0027\n\n* stable-3.13:\n  Skip plugins with malformed JSON metadata\n\nChange-Id: Iff90945c5c18d2cf01be49558d021511cbf9538b\n"
    },
    {
      "commit": "6c2e130bcc4db6012b5c4db2e2f5cbabfa46ba28",
      "tree": "f3da039211b9e79cb08eed7b4069d5855249233e",
      "parents": [
        "cc03ee89d361ff92af739ffb83056dfc89e00726",
        "7952e761810dab5f5150ac1144c189889618df1c"
      ],
      "author": {
        "name": "Fabio Ponciroli",
        "email": "ponch78@gmail.com",
        "time": "Tue Sep 22 08:19:04 2026 +0200"
      },
      "committer": {
        "name": "Fabio Ponciroli",
        "email": "ponch78@gmail.com",
        "time": "Tue Sep 22 08:19:04 2026 +0200"
      },
      "message": "Merge branch \u0027stable-3.12\u0027 into stable-3.13\n\n* stable-3.12:\n  Skip plugins with malformed JSON metadata\n\nChange-Id: I6467122a3ccf9ded61e65c1ae90b94a0b2eecfcb\n"
    },
    {
      "commit": "7952e761810dab5f5150ac1144c189889618df1c",
      "tree": "f3da039211b9e79cb08eed7b4069d5855249233e",
      "parents": [
        "cc03ee89d361ff92af739ffb83056dfc89e00726"
      ],
      "author": {
        "name": "Fabio Ponciroli",
        "email": "ponch78@gmail.com",
        "time": "Mon Sep 21 17:59:24 2026 +0200"
      },
      "committer": {
        "name": "Fabio Ponciroli",
        "email": "ponch78@gmail.com",
        "time": "Mon Sep 21 18:15:00 2026 +0200"
      },
      "message": "Skip plugins with malformed JSON metadata\n\nWhen a plugin metadata artifact does not contain a valid JSON object,\nJsonSyntaxException escapes from tryGetJson and aborts loading the\navailable plugin list.\n\nCatch the exception, log the affected artifact URL, and treat the\nmetadata as unavailable so that the remaining plugins can still be\nloaded.\n\nBug: Issue 564188311\nChange-Id: I594f6736a45ef9868db3fec2dd9ea344c8a60e83\n"
    },
    {
      "commit": "ef8a081488380a93994f2300c93d201986c21fe3",
      "tree": "b68f325c6cc995ff28979cff2b998af9330bcd98",
      "parents": [
        "cc03ee89d361ff92af739ffb83056dfc89e00726"
      ],
      "author": {
        "name": "Thomas Dräbing",
        "email": "thomas.draebing@sap.com",
        "time": "Fri Dec 19 08:59:39 2025 +0100"
      },
      "committer": {
        "name": "Thomas Dräbing",
        "email": "thomas.draebing@sap.com",
        "time": "Tue Apr 07 14:25:59 2026 +0200"
      },
      "message": "Use of gerrit_plugin and gerrit_plugin_tests rules from bazlets\n\nChange-Id: Iec310d23f6d6279d47f0ad70229d16d906cf0c71\n"
    },
    {
      "commit": "cc03ee89d361ff92af739ffb83056dfc89e00726",
      "tree": "7f53ca81ec7fd9b4365f5845a2298adf5dac5b7b",
      "parents": [
        "578aa64d05fa982f41c2db72253c9b43c3f0d03e"
      ],
      "author": {
        "name": "Thomas Dräbing",
        "email": "thomas.draebing@sap.com",
        "time": "Tue Nov 25 10:13:43 2025 +0100"
      },
      "committer": {
        "name": "Thomas Dräbing",
        "email": "thomas.draebing@sap.com",
        "time": "Tue Nov 25 10:13:43 2025 +0100"
      },
      "message": "Lint with buildifier 4.0\n\nChange-Id: Ic00a2f088dbde61394cb15c07e33aed4d4354d66\n"
    },
    {
      "commit": "578aa64d05fa982f41c2db72253c9b43c3f0d03e",
      "tree": "5e5fc4354dc101a2b943bd38844017c19adf30a1",
      "parents": [
        "2808425de3d91a319d7497e127af1336ca6692c0"
      ],
      "author": {
        "name": "Trevor Getty",
        "email": "trevor.getty@wandisco.com",
        "time": "Wed May 14 17:21:41 2025 +0100"
      },
      "committer": {
        "name": "Trevor Getty",
        "email": "trevor.getty@wandisco.com",
        "time": "Mon Jul 07 11:26:03 2025 -0700"
      },
      "message": "Fix plugin names having hyphens\n\nAny maven based plugin builds that had hyphens in the\nnames where being truncated to the first hyphen.\n\ne.g. ai-code-review, was \"ai\" leading to incorrect names\nand duplicated entries upon installation.\n\nReplacing indexOf with lastIndexOf, to take everything up\nto the version number.\nN.B.Version numbers cannot contain suffix information like\n-SNAPSHOT, or -rc0 for maven builds.\n\nBug: Issue 417683832\nChange-Id: I1a206635499a2977dcc49503bd300b96fda6bffa\n"
    },
    {
      "commit": "2808425de3d91a319d7497e127af1336ca6692c0",
      "tree": "fd44f6db6b7af9aa016f438dc1a2e8009bf41d6a",
      "parents": [
        "88d371eb9f9a0790bbed436d1bfcd2ca6830239b"
      ],
      "author": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@sap.com",
        "time": "Fri Mar 07 11:10:31 2025 +0100"
      },
      "committer": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@sap.com",
        "time": "Fri Mar 07 11:12:34 2025 +0100"
      },
      "message": "Replace deprecated URL constructor\n\nSee https://inside.java/2023/02/15/quality-heads-up/\n\nChange-Id: I30fb4ff50c73c880045bb9b631d51c22109e3c46\n"
    },
    {
      "commit": "88d371eb9f9a0790bbed436d1bfcd2ca6830239b",
      "tree": "12e745b492358f7c855309b28ecf67557a5b7da5",
      "parents": [
        "ed7870eb3c8b6e48511d0eb3bd54606927b46019"
      ],
      "author": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@sap.com",
        "time": "Fri Mar 07 11:11:08 2025 +0100"
      },
      "committer": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@sap.com",
        "time": "Fri Mar 07 11:12:24 2025 +0100"
      },
      "message": "Auto-format source code using gjf\n\nChange-Id: I9abfd21bd70269aaa5672a83f987ec31300bf903\n"
    },
    {
      "commit": "ed7870eb3c8b6e48511d0eb3bd54606927b46019",
      "tree": "1881e12687d1e617e7c5f58a6647c4145db7e08c",
      "parents": [
        "86f7ec61a9785df246f653a1336520b9607399b1"
      ],
      "author": {
        "name": "Paladox none",
        "email": "thomasmulhall410@yahoo.com",
        "time": "Tue Jul 02 12:37:53 2024 +0000"
      },
      "committer": {
        "name": "Paladox none",
        "email": "thomasmulhall410@yahoo.com",
        "time": "Tue Jul 02 15:00:00 2024 +0000"
      },
      "message": "Add support for just UI plugins (JS)\n\nChange-Id: Ie0e466cf52606c1eaa4f793fd314db3cb20dc869\n"
    },
    {
      "commit": "86f7ec61a9785df246f653a1336520b9607399b1",
      "tree": "c8988caa6e018cc2b4ad7104080d2dd70cfd27e1",
      "parents": [
        "53d615a6286d1ca1fdca7dc84eee42b4e63fc70d"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Jun 28 17:36:26 2024 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Jun 28 17:37:11 2024 +0100"
      },
      "message": "Add replication-api to the list of core plugins\n\nDepends-On: https://gerrit-review.googlesource.com/c/gerrit/+/431080\nChange-Id: Ia2141535fc54847011f79b326c3b223dd6418487\n"
    },
    {
      "commit": "53d615a6286d1ca1fdca7dc84eee42b4e63fc70d",
      "tree": "66caa91bf43a431221dc930661469c0a75dd2b59",
      "parents": [
        "c67b626687e3bbf8296c82f93fe02003f79c749a"
      ],
      "author": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Wed Apr 10 11:22:53 2024 -0600"
      },
      "committer": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Wed Apr 10 20:20:17 2024 +0000"
      },
      "message": "Avoid work in Optional.orElse() calls\n\nAny code inside the orElse() will always be called, even if the result\nisn\u0027t used because the optional is present. This is wasteful at a\nminimum and can be actively harmful (as seen in [1]) because of side\neffects or performance impacts. Fix that by replacing all orElse() calls\nthat create new instances or do non-constant work with a call to\norElseGet().\n\nIt would be nice if there were an ErrorProne checker for this, but one\ndoesn\u0027t exist yet.\n\n[1] https://gerrit-review.googlesource.com/c/gerrit/+/417915/comment/0ea287cd_bfecb7f2/\n\nRelease-Notes: skip\nChange-Id: I2d3d59da88cd04a2e589b7255fc0877719a57432\n"
    },
    {
      "commit": "c67b626687e3bbf8296c82f93fe02003f79c749a",
      "tree": "d7759ced2f79cfceac721ec2f7cf884c65afc975",
      "parents": [
        "cdd2d2d69666a70a16ac02bacf8e7fbbf4ca9979"
      ],
      "author": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Wed Apr 10 12:46:46 2024 -0600"
      },
      "committer": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Wed Apr 10 19:54:23 2024 +0000"
      },
      "message": "zuul: Fix test dependency on release.war\n\nThis is a fix for change I1712801 that added a test dependency on the\nrelease.war. Zuul doesn\u0027t sync all the core submodules by default, so we\nneed to list them as required dependencies in order to build the release\nwar.\n\nRelease-Notes: skip\nChange-Id: I71bfad7a59d95f5677111b635d3c5d3fc3cb14e2\n"
    },
    {
      "commit": "cdd2d2d69666a70a16ac02bacf8e7fbbf4ca9979",
      "tree": "67ff6bd17e80051636ae3b61ad0b127618049021",
      "parents": [
        "ba74d4969462c2592bcf97868dd76c33041d47b2"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Thu Feb 01 14:22:45 2024 +0000"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Thu Feb 01 14:22:59 2024 +0000"
      },
      "message": "Use Path.of() instead of Paths.get()\n\nPath.of() makes Paths.get() obsolete in Java 11\n\nChange-Id: I5fd7899d1baa0531265f9ae057bb0fbbba27f9dc\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "ba74d4969462c2592bcf97868dd76c33041d47b2",
      "tree": "3cb3c2e392663037898d39257b2f2f8f8d3f3c7d",
      "parents": [
        "dbd68200d867513e2c0449798476e275aaf08cfd"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu Jul 13 20:09:03 2023 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Jul 21 17:07:38 2023 +0100"
      },
      "message": "Filter out JsonNull values in artifacts meta-data fields\n\nConsider fields having a null value as inexistent, so that\nthey are automatically filtered out in the list of plugins\ndisplayed by the plugin manager.\n\nBug: Issue 290658426\nChange-Id: I45d8a613a0ced6610d226069a8f1a5212345414e\n"
    },
    {
      "commit": "dbd68200d867513e2c0449798476e275aaf08cfd",
      "tree": "2ed4613bb77a5598c5be15b355dc1e8251739e9a",
      "parents": [
        "367f43435c8c0699828abe24e765e4fc0881737e"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Tue Jan 04 16:08:47 2022 +0100"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Tue Jan 04 16:09:38 2022 +0100"
      },
      "message": "Fix JdkObsolete issue with Date\n\nUse Instant instead of Date and format it with a formatter that produces\nthe same output as \u0027new Date().toString()\u0027.\n\nBug: Issue 15070\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\nChange-Id: I4d22075616050ffbf403857e5517116a70902c01\n"
    },
    {
      "commit": "367f43435c8c0699828abe24e765e4fc0881737e",
      "tree": "9b6a86d9f9d2ebe80b1e57bd59a2842df1cd36a2",
      "parents": [
        "e0664f668ab5bac96a1e105b80d886de66743b1b"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Tue Dec 21 17:01:07 2021 +0100"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Tue Dec 21 17:03:01 2021 +0100"
      },
      "message": "Adapt to enabling error level for the StringSplitter bug pattern\n\nFix the current issues so that the build continues to work.\n\nWhen replacing String#split(String) with\nSplitter.on(String).splitToList(String) one has to take into account\nthat the former method expects a regular expression while the latter one\nexpects a separator string.\n\nBug: Issue 15077\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\nChange-Id: Ied671f0e72c24a5a33ca5d167d1a1ccfcce27e5b\n"
    },
    {
      "commit": "e0664f668ab5bac96a1e105b80d886de66743b1b",
      "tree": "10aba6d5c6ea0349d3755723cfb088a7681e0fe2",
      "parents": [
        "44808dcad3c978ed12bb2cb454c6ad320912aa8a"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Tue Oct 19 15:28:24 2021 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Tue Oct 19 17:08:54 2021 +0200"
      },
      "message": "Fix ErrorProne issues for JavaLangClash bug pattern\n\nThis requires renaming Module classes that clash with java.lang.Module.\n\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\nChange-Id: Ie80778a3ee4f401764548fd480d9ed99189f9deb\n"
    },
    {
      "commit": "44808dcad3c978ed12bb2cb454c6ad320912aa8a",
      "tree": "cbd5815d21e4274aea191389218d2f969096c4cc",
      "parents": [
        "ea992c3b37eed5493c7031ee20faba9dd875170f"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Oct 09 00:53:08 2021 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Oct 09 00:53:08 2021 +0100"
      },
      "message": "Remove commons:lang3 and use the one from core\n\nThe commons:lang3 dependency is now part of the standard\ndependencies and therefore does not need to be explicitly\nmentioned in the plugin\u0027s BUILD file.\n\nChange-Id: I257eb6ccc7feafd5686b189341475d0ebfdb0607\n"
    },
    {
      "commit": "ea992c3b37eed5493c7031ee20faba9dd875170f",
      "tree": "e87301193c137c72f946bf2abf54f417a37f83ba",
      "parents": [
        "5b87f63f3e9c5817bcddf008c0b4005494059368"
      ],
      "author": {
        "name": "Youssef Elghareeb",
        "email": "ghareeb@google.com",
        "time": "Tue Oct 05 18:28:06 2021 +0200"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Oct 05 20:59:01 2021 +0100"
      },
      "message": "plugin-manager: Migrate to commons lang v3\n\nChange-Id: Iaac633a5e8156ebe4ecdbee875f777e64ec00b8b\n"
    },
    {
      "commit": "5b87f63f3e9c5817bcddf008c0b4005494059368",
      "tree": "5743895bb324e838655965328ccace67de0e6f61",
      "parents": [
        "00e57948f4f112c226028bc5c8d8fe60f770038f"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu Jun 03 02:10:38 2021 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Jun 23 17:33:05 2021 +0000"
      },
      "message": "plugin-manager: Use relative URL to access Gerrit base URL\n\nThe plugin-manager plugin was not working properly for setups\nwith a reverse-proxy with a non-root base path.\n\nUse a relative URL for calculating the base path, so that\nany reverse-proxy configuration with a non-root path can\nautomatically get to the main location correctly.\n\nRewrite of Change-Id: If382fe16 with a simplified\nimplementation.\n\nBug: Issue 13521\nChange-Id: I5181098bfb2d4a27eef3b51fc8780cc8f294d1c3\n"
    },
    {
      "commit": "00e57948f4f112c226028bc5c8d8fe60f770038f",
      "tree": "240aac3c3aa35f9ab2e3b1d28b3ff5c16f8de6f2",
      "parents": [
        "d6a33818440eb20aca64a761f79652525b3eb060"
      ],
      "author": {
        "name": "Orgad Shaneh",
        "email": "orgad.shaneh@audiocodes.com",
        "time": "Sun Jun 07 14:26:24 2020 +0300"
      },
      "committer": {
        "name": "Orgad Shaneh",
        "email": "orgad.shaneh@audiocodes.com",
        "time": "Tue Sep 08 10:18:35 2020 +0300"
      },
      "message": "Fix loading of core plugins on Windows\n\n[2020-06-07T13:26:26.841+0300] [plugin-manager-preloader] ERROR com.googlesource.gerrit.plugins.manager.repository.CorePluginsRepository : Invalid plugin filename\njava.net.URISyntaxException: Illegal character in opaque part at index 11: Jar:file:c:\\Projects\\gerrit\\bin\\gerrit.war!/WEB-INF/plugins/gitiles.jar\n\tat java.base/java.net.URI$Parser.fail(URI.java:2915)\n\tat java.base/java.net.URI$Parser.checkChars(URI.java:3086)\n\tat java.base/java.net.URI$Parser.parse(URI.java:3122)\n\tat java.base/java.net.URI.\u003cinit\u003e(URI.java:600)\n\tat com.googlesource.gerrit.plugins.manager.repository.CorePluginsRepository.extractPluginInfoFromJarEntry(CorePluginsRepository.java:59)\n\nBug: Issue 12885\nChange-Id: Icade084c2c156ca3caa1bffd9ae6dcde61a43c3e\n"
    },
    {
      "commit": "d6a33818440eb20aca64a761f79652525b3eb060",
      "tree": "6a16e9a4e03c80a4e9707f8a8c4dd581770e8c33",
      "parents": [
        "d115dac11a20e6fba8359d28cf2f3004f6447483"
      ],
      "author": {
        "name": "Orgad Shaneh",
        "email": "orgad.shaneh@audiocodes.com",
        "time": "Tue Sep 08 10:03:01 2020 +0300"
      },
      "committer": {
        "name": "Orgad Shaneh",
        "email": "orgad.shaneh@audiocodes.com",
        "time": "Tue Sep 08 10:03:01 2020 +0300"
      },
      "message": "Reword some logs\n\nChange-Id: I48b07dbf9d03a147245d748146e45d5963d21d9d\n"
    },
    {
      "commit": "d115dac11a20e6fba8359d28cf2f3004f6447483",
      "tree": "4d611599462bba31b1cd8ae00220ba65127b5eb7",
      "parents": [
        "783f5c65c7dca522658efe10d57d1ac9ab5f9007"
      ],
      "author": {
        "name": "Orgad Shaneh",
        "email": "orgad.shaneh@audiocodes.com",
        "time": "Sun Sep 06 16:37:43 2020 +0300"
      },
      "committer": {
        "name": "Orgad Shaneh",
        "email": "orgad.shaneh@audiocodes.com",
        "time": "Sun Sep 06 16:40:57 2020 +0300"
      },
      "message": "Replace slf4j with FluentLogger\n\nChange-Id: Ieb36e1d6bce08f1f315c8c3635baa95e3360e98d\n"
    },
    {
      "commit": "783f5c65c7dca522658efe10d57d1ac9ab5f9007",
      "tree": "0ae01519370b47a52ef3752dd772d2014d38b37e",
      "parents": [
        "9e7b0a086b3e4d56a3a9407d21b6648c650b8809"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat May 23 22:25:57 2020 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat May 23 21:30:08 2020 +0000"
      },
      "message": "Add Gerrit logo to the intro page\n\nAfter 12 years of the Gerrit Code Review project\nadd the logo to the splash page [1] displayed in the\nout of the box experience of Gerrit.\n\nBy showing the diffy logo on the very first page\nthe new users see when they first run Gerrit, the\nproduct gives the message of a renewed attention\nto the design and user-experience of modern\nGerrit v3.\n\n[1] https://imgur.com/5gpumX8\n\nChange-Id: I6e7085759153c584350ce41e56328298f4f1954c\n"
    },
    {
      "commit": "9e7b0a086b3e4d56a3a9407d21b6648c650b8809",
      "tree": "d5a25b5d64e67362a9ab95670c52d03a030c8e8f",
      "parents": [
        "93d8e1248478c6b2db0a8c1080f2766406dd213d"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Thu May 21 15:10:10 2020 +0200"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@digital.ai",
        "time": "Thu May 21 14:31:17 2020 +0000"
      },
      "message": "Fix RedundantOverride error flagged by error prone\n\nRunning recent error prone version complaining on that code:\n\nXAuthFilter.java:81: error: [RedundantOverride] This overriding method\nis redundant, and can be removed.\n    public PrintWriter getWriter() throws IOException {\n                       ^\n    (see https://errorprone.info/bugpattern/RedundantOverride)\n  Did you mean to remove this line?\n\nBug: Issue 12677\nChange-Id: Ia0712501bb0aafed669f1d713ca9bbb57c81d236\n"
    },
    {
      "commit": "93d8e1248478c6b2db0a8c1080f2766406dd213d",
      "tree": "094bd17411f63a678207353fb61734a1f8419386",
      "parents": [
        "2933add62ecf2cbfc28cfe2cff81ff0e0eecc913",
        "20bec5084c7b90029b8860cbb2fb9a12928f6979"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue May 05 10:07:42 2020 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue May 05 10:07:42 2020 +0100"
      },
      "message": "Merge branch \u0027stable-3.1\u0027\n\n* stable-3.1:\n  Remove plugin-manager from the list of core plugins\n  Remove BUCK build\n  Remove check with hardcoded GERRIT_NEXT_VERSION\n  Fix core plugin name extractions without MANIFEST.MF\n  Backport tests from master to stable-2.16\n\nChange-Id: I0fa80b0bb486cb54fa56c1c1be893947d748d525\n"
    },
    {
      "commit": "20bec5084c7b90029b8860cbb2fb9a12928f6979",
      "tree": "2c396753e3fa442baea548439322f271b0f67066",
      "parents": [
        "c921234cec4c0d058b35a8d117f55fce4d4c5e65",
        "d3b2a6eabcb641e952f253e61b927cd1f7f6e30c"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue May 05 10:02:41 2020 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue May 05 10:02:41 2020 +0100"
      },
      "message": "Merge branch \u0027stable-3.0\u0027 into stable-3.1\n\n* stable-3.0:\n  Remove plugin-manager from the list of core plugins\n  Remove BUCK build\n  Remove check with hardcoded GERRIT_NEXT_VERSION\n  Fix core plugin name extractions without MANIFEST.MF\n  Backport tests from master to stable-2.16\n  Set next version to 3.1\n\nChange-Id: I4c4cab0cec3fc9db56e2e5d01482d826e642ee80\n"
    },
    {
      "commit": "d3b2a6eabcb641e952f253e61b927cd1f7f6e30c",
      "tree": "2c396753e3fa442baea548439322f271b0f67066",
      "parents": [
        "d486f1edac54c63c46f92c93fa15958f89cfe60f",
        "f1d43fe0d01e9bf06b1627c4849129b6eff434d8"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue May 05 02:24:04 2020 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue May 05 02:24:04 2020 +0100"
      },
      "message": "Merge branch \u0027stable-2.16\u0027 into stable-3.0\n\n* stable-2.16:\n  Remove plugin-manager from the list of core plugins\n  Remove BUCK build\n  Remove check with hardcoded GERRIT_NEXT_VERSION\n  Fix core plugin name extractions without MANIFEST.MF\n  Backport tests from master to stable-2.16\n\nChange-Id: I2c2aaab77090b7b7198746664542122b03fbde0e\n"
    },
    {
      "commit": "f1d43fe0d01e9bf06b1627c4849129b6eff434d8",
      "tree": "f7f9672897c552324c4982b8773f371b6ef0e092",
      "parents": [
        "f0f0a5d6d55f168ae119761b4f60302dcf8e0a73"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue May 05 01:59:29 2020 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue May 05 01:59:29 2020 +0100"
      },
      "message": "Remove plugin-manager from the list of core plugins\n\nPlugin-manager wasn\u0027t a core plugin in Gerrit v2.16,\ntherefore it should not be expected to be included in the\nrelease.war and returned in the list of core plugins to install.\n\nChange-Id: I33d05851c7e4b454b132fd117017c43fcef3be01\n"
    },
    {
      "commit": "f0f0a5d6d55f168ae119761b4f60302dcf8e0a73",
      "tree": "cf107486c0f7b9d83dce4cc30f66c34093e3675a",
      "parents": [
        "01452a9a466a528c10b45c6c802037dc80afe38a"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon May 04 14:16:54 2020 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon May 04 14:16:54 2020 +0100"
      },
      "message": "Remove BUCK build\n\nChange-Id: I23e08e237431ba6fac939e0fa79a8bd2407b91aa\n"
    },
    {
      "commit": "01452a9a466a528c10b45c6c802037dc80afe38a",
      "tree": "4c61f87cff7d0419f513907a1a6b8d0d83bfd44c",
      "parents": [
        "825921e51def277c9c6555c281ca781a8d755361"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon May 04 14:09:52 2020 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon May 04 14:12:46 2020 +0100"
      },
      "message": "Remove check with hardcoded GERRIT_NEXT_VERSION\n\nChecking against a fixed GERRIT_NEXT_VERSION is\na very short-sighted approach, as the next version is\nevolving continuously.\n\nFix the issue where a stable next version was\nincorrectly detected as master, just because the\nGerrit versions moved on.\n\nBug: Issue 11264\nChange-Id: I3c3c0fd5e485ec53a5cbd21ae76154a558f2bd9f\n"
    },
    {
      "commit": "825921e51def277c9c6555c281ca781a8d755361",
      "tree": "d3bc807a2e74aa7c975cb5f76bf0f8dc1327d920",
      "parents": [
        "1c6a1cef8aa8987ff4ff3cf948422395c0c1dd3e"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon May 04 13:45:48 2020 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon May 04 14:02:07 2020 +0100"
      },
      "message": "Fix core plugin name extractions without MANIFEST.MF\n\nWhen MANIFEST.MF is missing or is incomplete, extract the\nplugin name by dropping the extension of the .jar file of\nthe plugin contained in release.war.\n\nChange-Id: I2f89e4d3d674602e15c4e1bc281c61c9345df8c7\n"
    },
    {
      "commit": "1c6a1cef8aa8987ff4ff3cf948422395c0c1dd3e",
      "tree": "625fb3d626384902162ddb1dd9be99f6d5ad3d3a",
      "parents": [
        "5450674275655fc6a6db17cb70b2a808801165b4"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Apr 29 13:58:58 2020 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Apr 29 14:01:00 2020 +0100"
      },
      "message": "Backport tests from master to stable-2.16\n\nThe master branch of the plugin-manager contains quite a few\ntests: run them also on stable-2.16, so that we can have\na green build and stable over time, with proper validation in\nplace.\n\nChange-Id: If9b0ba8346b5732f451485788a6c07fb3a93c487\n"
    },
    {
      "commit": "2933add62ecf2cbfc28cfe2cff81ff0e0eecc913",
      "tree": "b13aac578713fecd55ca1bfc5b3b9893a7318cb4",
      "parents": [
        "828d666bbb4aae1a2c348a12d7855ec5db3be46f"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Mon Dec 23 14:24:40 2019 +0100"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Mon Dec 23 14:32:12 2019 +0100"
      },
      "message": "Do not throw generic RestApiException to signal an internal server error\n\nJust throw the ExecutionException which will be mapped to internal\nserver error too. This removes the specific exception message, but the\nsame information is available from the stacktrace which will be logged.\nSince this was an internal server error, the message wasn\u0027t returned to\nclients anyway.\n\nThrowing RestApiExceptions to signal internal server errors is bad\nsince all RestApiExceptions are exempt from retries and auto-tracing.\n\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\nChange-Id: Ie2b167f72c3b659d32f2027c74dbcfb9a95dee04\n"
    },
    {
      "commit": "828d666bbb4aae1a2c348a12d7855ec5db3be46f",
      "tree": "6c43d144145a147a1ab55399664ce51ee7050b4d",
      "parents": [
        "d486f1edac54c63c46f92c93fa15958f89cfe60f"
      ],
      "author": {
        "name": "Patrick Hiesel",
        "email": "hiesel@google.com",
        "time": "Tue Nov 12 14:05:15 2019 -0800"
      },
      "committer": {
        "name": "Patrick Hiesel",
        "email": "hiesel@google.com",
        "time": "Wed Nov 13 09:34:13 2019 -0800"
      },
      "message": "Adapt to core moving GerritConfig to separate package\n\nChange-Id: I3dade02bb478181604d7e7fae7632e5e793c9b5a\n"
    },
    {
      "commit": "d486f1edac54c63c46f92c93fa15958f89cfe60f",
      "tree": "afe370587406c490744caf1bef3f74e72b234186",
      "parents": [
        "c921234cec4c0d058b35a8d117f55fce4d4c5e65",
        "5450674275655fc6a6db17cb70b2a808801165b4"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu Nov 07 14:27:16 2019 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu Nov 07 14:27:16 2019 +0000"
      },
      "message": "Merge branch \u0027stable-2.16\u0027\n\n* stable-2.16:\n  Set next version to 3.1\n\nChange-Id: I71973fc0b2e2764997f7007beabb2d257ca3f6eb\n"
    },
    {
      "commit": "5450674275655fc6a6db17cb70b2a808801165b4",
      "tree": "e2ad130ea716b4d37bc0b40d8f3081b69e3b7d54",
      "parents": [
        "613e25e1b71daa5c4d13719b164026913d147108"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu Nov 07 11:02:18 2019 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu Nov 07 14:12:04 2019 +0000"
      },
      "message": "Set next version to 3.1\n\nNext forthcoming Gerrit version is 3.1 and thus the plugin-manager\nshould return master plugins when the version string starts with\n3.1 *ONLY*.\n\nBug: Issue 11880\nChange-Id: I49e193c75d2937b2ddb8dd67c1d84bf8b4e52bb9\n"
    },
    {
      "commit": "c921234cec4c0d058b35a8d117f55fce4d4c5e65",
      "tree": "afe370587406c490744caf1bef3f74e72b234186",
      "parents": [
        "10e6a3e8c3b637461d9cd0e9457fc3e3f625c27a"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Sun Oct 13 19:08:47 2019 +0200"
      },
      "committer": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Sun Oct 13 19:09:02 2019 +0200"
      },
      "message": "Bazel: Remote unused PLUGIN_DEPS variable\n\nChange-Id: I39c1dfd9d5c1a025410bbd9cdf7eec0bd76dcccd\n"
    },
    {
      "commit": "10e6a3e8c3b637461d9cd0e9457fc3e3f625c27a",
      "tree": "bcf1a2cb223332b188e196f2b38b1fe3800ab775",
      "parents": [
        "58ac34bfebc787219c1e13d7cdc699e918067a0d"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed Oct 09 12:48:14 2019 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed Oct 09 14:59:00 2019 +0900"
      },
      "message": "PluginsRepositoryTest: Skip test when expected env variables are not set\n\nIf either the TEST_SRCDIR or TEST_WORKSPACE environment variables is\nnot defined, the subsequent call to Paths.get will fail with NPE on\ndereferencing the null value returned by System.getenv. This happens\nwhen running the test in Eclipse and is expected because when running\nin Eclipse the release.war is not built.\n\nRefactor it so that the values are explicitly checked for nullness\nprior to dereferencing, and the test is skipped if they are.\n\nAlso refactor the subsequent check for existence of the release.war to\nan assumption that causes the test to skip, rather than failing.\n\nBug: Issue 11699\nChange-Id: Ibf9463cc237bd0f613a09a093b5257af92e7efda\n"
    },
    {
      "commit": "58ac34bfebc787219c1e13d7cdc699e918067a0d",
      "tree": "c8a3fe7f6194f83006e483644a9f61544b3ed8e2",
      "parents": [
        "7dad3163ae91b1f28cdbeec87edca90441fa21b1"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Tue Oct 08 16:57:07 2019 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Tue Oct 08 16:58:12 2019 +0200"
      },
      "message": "PluginInfo: Make output of failing PluginsRepositoryTest more readable\n\nIf you have additional plugins in your working tree the\ncorePluginsRepositoryShouldReturnCorePluginsFromReleaseWar test fails\n(as expected) but it\u0027s output is rather unreadable [1]. Make it nicer\n[2].\n\n[1]\n1) corePluginsRepositoryShouldReturnCorePluginsFromReleaseWar(com.googlesource.gerrit.plugins.manager.repository.PluginsRepositoryTest)\nvalue of    : iterable.size()\nexpected    : 11\nbut was     : 12\niterable was: [com.googlesource.gerrit.plugins.manager.repository.PluginInfo@3da6950f, com.googlesource.gerrit.plugins.manager.repository.PluginInfo@42684d86, com.googlesource.gerrit.plugins.manager.repository.PluginInfo@45a05350, com.googlesource.gerrit.plugins.manager.repository.PluginInfo@7d6a9d5e, com.googlesource.gerrit.plugins.manager.repository.PluginInfo@74ed7111, com.googlesource.gerrit.plugins.manager.repository.PluginInfo@74691677, com.googlesource.gerrit.plugins.manager.repository.PluginInfo@3314f179, com.googlesource.gerrit.plugins.manager.repository.PluginInfo@1abd1a28, com.googlesource.gerrit.plugins.manager.repository.PluginInfo@5478597, com.googlesource.gerrit.plugins.manager.repository.PluginInfo@39a1e1e6, com.googlesource.gerrit.plugins.manager.repository.PluginInfo@2daa5092, com.googlesource.gerrit.plugins.manager.repository.PluginInfo@5f346355]\n\tat com.googlesource.gerrit.plugins.manager.repository.PluginsRepositoryTest.corePluginsRepositoryShouldReturnCorePluginsFromReleaseWar(PluginsRepositoryTest.java:60)\n\n[2]\n1) corePluginsRepositoryShouldReturnCorePluginsFromReleaseWar(com.googlesource.gerrit.plugins.manager.repository.PluginsRepositoryTest)\nunexpected (1): checks\n\nChange-Id: I520c4b918ad1b1a7bccea7e48afe1ea271aff5b5\n---\nexpected      : [codemirror-editor, commit-message-length-validator, delete-project, download-commands, gitiles, hooks, plugin-manager, replication, reviewnotes, singleusergroup, webhooks]\nbut was       : [checks, codemirror-editor, commit-message-length-validator, delete-project, download-commands, gitiles, hooks, plugin-manager, replication, reviewnotes, singleusergroup, webhooks]\n\tat com.googlesource.gerrit.plugins.manager.repository.PluginsRepositoryTest.corePluginsRepositoryShouldReturnCorePluginsFromReleaseWar(PluginsRepositoryTest.java:61)\n\nChange-Id: Iaac0ea0a421ba97b443ed99ba152323b77d79515\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "7dad3163ae91b1f28cdbeec87edca90441fa21b1",
      "tree": "7be20dcd491035da81b9a5846b58dfa7e6fedba1",
      "parents": [
        "69343c65a66d752c3a41788c191a38fc64cc2a32"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Sep 18 11:44:10 2019 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Sep 18 11:44:10 2019 +0200"
      },
      "message": "Adapt to change in Gerrit core\n\nWith change I89c0c68bf Response#value() is now throwing Exception which\nneeds to be handled.\n\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\nChange-Id: I8742c6ed231dad374192e0bc7002c86aba4cb687\n"
    },
    {
      "commit": "69343c65a66d752c3a41788c191a38fc64cc2a32",
      "tree": "2f34ef54c6b2e878b5cf60617d663586f246fac0",
      "parents": [
        "7d9562b29c8ae277595a1e9c6a18c1018252cd16"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david.ostrovsky@gmail.com",
        "time": "Wed Sep 11 09:49:54 2019 +0000"
      },
      "committer": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Wed Sep 11 22:24:28 2019 +0200"
      },
      "message": "CorePluginsRepository: Simplify manifest attributes extraction\n\nChange-Id: Iedf986e6bf4448f4cf2eda40e4486a72c6001de8\n"
    },
    {
      "commit": "7d9562b29c8ae277595a1e9c6a18c1018252cd16",
      "tree": "85803354f2e60e0437efb1b6233171c13e2a4585",
      "parents": [
        "b4aad554e56d9359fc0b17997f260169f685c7f2"
      ],
      "author": {
        "name": "Dave Borowitz",
        "email": "dborowitz@google.com",
        "time": "Thu May 16 16:46:16 2019 +0200"
      },
      "committer": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Wed Sep 11 09:32:09 2019 +0200"
      },
      "message": "CorePluginsRepository: Convert to streams and lambdas\n\nChange-Id: If26858a4c3ba6e814d19252702af0dab95e037b6\n"
    },
    {
      "commit": "b4aad554e56d9359fc0b17997f260169f685c7f2",
      "tree": "c8f405a8637a6eddc672b035a557f0a60ac97214",
      "parents": [
        "e94247c339652d028f5223524ecea56eac168a77"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Sep 10 15:50:19 2019 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Sep 10 15:55:08 2019 +0100"
      },
      "message": "Remove plugin entry .jar suffix when manifest is not found\n\nWhen the MANIFEST.MF cannot be found in the release.war, assume\nthe entry name without the .jar suffix as plugin name.\n\nChange-Id: I0db39f42c33d87f739ce94cf2ce5e4d2372ab0f2\n"
    },
    {
      "commit": "e94247c339652d028f5223524ecea56eac168a77",
      "tree": "1ba055b4bf69f67ae11fef0806ac9e7f3a77c45e",
      "parents": [
        "833889d327a159b5ccea7064f4fcff3f94d4b26e"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri May 17 10:58:03 2019 +0200"
      },
      "committer": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Tue Sep 10 00:27:38 2019 +0200"
      },
      "message": "Add test for CorePluginsRepository\n\nUsing dependency on release.war in Bazel junit_tests rule, using data\nattribute, we can depend on release.war content in the tests: [1].\n\nThen we can retrieve the TEST_SRCDIR passed through environment variable\nto the test and retrieve the content of the release.war from within the\ntests. The only disadvantage of this approach, is that the test in this\nform wouldn\u0027t work from within IDE. But in this case release.war could\nbe built manually and passed in the test by other means.\n\n[1] https://docs.bazel.build/versions/master/build-ref.html#data\n\nChange-Id: I17128017e2ec0287baf34e84b35eed1683f3f422\n"
    },
    {
      "commit": "833889d327a159b5ccea7064f4fcff3f94d4b26e",
      "tree": "ed9635384de62f77137f469d4e1d9143f3df0ddf",
      "parents": [
        "f681e7ecb6ddbc52fe9e07cf3672ccdcad7d7d0b"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Jul 17 15:11:58 2019 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Jul 17 15:12:19 2019 +0200"
      },
      "message": "Adapt to changed REST interfaces in Gerrit core\n\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\nChange-Id: I1d05880cbfd723f517460e43722ad128992acce1\n"
    },
    {
      "commit": "f681e7ecb6ddbc52fe9e07cf3672ccdcad7d7d0b",
      "tree": "422de16a92d2a787af3403a3ebdd7c040faf9265",
      "parents": [
        "a51055a8f3b71f2ccf634016c42eb5b8086a373b"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Jul 17 14:46:43 2019 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Jul 17 14:47:47 2019 +0200"
      },
      "message": "ListAvailablePlugins: Let RestApiServlet do the conversion to JSON\n\nAlso inline the display() method which had only a single caller.\n\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\nChange-Id: I63a9275fe48ce68d8cf81ad82d4fe6a37aa96781\n"
    },
    {
      "commit": "a51055a8f3b71f2ccf634016c42eb5b8086a373b",
      "tree": "e15acfeccb6935bdedcaf7c9ff7404980306b641",
      "parents": [
        "9edc1950d3c0a3717cefda1688a4c37e7fc652fb"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Mon May 27 13:50:26 2019 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Mon May 27 13:55:43 2019 +0900"
      },
      "message": "Specify charset to fix DefaultCharset error from error prone\n\nWhen all error prone warnings are enabled the DefaultCharset\nbug pattern is reported, for example:\n\n  plugins/plugin-manager/src/main/java/com/googlesource/gerrit/plugins/manager/FirstWebLoginListener.java:56:\n  error: [DefaultCharset] Implicit use of the platform default charset, which\n  can result in differing behaviour between JVM executions or incorrect behavior\n  if the encoding of the data source doesn\u0027t match expectations.\n        Files.write(firstLoginFile, new Date().toString().getBytes(), StandardOpenOption.CREATE);\n                                                                  ^\n    (see https://errorprone.info/bugpattern/DefaultCharset)\n\nChange-Id: I29e19b68c014da9afd491006d936f92219808978\n"
    },
    {
      "commit": "9edc1950d3c0a3717cefda1688a4c37e7fc652fb",
      "tree": "97277e631225217766bf61cccfc3eaac16a1ad1f",
      "parents": [
        "ec349d12a0b52280a48a66d4c5adf20f900c2393"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Thu May 09 12:37:05 2019 +0900"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu May 09 07:38:32 2019 +0100"
      },
      "message": "GerritVersionBranch: Fix branch detection for 3.0.0-rcx versions\n\nThe detection assumes that any version string that includes \"-\" in\nthe \u0027minor\u0027 version is a git describe generated version, such as:\n\n  2.16.8-17-gc8b633d5ce\n\nand treats it as the \u0027next\u0027 version. This logic does not take into\naccount that the latest release version 3.0.0 has the explicit trailing\n\".0\" on it, so the version \"3.0.0-rc3\" is parsed incorrectly and \"master\"\nis returned.\n\nChange the condition to check for \"-g\" instead, since \"g\" is always\nincluded before the abbreviated sha1 in a git describe version.\n\nAdd tests to confirm that it behaves as expected for various forms\nof version string.\n\nChange-Id: Ifab49a4d3985acce0dbdcbe54d89460bd7c3f027\n"
    },
    {
      "commit": "ec349d12a0b52280a48a66d4c5adf20f900c2393",
      "tree": "842087e4b77da10ca6f5310a467291d49bb83c37",
      "parents": [
        "e1cc65b2fd3b2e2815181e069fcbefb1e74e53bf"
      ],
      "author": {
        "name": "Marco Miller",
        "email": "marco.miller@ericsson.com",
        "time": "Fri May 03 15:06:49 2019 -0400"
      },
      "committer": {
        "name": "Marco Miller",
        "email": "marco.miller@ericsson.com",
        "time": "Fri May 03 15:11:38 2019 -0400"
      },
      "message": "Enlist the newly core plugin-manager plugin itself\n\nChange-Id: Ic5f0dac5c106ec7ff7ac4480e0b818ff2f1cf8db\n"
    },
    {
      "commit": "e1cc65b2fd3b2e2815181e069fcbefb1e74e53bf",
      "tree": "c01c95dc5886442e533904ca7eba780792844fa5",
      "parents": [
        "d80d0515ff008170128afa504796b83024631778"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Apr 24 10:54:46 2019 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu Apr 25 15:56:01 2019 +0000"
      },
      "message": "Add initial overview and configuration docs\n\nIntroduce the overview of what the plugin does\nand describe the configuration parameters required.\n\nChange-Id: Id21973ae92984dfb2f8a65a961710485f19990b8\n"
    },
    {
      "commit": "d80d0515ff008170128afa504796b83024631778",
      "tree": "350cd79315cdebf49a98f2a7ecca9a3e850f9873",
      "parents": [
        "8219c851a4e00b4027e4393c70f583cf2f9eb118"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Apr 23 22:23:52 2019 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Apr 23 21:35:18 2019 +0000"
      },
      "message": "Add top-menu integration tests\n\nDemonstrate that the plugin-manager is able to load\nand install correctly on the top-menu bar, showing\nthe plugin management item.\n\nChange-Id: I1ce612e857a23e26b1c81e5185ad2d63308eb13d\n"
    },
    {
      "commit": "8219c851a4e00b4027e4393c70f583cf2f9eb118",
      "tree": "fac073534267976922aa642ff92271a5b95b22bb",
      "parents": [
        "7e3e13d388460c80e9c198c5bb4c1cf5abb3aa04"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Apr 23 17:43:30 2019 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Apr 23 17:43:30 2019 +0100"
      },
      "message": "Set next Gerrit version to 3.1\n\nCurrent stable branch is 3.0 and master is pointing to\nversion 3.1.\n\nChange-Id: I648935e944fcda32a551bca3814ba152f12ea7af\n"
    },
    {
      "commit": "7e3e13d388460c80e9c198c5bb4c1cf5abb3aa04",
      "tree": "72aec9bb128f808f60ae809e8d460ae05392bc4e",
      "parents": [
        "3ec637f4805ccf414bd3d6e751b0d7f189b05e35"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Thu Apr 18 09:33:56 2019 -0700"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu Apr 18 19:57:35 2019 +0000"
      },
      "message": "Document that plugins.allowRemoteAdmin option must be enabled\n\nAlso mention, that currently only the members of the administrator\ngroup allowed to use this plugin.\n\nChange-Id: I97e4f8fb9aba5424589441ae58cbb4575fb075a3\n"
    },
    {
      "commit": "3ec637f4805ccf414bd3d6e751b0d7f189b05e35",
      "tree": "87412d0f3ab3b90e7195c35b6a38b6679f8ac56c",
      "parents": [
        "c9cbf109cc6fdc025b0721ff07cfe3e175c93f4d"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Wed Apr 17 17:45:31 2019 -0700"
      },
      "committer": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Wed Apr 17 19:06:29 2019 -0700"
      },
      "message": "Update core plugins list\n\nChange-Id: If36296bc94bffb213e580bbb94eb1d56c7f2c1e7\n"
    },
    {
      "commit": "c9cbf109cc6fdc025b0721ff07cfe3e175c93f4d",
      "tree": "86e0304321c4eccfa89f1b8e0dcdbab45a82e4c3",
      "parents": [
        "e8b00b41559a21ce0de68be7743acb00446cf014",
        "613e25e1b71daa5c4d13719b164026913d147108"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Wed Apr 17 16:41:55 2019 -0700"
      },
      "committer": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Wed Apr 17 16:41:55 2019 -0700"
      },
      "message": "Merge branch \u0027stable-2.16\u0027\n\n* stable-2.16:\n  Update core plugins list\n\nChange-Id: Ie48725cbc9c8275590195b1fedf05ef0f0730789\n"
    },
    {
      "commit": "613e25e1b71daa5c4d13719b164026913d147108",
      "tree": "646e91f4a831ce801546e235333fa9fc9d119e5c",
      "parents": [
        "a163b2262e173a7c66b9e7271cb9df24e45c5049"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Wed Apr 17 16:37:40 2019 -0700"
      },
      "committer": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Wed Apr 17 16:40:35 2019 -0700"
      },
      "message": "Update core plugins list\n\nChange-Id: I247a65ccca5b9f9c4196bc3c9c82b69196abd700\n"
    },
    {
      "commit": "e8b00b41559a21ce0de68be7743acb00446cf014",
      "tree": "4525b2b3476d91175e49be2eafd7280978a5aad1",
      "parents": [
        "4b0a188c622db13d3753bc733161123429a7ad2f"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Wed Apr 17 14:56:57 2019 -0700"
      },
      "committer": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Wed Apr 17 14:56:57 2019 -0700"
      },
      "message": "Format all files with google-java-format 1.7\n\nChange-Id: I9e5f32bdbedf4828881ee903d6b1fc725b38d7ab\n"
    },
    {
      "commit": "4b0a188c622db13d3753bc733161123429a7ad2f",
      "tree": "b73bcfeeb01b0ea039ecd7782fb65c86bdcd0339",
      "parents": [
        "89f9fb5e77b943b7a95d40b7360fed04cd7cc505"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Wed Apr 17 14:54:58 2019 -0700"
      },
      "committer": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Wed Apr 17 14:54:58 2019 -0700"
      },
      "message": "Format BUILD file with buildifier\n\nChange-Id: I5f5d4589f6117230f91a5c0713a76172bdc3addf\n"
    },
    {
      "commit": "89f9fb5e77b943b7a95d40b7360fed04cd7cc505",
      "tree": "332c703bba904bae090f711c4039dff30a476d02",
      "parents": [
        "c5b4db2ca502b7949ecf911f5b629015940c3e6a"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Wed Apr 17 12:24:01 2019 -0700"
      },
      "committer": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Wed Apr 17 12:25:11 2019 -0700"
      },
      "message": "Adapt to the move of OutputFormat to root gerrit package\n\nChange-Id: Ib921d28715ddc6b6b3519f683b9193b65389efac\n"
    },
    {
      "commit": "c5b4db2ca502b7949ecf911f5b629015940c3e6a",
      "tree": "8a85ce3aa8f0960fd71699d157ee55d9d577146a",
      "parents": [
        "a163b2262e173a7c66b9e7271cb9df24e45c5049"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu Nov 01 23:17:46 2018 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu Nov 01 23:17:46 2018 +0000"
      },
      "message": "Set next Gerrit version to 3.0\n\nChange-Id: I38512eb1e6b4dedb91b86863b730a2bc3c6e1fc0\n"
    },
    {
      "commit": "a163b2262e173a7c66b9e7271cb9df24e45c5049",
      "tree": "d304f7f7acaa58bd66246c9d06c3d3cd23d32cde",
      "parents": [
        "3816915fc0e882d8391f0dc62ef8f69b72aca91e"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Oct 19 08:19:23 2018 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Oct 19 08:19:41 2018 +0100"
      },
      "message": "Revert \"Fix expire time of cache using TimeUnits\"\n\nMaster was actually compatible with Gerrit master and stable-2.16\nand the fix wasn\u0027t needed after all.\n\nThis reverts commit 3816915fc0e882d8391f0dc62ef8f69b72aca91e.\n\nChange-Id: Iaa39a7db734e391652d729a6ed2e70f37913540d\n"
    },
    {
      "commit": "3816915fc0e882d8391f0dc62ef8f69b72aca91e",
      "tree": "970a1543275f1e680ebe7440af8f48ea4f2bbda1",
      "parents": [
        "dcdb6c9b8a7a30d18a1ed92c6e377710c23b752f"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu Oct 18 23:59:39 2018 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu Oct 18 23:59:51 2018 +0100"
      },
      "message": "Fix expire time of cache using TimeUnits\n\nChange-Id: I6046a23ff7434eaf3cd94f14b757aba759575e06\n"
    },
    {
      "commit": "dcdb6c9b8a7a30d18a1ed92c6e377710c23b752f",
      "tree": "d304f7f7acaa58bd66246c9d06c3d3cd23d32cde",
      "parents": [
        "c7cf6f69410043eaa6bbbbc84c22e1fbe027dc44"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Tue Sep 04 09:17:03 2018 +0200"
      },
      "committer": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Tue Sep 04 09:19:26 2018 +0200"
      },
      "message": "PluginsCentralCache: Restore cache expiration time to 1 day\n\nIn I7163b6e415 cache expiration time was inadvertently replaced to 10\ndays. Restore the previous value of 1 day.\n\nChange-Id: I2c79c5af897c1d4578116a7c09d14fa438d2b29b\n"
    },
    {
      "commit": "c7cf6f69410043eaa6bbbbc84c22e1fbe027dc44",
      "tree": "375bfa10dfa66a7683f8bb520e0869de57ad11bc",
      "parents": [
        "5ac7df76593580d1018673e8fed531bc5dc88e9c"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Tue Sep 04 09:03:40 2018 +0200"
      },
      "committer": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Tue Sep 04 09:04:57 2018 +0200"
      },
      "message": "Adapt to recent API version\n\nChange-Id: I7163b6e4158365643ee222004b2b3d97220ef4d1\n"
    },
    {
      "commit": "5ac7df76593580d1018673e8fed531bc5dc88e9c",
      "tree": "19ab1d7ca592bfb1d14c685a00188c069d7ac2c3",
      "parents": [
        "27c3d2935d16f6209c42ca76ef8d0fbb7b2337c5"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Mon Sep 03 21:43:18 2018 +0200"
      },
      "committer": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Mon Sep 03 21:51:41 2018 +0200"
      },
      "message": "Retrieve real plugin jar instead of static resource jar\n\nSome plugins, most notably GWT UI plugins, have intermediate artifacts\nthat are called \u003cplugin-name\u003e-static.jar. Usually those artifacts are\nretrieved on the first position and artifact searching algorithm hasn\u0027t\nfiltered them out. This results in annoying troubleshooting sessions\nbecause gerrit listing those plugins as installed, but given that\nthose jars are just GWT resources nothing is actually working.\n\nThe following plugins were affected:\n\n* reviewers-static.jar\n* review-strategy-static.jar\n* menuextender-static.jar\n\nChange-Id: Ic8d597be18f2bbfdd42c2528456ea0188fcba76d\n"
    },
    {
      "commit": "27c3d2935d16f6209c42ca76ef8d0fbb7b2337c5",
      "tree": "c6d971ec761565caae43d200d35a8c217da344de",
      "parents": [
        "1e4862d59468325750ebe47eae002646a9401332"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Apr 11 00:15:01 2018 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Apr 11 00:15:01 2018 +0100"
      },
      "message": "Bump next Gerrit version to 2.16\n\nUpdate the expected next version of Gerrit so that\ncurrent v2.15.x would get the plugins from a stable-2.15\nbranch and not from master.\n\nBug: Issue 8687\nChange-Id: I4e269cb4b21e2e3e2980f9d6b2c8e7dea7d1fab5\n"
    },
    {
      "commit": "1e4862d59468325750ebe47eae002646a9401332",
      "tree": "cc391cd4c96315004dbc9917a2d6051003426fae",
      "parents": [
        "033d774a3bfc58b5c718faa309dcc186e5cbc424"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu Mar 29 00:17:43 2018 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu Mar 29 00:17:43 2018 +0100"
      },
      "message": "Update Copyright to 2018\n\nChange-Id: Id866b29382b8cd27e22d31ab017dde20661989b4\n"
    },
    {
      "commit": "033d774a3bfc58b5c718faa309dcc186e5cbc424",
      "tree": "6e94a4ceebf38eca50284ad0ad4f8988abcc8600",
      "parents": [
        "57c082ef9fba05a9c7d83dc83a59673f87364f0a",
        "1a2fc039ea3aef6b2d9a50b8b911d64aa0c67668"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Mar 28 23:58:16 2018 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu Mar 29 00:12:11 2018 +0100"
      },
      "message": "Merge branch \u0027stable-2.14\u0027\n\n* stable-2.14:\n  Fix computation of the target branch on CI\n  Align button width to labels\n  Bring navigation back to Gerrit\n  Align action buttons with the rest of plugin info\n  Display plugin description\n  Define new annotation to get the plugin URL path\n  Add intro page after first admin login into Gerrit\n  Redirect using path-based URL\n\nChange-Id: I8939e170e1de6b8282b4a1b2f9e2e36c2c761ac8\n"
    },
    {
      "commit": "57c082ef9fba05a9c7d83dc83a59673f87364f0a",
      "tree": "71f74f69e46059f9a5e0aa3fa19bb2dd73e60262",
      "parents": [
        "ae922a8c8963b1931dc2853fa7b283615350eb13"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Oct 06 16:56:25 2017 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Oct 06 16:56:37 2017 +0100"
      },
      "message": "Adapt to latest AcceptCreate\u003c\u003e interface on master\n\nChange-Id: I884227f8fa8404194afeb6aff04a93e33452e503\n"
    },
    {
      "commit": "ae922a8c8963b1931dc2853fa7b283615350eb13",
      "tree": "aa64867f532d123421b3350b4cd11b671ef6b8a9",
      "parents": [
        "ab489b594bf92a97999c8e810683ae2f40816523"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sun Aug 20 09:04:40 2017 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Aug 23 07:00:24 2017 +0000"
      },
      "message": "Use PermissionBackend for plugins management\n\nRely on the new PermissionBackend interface for detecting whether\nto enable or not the menus and functionalities of the Plugin Manager.\n\nChange-Id: Ie3ce2874ae3e3940c932b39c8c312c5ef1e74dcd\n"
    },
    {
      "commit": "ab489b594bf92a97999c8e810683ae2f40816523",
      "tree": "0666dab45f1b0d24c4eb123482f5117521a0381e",
      "parents": [
        "da1508ec5c0f51b48a8ac33755ba96edaf7afb60"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sun Aug 20 09:05:40 2017 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sun Aug 20 09:12:35 2017 +0100"
      },
      "message": "Google-formatting reindenting on all files\n\nChange-Id: I713d780e41546a3d9e4f3d506795c1aea30a4b96\n"
    },
    {
      "commit": "1a2fc039ea3aef6b2d9a50b8b911d64aa0c67668",
      "tree": "5215062cf2851c3fd5e1c4117b7cab6320bce237",
      "parents": [
        "bb49fcf8562d799f1f89fa012933312dccc9bf16"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu May 11 22:23:07 2017 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri May 12 07:19:32 2017 +0000"
      },
      "message": "Fix computation of the target branch on CI\n\nWhen computing the target branch on Gerrit CI, take into account\nthe fix level included in the minor version (-NN-sha1)\nand set next version as 2.15.\n\nChange-Id: Iafb060900835ccc7a9bccff89681500b59686b04\n"
    },
    {
      "commit": "bb49fcf8562d799f1f89fa012933312dccc9bf16",
      "tree": "5408b9e1914db029b0608972c5ca108c152143a8",
      "parents": [
        "00368c65fdfe71c2c0d85788726644cc94d2a70a"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon May 08 21:06:38 2017 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon May 08 21:07:17 2017 +0100"
      },
      "message": "Align button width to labels\n\nThe action buttons and \"up-to-date\" labels are better to be\nroughly of the same width, so that UX can \"jump\" a lot less\nduring transitions.\n\nChange-Id: If017a4c5c4aa4ff0b25384a809b2e93fce0026f0"
    },
    {
      "commit": "00368c65fdfe71c2c0d85788726644cc94d2a70a",
      "tree": "2536162a0f7a1c99e47d0a2d6601733f6fb2a1ac",
      "parents": [
        "73822797f8c1e1849cc4b933737ea21dfdd20ae6"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri May 05 21:39:06 2017 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon May 08 17:08:05 2017 +0100"
      },
      "message": "Bring navigation back to Gerrit\n\nMake the navigation link that returns to Gerrit UX more visible,\nso that it will obvious how to return to the main screen once\nyou are done with plugins.\n\nChange-Id: Idc13ccd3a73fffe6569ed54e176e2378b639b006"
    },
    {
      "commit": "73822797f8c1e1849cc4b933737ea21dfdd20ae6",
      "tree": "86ae11664804c23ba4fdb407b5b9340dd05a2223",
      "parents": [
        "ee27921a399b15b0f51291b73dbe60b8b50fa1a6"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri May 05 00:50:43 2017 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon May 08 15:23:53 2017 +0000"
      },
      "message": "Align action buttons with the rest of plugin info\n\nChange-Id: I5c1b8c72605ec4bee463e743254795dc6a003dbe"
    },
    {
      "commit": "ee27921a399b15b0f51291b73dbe60b8b50fa1a6",
      "tree": "065596aeb627d8e31d6b68d7c91e2ee5e5b30ca7",
      "parents": [
        "bf4485f1178e260f13b2014627f764c07aeea577"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu May 04 01:24:28 2017 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon May 08 16:08:18 2017 +0100"
      },
      "message": "Display plugin description\n\nShow the plugin description coming directly from the Gerrit API\nand calculated at build time.\n\nChange-Id: I6ab6d943351195c777b9b4a1c840f1ed2d9a6660"
    }
  ],
  "next": "bf4485f1178e260f13b2014627f764c07aeea577"
}
