)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "bf4485f1178e260f13b2014627f764c07aeea577",
      "tree": "10f63fbe15763d3f28adca586cbefc080d5fdab4",
      "parents": [
        "680fed506036675df73c240a8ab7060af759dfb5"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed May 03 08:21:42 2017 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon May 08 08:54:27 2017 +0000"
      },
      "message": "Define new annotation to get the plugin URL path\n\nIt is handy to inject the full plugin canonical URL excluding the\nhostname, protocol and port, which could be hidden behind a reverse\nproxy.\n\nThis allows to generate all links in a \"reverse-proxy-friendly\"\nfashion throughout all plugin code.\n\nChange-Id: I2b8f8a7c528c5d10eea39a84254ac38c8d213be5"
    },
    {
      "commit": "680fed506036675df73c240a8ab7060af759dfb5",
      "tree": "0a9ed3d6138c7c84af7dc4ec044b30f86452d2c2",
      "parents": [
        "304d5b671a9131d6cbeb13b5f0eac4f8c331e1fc"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue May 02 09:46:21 2017 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon May 08 09:53:22 2017 +0100"
      },
      "message": "Add intro page after first admin login into Gerrit\n\nGive some initial help and the most noteworthy links to the first-time\nadmin user after its very first login into Gerrit Code Review UX.\n\nChange-Id: Ia0e755b8b392f1fbad5a3a800c874be27078784c"
    },
    {
      "commit": "304d5b671a9131d6cbeb13b5f0eac4f8c331e1fc",
      "tree": "9ba2ad955c978b87faadbb2b01fc67ee8b7f933e",
      "parents": [
        "da1508ec5c0f51b48a8ac33755ba96edaf7afb60"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue May 02 00:03:53 2017 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue May 02 00:06:13 2017 +0100"
      },
      "message": "Redirect using path-based URL\n\nDo not use a full URL when redirecting at first login because it\ncould be at time incorrect.\n\nWhen running Gerrit from inside a container, Docker itself acts as\nan HTTP reverse proxy and the actual external hostname would be\ndifferent.\n\nChange-Id: I6be4d09902b4f1998575d40daa65ddf9fb0f0d26"
    },
    {
      "commit": "da1508ec5c0f51b48a8ac33755ba96edaf7afb60",
      "tree": "eacb2bcced2bbb350921f40240be0896c2a8427a",
      "parents": [
        "46c7b2a2f63b3a282c2e49130743649bada96b18"
      ],
      "author": {
        "name": "Paladox none",
        "email": "thomasmulhall410@yahoo.com",
        "time": "Sun Jan 29 15:39:15 2017 +0000"
      },
      "committer": {
        "name": "Paladox none",
        "email": "thomasmulhall410@yahoo.com",
        "time": "Mon Jan 30 08:49:34 2017 +0000"
      },
      "message": "Add support for Bazel in Gerrit tree build\n\nChange-Id: Iace4540a5d4f48a717c9e3fb3c9be647df82c1e0\n"
    },
    {
      "commit": "46c7b2a2f63b3a282c2e49130743649bada96b18",
      "tree": "3e7370761520b66203cdbc8b00b8d7ce08bbf795",
      "parents": [
        "dd8d7ad75088096af8aa70eaf6005c6bb6d798c2"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Mon Nov 14 18:35:55 2016 -0800"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed Jan 11 09:45:53 2017 +0900"
      },
      "message": "Replace Guava\u0027s Optional with native Java 8 Optional\n\nChange-Id: I913158eda2423de103367bf3067b8ce44f90fd9c\n"
    },
    {
      "commit": "dd8d7ad75088096af8aa70eaf6005c6bb6d798c2",
      "tree": "8aeecc1fedfabee50469e737955d91f806b19f07",
      "parents": [
        "a1a38b099b6567cee185b1ad162b7e39665a9953"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed Jan 11 09:05:37 2017 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed Jan 11 09:05:37 2017 +0900"
      },
      "message": "Add missing @Override annotations\n\nAnd remove unnecessary suppression of warning for unused parameter\nin overridden method.\n\nChange-Id: I7db95dee276f44b4245d8f7ca00df761e687a350\n"
    },
    {
      "commit": "a1a38b099b6567cee185b1ad162b7e39665a9953",
      "tree": "b0810ab0f394010e48e6d3978d1666e4d782b6a4",
      "parents": [
        "1685eaca40da0fa452c57765a8586b6efed67dcf"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Mon Nov 14 18:38:02 2016 -0800"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed Jan 11 09:05:04 2017 +0900"
      },
      "message": "Remove unnecessarily nested else clauses\n\nChange-Id: I281d139b00325419362bc4011462676f25a15a11\n"
    },
    {
      "commit": "1685eaca40da0fa452c57765a8586b6efed67dcf",
      "tree": "90a4632906b8c9c302e9791e0f19c3f4eccc7c7b",
      "parents": [
        "b473e45a3ce84ca0a12e41e69e2b487d0a3bb085"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed Jan 11 09:02:52 2017 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed Jan 11 09:02:52 2017 +0900"
      },
      "message": "Remove unused import\n\nChange-Id: I28fb7ded7a024055a23b715fd17e55a64e715916\n"
    },
    {
      "commit": "b473e45a3ce84ca0a12e41e69e2b487d0a3bb085",
      "tree": "8b772914da4058467948ffeed4106d2883fc648d",
      "parents": [
        "5f2fff3ec60e0f1537eb748da4b4c79994731360"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sun May 22 22:47:27 2016 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Nov 16 06:37:44 2016 +0000"
      },
      "message": "Refresh only one plugin after install/upgrade\n\nWhen installing or upgrading a single plugin, there is no need to\nrefresh the entire list. \n\nChange-Id: Ib2d7026b786e6f8628c7294f93596025228d8365\n"
    },
    {
      "commit": "5f2fff3ec60e0f1537eb748da4b4c79994731360",
      "tree": "6a41c218446e6798f526293d6a41857fb453ff78",
      "parents": [
        "944485e01babf7839732f42be1503e6ecc64a289"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue May 17 23:37:39 2016 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Nov 16 06:37:23 2016 +0000"
      },
      "message": "Add plugins search box on the top navigation bar\n\nIntroduce a top search box to be able to filter the list of plugins.\n\nSpecifying a search keyword helps a lot on focusing on what the\nadministrator is looking for, without having to go through an\nalphabetical long list.\n\nChange-Id: I5af06c87c7d1232368bd52ff7ecc000924835824"
    },
    {
      "commit": "944485e01babf7839732f42be1503e6ecc64a289",
      "tree": "f39a9bcdc996cc3e7d3ee68c59220d3b207bf55d",
      "parents": [
        "0e26829f34e525abb4cf707503f7c9a0450d8bcf"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue May 17 12:30:59 2016 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Nov 16 06:37:09 2016 +0000"
      },
      "message": "Support core-plugins in gerrit.war as a repository\n\nChange-Id: Iaaa736699de292a6b341f01bfb1c281e5d5d347a\n"
    },
    {
      "commit": "0e26829f34e525abb4cf707503f7c9a0450d8bcf",
      "tree": "3b67cbc4233a629af611205a0f87a2052a21b87f",
      "parents": [
        "aa6390f96b97ef71e88a65cf696f64fbe026ece9"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue May 17 12:30:25 2016 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Nov 16 06:36:54 2016 +0000"
      },
      "message": "Support multiple plugins repositories bindings\n\nChange-Id: I023b0b339f4999f4d62f68e2f4070f7af72d92a6\n"
    },
    {
      "commit": "aa6390f96b97ef71e88a65cf696f64fbe026ece9",
      "tree": "e01a54454c1960447ed2f191f9358e70f24b5ae0",
      "parents": [
        "536cf0c6e58798e27886f5eb3e574f37f84e797b"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue May 17 12:28:37 2016 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Nov 16 06:36:40 2016 +0000"
      },
      "message": "Fix plugin name for Maven-based builds\n\nChange-Id: I830ff4c184c8bd579b5172e63a631a1d27899c43\n"
    },
    {
      "commit": "536cf0c6e58798e27886f5eb3e574f37f84e797b",
      "tree": "93443f9c475287970acc63bbc62059f3a0e77215",
      "parents": [
        "cc8b9f4932abb8fae22f78182fb6b832bee54168",
        "18a17f4418e615695fa0d48a0d7cd93ddcde3cfd"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Nov 16 06:36:27 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 16 06:36:27 2016 +0000"
      },
      "message": "Merge \"Restyling of the plugins list on a single table\""
    },
    {
      "commit": "cc8b9f4932abb8fae22f78182fb6b832bee54168",
      "tree": "891ff2e09b562fea34be98fa71749cd8d9169c09",
      "parents": [
        "2f0480182b398edcb7df22b713bf61e657270802",
        "edccdaa22c02379d653f5402912dbc354290fb13"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Oct 25 23:32:07 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 25 23:32:08 2016 +0000"
      },
      "message": "Merge \"Show plugins install screen at first login\""
    },
    {
      "commit": "2f0480182b398edcb7df22b713bf61e657270802",
      "tree": "30d4f30ed0b83f3eed1961f040492a78ba9e0cdc",
      "parents": [
        "772b47a9db21d9dbf0a7eb615ae1fc39263ac8ad"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Oct 07 10:43:44 2016 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Oct 07 10:44:03 2016 +0000"
      },
      "message": "Revert \"Fix Eclipse warnings\" to fix stable-2.13 build\n\nThis reverts commit 772b47a9db21d9dbf0a7eb615ae1fc39263ac8ad.\n\nChange-Id: Ibbc8d9f32dce83dabfb61d32c013f85cd2ebdb84\n"
    },
    {
      "commit": "772b47a9db21d9dbf0a7eb615ae1fc39263ac8ad",
      "tree": "65500edcfbfd3b9610c80e3ad282e92c50e9cadd",
      "parents": [
        "878ca5fa74942e2c07c0bbd237d40a7e5c5f3323"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Tue Aug 30 21:40:51 2016 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Tue Aug 30 21:40:55 2016 +0900"
      },
      "message": "Fix Eclipse warnings\n\n- Statement unnecessarily nested in \u0027else\u0027 clause\n- Missing @Override annotations\n- Unnecessary \u0027unused\u0027 warning suppression\n\nChange-Id: I388909d5eb517a0d657e1e5dc26f64800bd46caf\n"
    },
    {
      "commit": "18a17f4418e615695fa0d48a0d7cd93ddcde3cfd",
      "tree": "74b89015f06565d03d068d57441dce81b35abe09",
      "parents": [
        "878ca5fa74942e2c07c0bbd237d40a7e5c5f3323"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri May 13 17:15:28 2016 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu May 19 14:05:37 2016 +0000"
      },
      "message": "Restyling of the plugins list on a single table\n\nShow installed plugins, upgrades and new plugins in a single table\nwith the rendering of the actions accordingly (up-to-date, install or\nupgrade)\n\nChange-Id: I812c2a436ed67b0d8abd333c4b80c682baace2b0\n"
    },
    {
      "commit": "878ca5fa74942e2c07c0bbd237d40a7e5c5f3323",
      "tree": "30d4f30ed0b83f3eed1961f040492a78ba9e0cdc",
      "parents": [
        "e1cb31d0218867d8d2a9ac4f6d68d0affe517a6e"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri May 13 17:08:52 2016 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu May 19 13:25:15 2016 +0000"
      },
      "message": "Use restart ReloadMode to support metrics reload\n\nWithout the explicit ReloadMode in the plugin manifest, Gerrit assumes\n\u0027reload\u0027 and does not correctly manage the metrics registration.\n\nFor this plugin the restart mode is good enough: no need to risk\nthe reload mode and incur into the metrics problem.\n\nChange-Id: I38ac8864be96bbfcb9f8f052f398cae570e86c06\n"
    },
    {
      "commit": "edccdaa22c02379d653f5402912dbc354290fb13",
      "tree": "00d5a7a740a266723c9d9006ff23e4f26f65dcb5",
      "parents": [
        "e1cb31d0218867d8d2a9ac4f6d68d0affe517a6e"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu May 12 23:59:54 2016 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon May 16 10:14:06 2016 +0100"
      },
      "message": "Show plugins install screen at first login\n\nWhen Gerrit administrator logs in for the very first time, he is\nredirected to the plugin manager screen, allowing to discover\nand install the desired plugins.\n\nChange-Id: I57cbc91427e9f3a7ee2273f21ec4e8ad3352c83a"
    },
    {
      "commit": "e1cb31d0218867d8d2a9ac4f6d68d0affe517a6e",
      "tree": "343173b6e4eb41c41fb0d525680a9a27d2dad5e0",
      "parents": [
        "6e521b67af7ab70578c4e5f4658a215524a751fc"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sun Nov 08 06:58:36 2015 -0800"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri May 06 23:00:16 2016 +0100"
      },
      "message": "Revamp the UX, introducing the install button\n\nAdds a entry Plugins\u003eManage to Gerrit Top-Menu if:\n- remote plugin management is enabled\n- current user has admin permissions\n\nThe list of available plugins includes both version + sha1\nallowing to match them against the list of loaded plugins.\nPlugins that are already installed and loaded are not shown anymore\nin the list of the ones available.\n\nExpose the plugin jar URL for installation and leverage that\ninformation from the UX using the HTTP PUT on the Gerrit\n/plugin/\u003cname\u003e.jar API\n\nChange-Id: Ie4e6042c0b33bebbd14b515141776bf91e2c4c0b"
    },
    {
      "commit": "6e521b67af7ab70578c4e5f4658a215524a751fc",
      "tree": "2577ad8aed014a1b402bc3bd7c5f231332c1e359",
      "parents": [
        "ba60979712be1a4aadb4cc5f5f55cd56c48dbed2"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Nov 07 16:17:46 2015 -0800"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed May 04 21:55:20 2016 +0100"
      },
      "message": "Pre-loads and cache Jenkins CI plugins list\n\nGetting the list of plugins available on Jenkins CI may take quite\na long time (over 10-20 sec). We do need to pre-load that information\nat plugin start-up and cache it in memory.\n\nThe list of plugins is typically quite small and does not change often.\nHaving a 24h TTL is more than acceptable.\n\nChange-Id: Iea38f70bdc68f1712a298270af7906a32ec9c9bd\n"
    },
    {
      "commit": "ba60979712be1a4aadb4cc5f5f55cd56c48dbed2",
      "tree": "854a6c4a2973a2f5a6a5aa8e968e57d43a493e55",
      "parents": [
        "a87f724282a1123bf8cad2a52a1248515ea80a01"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu Nov 05 15:38:36 2015 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Nov 13 10:59:29 2015 -0800"
      },
      "message": "Adds list of extra plugins available from CI\n\nDisplay the new plugins available for installation under the\nlist of the ones currently installed.\n\nPlugins repository is injectable and configurable; at the moment only\nthe Gerrit CI (gerrit-ci.gerritforge.com) is implemented.\n\nJenkins CI URL is configured under gerri.config:\n\n[plugin \"plugin-manager\"]\n   jenkinsUrl \u003d https://myjenkins.myserver.com\n\nChange-Id: I7fc5140363700c9edc5c28da460ed8606ed73d78"
    },
    {
      "commit": "a87f724282a1123bf8cad2a52a1248515ea80a01",
      "tree": "91328fa14e988706bec932cb977d1083ca96e672",
      "parents": [
        "e3a5a51acd5bdf66a74488de487c46499051a4fb"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sun Nov 01 01:19:12 2015 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Nov 13 18:28:05 2015 +0000"
      },
      "message": "Initial empty skeleton to display list of plugins\n\nDefine the initial project skeleton with:\n- Buck build\n- AngularJS HTML and JS\n- X-GerritAuth expansion for REST API calls\n\nAs demo of the skeleton working well, the index.html display the\nlist of currently installed plugin invoking the Gerrit REST API\n/plugins/?all\n\nChange-Id: I122c37b8486609363bc92222d60153266c92e6d0\n"
    },
    {
      "commit": "e3a5a51acd5bdf66a74488de487c46499051a4fb",
      "tree": "c31f76c2ed6c7cf51874974ca61162c230f094b1",
      "parents": [
        "586cbd4214167e7d96bc34ac2fead1f7862d333a"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Nov 07 15:06:22 2015 -0800"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Nov 07 15:06:22 2015 -0800"
      },
      "message": "Initial commit with README and LICENSE\n\nChange-Id: I62e6a33ec73f4071e581fee93e26bd3d333304a3\n"
    },
    {
      "commit": "586cbd4214167e7d96bc34ac2fead1f7862d333a",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Sat Nov 07 22:59:43 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Nov 07 22:59:43 2015 +0000"
      },
      "message": "Initial empty repository\n"
    }
  ]
}
