)]}'
{
  "log": [
    {
      "commit": "41b7a626220c730fd623f751139a77bce80f04a4",
      "tree": "efc9434864d897b8f21d50a1ff5ac7a4d8159009",
      "parents": [
        "7d4f143a988c8f5595000684c1f0dd4501546e48"
      ],
      "author": {
        "name": "Thomas Dräbing",
        "email": "thomas.draebing@sap.com",
        "time": "Mon Dec 15 10:59:51 2025 +0100"
      },
      "committer": {
        "name": "Thomas Dräbing",
        "email": "thomas.draebing@sap.com",
        "time": "Tue Apr 07 14:20:22 2026 +0200"
      },
      "message": "Use of gerrit_plugin and gerrit_plugin_tests rule from bazlets\n\nChange-Id: I6fef3249e9fc7dce7dfb27b27e2b7bfd90ce088a\n"
    },
    {
      "commit": "7d4f143a988c8f5595000684c1f0dd4501546e48",
      "tree": "953d56e552eae233309ff05367246dcb709687c9",
      "parents": [
        "83d5aae0fce1956858c1b5595012e68867c53437"
      ],
      "author": {
        "name": "Chris Packham",
        "email": "judge.packham@gmail.com",
        "time": "Mon Jun 09 13:17:49 2025 +1200"
      },
      "committer": {
        "name": "Chris Packham",
        "email": "judge.packham@gmail.com",
        "time": "Mon Jun 09 13:22:16 2025 +1200"
      },
      "message": "Add missing parameters to submit hook\n\nThe submit hook takes --change and --submitter-username arguments. Add\nthese to the documentation.\n\nChange-Id: I1dd350e2ef526a1dd375c9ee5bde11f5558c4022\n"
    },
    {
      "commit": "83d5aae0fce1956858c1b5595012e68867c53437",
      "tree": "81139f5e18dc6d6286cb62e6189ce7b05073ea19",
      "parents": [
        "4f43f5db6b8aa7f36381f4f9a4c9ec1fc335d949"
      ],
      "author": {
        "name": "Martin Fick",
        "email": "mfick@nvidia.com",
        "time": "Tue Oct 15 13:49:00 2024 -0700"
      },
      "committer": {
        "name": "Martin Fick",
        "email": "mfick@nvidia.com",
        "time": "Tue Oct 15 13:52:37 2024 -0700"
      },
      "message": "Update docs to mention GERRIT_SITE env variable\n\nChange-Id: I869842e4dd8fbab5462e671bb270e1cbacea8e07\n"
    },
    {
      "commit": "4f43f5db6b8aa7f36381f4f9a4c9ec1fc335d949",
      "tree": "a2934ce98ff66673d623a61b19fbe5637f9f720e",
      "parents": [
        "41c3ad1d584f3b81bacc59e89e022dc1e7ffc3f2"
      ],
      "author": {
        "name": "Saša Živkov",
        "email": "sasa.zivkov@sap.com",
        "time": "Wed Jun 19 17:28:03 2024 +0200"
      },
      "committer": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@gmail.com",
        "time": "Wed Jun 19 18:43:17 2024 +0000"
      },
      "message": "Print hook stdout/stderr in case of a non-zero exit code\n\nPrior to this change the hook output was only printed when the logging\nlevel was at least DEBUG. However, when a hook exits with an error we\nneed to read the hook output in order to get more details about the\nerror.\n\nRelease-Notes: Print hook stdout/stderr in case of a non-zero exit code\nChange-Id: I24b9f69c9faea561d7fce0b3818801dd64852729\n"
    },
    {
      "commit": "41c3ad1d584f3b81bacc59e89e022dc1e7ffc3f2",
      "tree": "febd7ee67889ef5714c4cf930e32cc2a4c636dd3",
      "parents": [
        "f975f914312b258f84957d19f96014c3edd12644"
      ],
      "author": {
        "name": "Saša Živkov",
        "email": "sasa.zivkov@sap.com",
        "time": "Fri Apr 05 17:32:14 2024 +0200"
      },
      "committer": {
        "name": "Saša Živkov",
        "email": "sasa.zivkov@sap.com",
        "time": "Fri Apr 05 17:36:39 2024 +0200"
      },
      "message": "Resolve relative hooks.path against $site_path, not cwd of the process\n\nWhen hooks.path was given as relative path it got resolved against the\ncurrent working directory of the Gerrit process. While it may often be\nthe case that the current working directory of Gerrit process is the\n$site_path, it is not guaranteed and, depending how Gerrit is started,\nit may be some other directory. Most, if not all, of the relative paths\nin gerrit.config are resolved against the $site_path and we should do\nthe same for the hooks.path.\n\nRelease-Notes: Resolve relative hooks.path against $site_path\nChange-Id: Ie72c0657393e1dfe078155e27edbd4c0412892e6\n"
    },
    {
      "commit": "f975f914312b258f84957d19f96014c3edd12644",
      "tree": "f622ae1742cb53507aa062fd94053140f7907978",
      "parents": [
        "30073628612bce23826f4be71bfdd159da521cbc"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Thu Feb 01 14:22:05 2024 +0000"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Thu Feb 01 14:22:20 2024 +0000"
      },
      "message": "Use Path.of() instead of Paths.get()\n\nPath.of() makes Paths.get() obsolete in Java 11\n\nChange-Id: Ie3cda479e3af5f1bb7a36a25c5095783ec750ca5\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "30073628612bce23826f4be71bfdd159da521cbc",
      "tree": "e40bcbff1753bf558097e9db63adc334d8d7b6ce",
      "parents": [
        "20aeaa9fcc6aa2665acb5e0f401039074037221c"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Oct 12 13:07:44 2022 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Oct 12 13:07:44 2022 +0200"
      },
      "message": "Annotate methods that return a definitely null value with @Nullable\n\nWe intend to enable the ReturnMissingNullable errorprone pattern in\nGerrit core and this fixes the current issues.\n\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\nChange-Id: I54c8620db01774d2043cdd113d342222f89a12e9\n"
    },
    {
      "commit": "20aeaa9fcc6aa2665acb5e0f401039074037221c",
      "tree": "af410e87853e734f43161920ac5dcc382913678d",
      "parents": [
        "d760a4b49f79c31696e425e761cad0fcbfe410c9"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Mon Jun 13 07:41:09 2022 +0200"
      },
      "committer": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Mon Jun 13 07:41:12 2022 +0200"
      },
      "message": "Fix FloggerLogString issues flagged by error prone\n\nSee: [1] for more details.\n\n[1] https://errorprone.info/bugpattern/FloggerLogString\n\nChange-Id: I82c20d69c74b9ea8430a1cc5fdec5c99ca40534c\n"
    },
    {
      "commit": "d760a4b49f79c31696e425e761cad0fcbfe410c9",
      "tree": "c511db9f153f0a37d927af05be17543d349e9997",
      "parents": [
        "4e07d16a644ea823f6538a176621acee466d865b"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Dec 22 12:56:04 2021 +0100"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Dec 22 12:56:04 2021 +0100"
      },
      "message": "Adapt to enabling error level for the UnnecessaryLambda bug pattern\n\nFix the current issues so that the build continues to work.\n\nBug: Issue 15082\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\nChange-Id: I306b33bb26801e971acd609b970a022594275113\n"
    },
    {
      "commit": "4e07d16a644ea823f6538a176621acee466d865b",
      "tree": "3afd6bd4019798de41c29eb7eac64979c6bdc0d1",
      "parents": [
        "ad4f877749928b69ef94b62176c5797f6648887d"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Tue Oct 19 15:27:36 2021 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Tue Oct 19 16:19:32 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: Ib92b26248c5b84a6cc0af5d6b4dcaf0253b569bb\n"
    },
    {
      "commit": "ad4f877749928b69ef94b62176c5797f6648887d",
      "tree": "0b6ed080455643c68f322fce4128066f66aae753",
      "parents": [
        "7ed555fe88f4be028acbfd5c245ac78537ac3666"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Tue Oct 06 14:02:03 2020 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Tue Oct 06 16:08:41 2020 +0200"
      },
      "message": "Adapt to change in Gerrit core\n\nChange Id93e378be changed the signature of\nMergeValidationListener#onPreMerge.\n\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\nChange-Id: I8f379e16eead07074f7f2f9c989a2e587c83383c\n"
    },
    {
      "commit": "7ed555fe88f4be028acbfd5c245ac78537ac3666",
      "tree": "6710adee5d0e4631b9a41228b7f4f580f5921ab8",
      "parents": [
        "6316be2828808dafc546ecd11c055396d0b4951b",
        "5678f93fa62df1ec2baedc3a407aff71ca96556d"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@digital.ai",
        "time": "Thu May 07 09:23:43 2020 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@digital.ai",
        "time": "Thu May 07 09:23:43 2020 +0900"
      },
      "message": "Merge branch \u0027stable-3.1\u0027\n\n* stable-3.1:\n  HookExecutor: Add missing licence header\n\nChange-Id: I18666112870b4395e2787a8464c9f6f7f8f1a81e\n"
    },
    {
      "commit": "5678f93fa62df1ec2baedc3a407aff71ca96556d",
      "tree": "45c9e0c7c25e4a8c168971186caf87e0847b187e",
      "parents": [
        "22d1dbbbd2b34dc066e20e6fb26a8623f1ae47fc",
        "089687bdcc64b003d09a77f00eaa77bb79b15b9c"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@digital.ai",
        "time": "Thu May 07 09:22:57 2020 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@digital.ai",
        "time": "Thu May 07 09:22:57 2020 +0900"
      },
      "message": "Merge branch \u0027stable-3.0\u0027 into stable-3.1\n\n* stable-3.0:\n  HookExecutor: Add missing licence header\n\nChange-Id: Ie79f03e7cade3d3fb7f2d71cde6ebaf27caab748\n"
    },
    {
      "commit": "089687bdcc64b003d09a77f00eaa77bb79b15b9c",
      "tree": "6da2e974b75ffd1843d4dbd1ed579f3274692a8e",
      "parents": [
        "072ee210f38f4c1bdc55330e88dc844b4daad6ca",
        "e7769bd52c2b709d7712a386aa6cb96aec2c11a9"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@digital.ai",
        "time": "Thu May 07 09:22:03 2020 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@digital.ai",
        "time": "Thu May 07 09:22:03 2020 +0900"
      },
      "message": "Merge branch \u0027stable-2.16\u0027 into stable-3.0\n\n* stable-2.16:\n  HookExecutor: Add missing licence header\n\nChange-Id: Iaf1596bbc083a46f171dee3c30a2477d9372dee3\n"
    },
    {
      "commit": "e7769bd52c2b709d7712a386aa6cb96aec2c11a9",
      "tree": "6da2e974b75ffd1843d4dbd1ed579f3274692a8e",
      "parents": [
        "57c8e6261016e1cc233ea41f19fa5bdf187df8a7"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed May 06 13:51:54 2020 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed May 06 12:18:30 2020 +0000"
      },
      "message": "HookExecutor: Add missing licence header\n\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\nChange-Id: I036a6b1f246efbf42d0cd0a8555ef582e8a78293\n"
    },
    {
      "commit": "6316be2828808dafc546ecd11c055396d0b4951b",
      "tree": "011dd8044a908b45cf21fb37943ccd303eb037e1",
      "parents": [
        "f4bf0ffbd13a748cc46a3368a8fadcc2cbab6e21",
        "22d1dbbbd2b34dc066e20e6fb26a8623f1ae47fc"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Mon Dec 02 19:09:46 2019 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Mon Dec 02 19:09:46 2019 +0900"
      },
      "message": "Merge branch \u0027stable-3.1\u0027\n\n* stable-3.1:\n  Fix and clarify documentation of ref-update and commit-received hooks\n  Correct documentation of ref-update hook regarding output\n\nChange-Id: I0926e8a9ab58be09ba7c30b3834ddf86b483480f\n"
    },
    {
      "commit": "22d1dbbbd2b34dc066e20e6fb26a8623f1ae47fc",
      "tree": "f16543c08bfbb7058c2a7ac9c0cfc3dc80e8674c",
      "parents": [
        "56a1275644ca69c8203354c3f5de5e99324a313f",
        "072ee210f38f4c1bdc55330e88dc844b4daad6ca"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Mon Dec 02 17:17:26 2019 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Mon Dec 02 17:17:26 2019 +0900"
      },
      "message": "Merge branch \u0027stable-3.0\u0027 into stable-3.1\n\n* stable-3.0:\n  Fix and clarify documentation of ref-update and commit-received hooks\n  Correct documentation of ref-update hook regarding output\n\nChange-Id: Ifa4fefac518fc170f3248ebfcbe5e1a338e46c0f\n"
    },
    {
      "commit": "072ee210f38f4c1bdc55330e88dc844b4daad6ca",
      "tree": "682621f01dfb8fd2f03f051e06ad37703cd6fab4",
      "parents": [
        "d0976393a5d8eea9384631bfa189b1f6518e9128",
        "57c8e6261016e1cc233ea41f19fa5bdf187df8a7"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Mon Dec 02 16:20:30 2019 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Mon Dec 02 16:20:30 2019 +0900"
      },
      "message": "Merge branch \u0027stable-2.16\u0027 into stable-3.0\n\n* stable-2.16:\n  Fix and clarify documentation of ref-update and commit-received hooks\n  Correct documentation of ref-update hook regarding output\n\nChange-Id: Ia446c95e1f6ca12e1cbd198d3a7e4f6a16b09fc6\n"
    },
    {
      "commit": "57c8e6261016e1cc233ea41f19fa5bdf187df8a7",
      "tree": "682621f01dfb8fd2f03f051e06ad37703cd6fab4",
      "parents": [
        "0c6be301a39cf2c0cbc11a2c04be386e647b96a0"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Mon Dec 02 15:22:20 2019 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Mon Dec 02 15:24:17 2019 +0900"
      },
      "message": "Fix and clarify documentation of ref-update and commit-received hooks\n\n- Clarify behavior of ref-update when multiple commits are pushed, i.e.\n  that it is only called once for the entire ref update.\n\n- Fix the documentation of commit-received which states that it is called\n  for changes pushed for review. In fact it is also called for direct\n  pushes, but unlike ref-update it is called once for each commit.\n\nChange-Id: Ie3e2dcab37eeb5d0ed06e05322e72d3fc73925fd\n"
    },
    {
      "commit": "0c6be301a39cf2c0cbc11a2c04be386e647b96a0",
      "tree": "d33c3377cce0a1c8257174b33563414612ec0159",
      "parents": [
        "e9127800c4efe8ad9601c7b1152783cd12a55bc2"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Mon Dec 02 15:15:47 2019 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Mon Dec 02 15:24:15 2019 +0900"
      },
      "message": "Correct documentation of ref-update hook regarding output\n\nThe output of the hook is only returned when the update is rejected,\nnot regardless of the return code as stated in the doc.\n\nChange-Id: I93483f44e31e7055c302c0758084de868d1c4f93\n"
    },
    {
      "commit": "f4bf0ffbd13a748cc46a3368a8fadcc2cbab6e21",
      "tree": "5f12e8d91c9008a7d9aef306b840f92233cffec4",
      "parents": [
        "3daec7d491b0892f50a58baa5f15e0628dd97dba",
        "56a1275644ca69c8203354c3f5de5e99324a313f"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed Nov 13 00:54:23 2019 -0800"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed Nov 13 00:54:23 2019 -0800"
      },
      "message": "Merge branch \u0027stable-3.1\u0027\n\n* stable-3.1:\n  Submit: Get the change Id from the patch set Id\n\nChange-Id: Idbd71d8908e99e385fd08d548e915f3c76a0766e\n"
    },
    {
      "commit": "56a1275644ca69c8203354c3f5de5e99324a313f",
      "tree": "fed73f0ef6022b1e94bfe5779e0d680ff9d3b813",
      "parents": [
        "c44c6f0c59b09c41326b497fd31e9d746e88ba4c",
        "d0976393a5d8eea9384631bfa189b1f6518e9128"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed Nov 13 00:52:13 2019 -0800"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed Nov 13 00:52:13 2019 -0800"
      },
      "message": "Merge branch \u0027stable-3.0\u0027 into stable-3.1\n\n* stable-3.0:\n  Submit: Get the change Id from the patch set Id\n\nChange-Id: I75d1c3aea53c580dc87c8d4a4911d8540ef9bd8f\n"
    },
    {
      "commit": "d0976393a5d8eea9384631bfa189b1f6518e9128",
      "tree": "f41a04316e45e2702986bb4b5f95d1a579a81287",
      "parents": [
        "df7cf871ace1345564e27f5d20b6a6ecdbd24e7e",
        "e9127800c4efe8ad9601c7b1152783cd12a55bc2"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed Nov 13 00:45:49 2019 -0800"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed Nov 13 00:45:49 2019 -0800"
      },
      "message": "Merge branch \u0027stable-2.16\u0027 into stable-3.0\n\n* stable-2.16:\n  Submit: Get the change Id from the patch set Id\n\nChange-Id: I3355bf0208389c92cfbeac4bda1926e7fe8d1265\n"
    },
    {
      "commit": "e9127800c4efe8ad9601c7b1152783cd12a55bc2",
      "tree": "f41a04316e45e2702986bb4b5f95d1a579a81287",
      "parents": [
        "c0f9d238203e24911b8172789c3e19e9d78c1fb5"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed Nov 13 00:33:29 2019 -0800"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed Nov 13 00:33:29 2019 -0800"
      },
      "message": "Submit: Get the change Id from the patch set Id\n\nBug: Issue 11905\nChange-Id: I9ca4cccfc6b285846aa6743ff40dfe4809360225\n"
    },
    {
      "commit": "3daec7d491b0892f50a58baa5f15e0628dd97dba",
      "tree": "22b1b18b389fbb391ad06e1ad8ea0b7c5f35126a",
      "parents": [
        "71cdc88f4804a4811e613d8679862cb33dd75cc1",
        "c44c6f0c59b09c41326b497fd31e9d746e88ba4c"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Tue Nov 12 14:59:30 2019 -0800"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Tue Nov 12 14:59:30 2019 -0800"
      },
      "message": "Merge branch \u0027stable-3.1\u0027\n\n* stable-3.1:\n  Pass change Id to submit hook\n\nChange-Id: I94ed6f06fc99036d463b97093e86974f7c818d17\n"
    },
    {
      "commit": "c44c6f0c59b09c41326b497fd31e9d746e88ba4c",
      "tree": "47fb0d0b408527916b402f780cbf392bf96d0c6e",
      "parents": [
        "472a14fb2dacbccb5fa9644b935c65f6898e41f0",
        "df7cf871ace1345564e27f5d20b6a6ecdbd24e7e"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Tue Nov 12 14:11:58 2019 -0800"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Tue Nov 12 14:11:58 2019 -0800"
      },
      "message": "Merge branch \u0027stable-3.0\u0027 into stable-3.1\n\n* stable-3.0:\n  Pass change Id to submit hook\n\nChange-Id: Idee568300337f23aaf8f6f7d404ed8f3e76ed743\n"
    },
    {
      "commit": "df7cf871ace1345564e27f5d20b6a6ecdbd24e7e",
      "tree": "7250cb8b540ca2c0a1315d49e3d48d71c069080c",
      "parents": [
        "374f6142be45e5198ae1d0361e82ac642304cd3e",
        "c0f9d238203e24911b8172789c3e19e9d78c1fb5"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Tue Nov 12 13:35:50 2019 -0800"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Tue Nov 12 13:35:50 2019 -0800"
      },
      "message": "Merge branch \u0027stable-2.16\u0027 into stable-3.0\n\n* stable-2.16:\n  Pass change Id to submit hook\n\nChange-Id: I9f0a55b7c9520ecf0eb6541b1a601ccec7d06ffb\n"
    },
    {
      "commit": "c0f9d238203e24911b8172789c3e19e9d78c1fb5",
      "tree": "7250cb8b540ca2c0a1315d49e3d48d71c069080c",
      "parents": [
        "d2632b5727d481ab72abdb0aa34f25baa340285d"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Tue Nov 12 09:40:08 2019 -0800"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Tue Nov 12 09:40:08 2019 -0800"
      },
      "message": "Pass change Id to submit hook\n\nBug: Issue 11905\nChange-Id: I3761c369c3f10b215b1afeb43cae59bc194e9a44\n"
    },
    {
      "commit": "71cdc88f4804a4811e613d8679862cb33dd75cc1",
      "tree": "4b8d882b9b644edf5b5c42e76706eb15ec7c1d64",
      "parents": [
        "472a14fb2dacbccb5fa9644b935c65f6898e41f0"
      ],
      "author": {
        "name": "Nick Talbot",
        "email": "nick.talbot@gmail.com",
        "time": "Thu Sep 20 15:57:18 2018 +0100"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed Oct 30 04:16:22 2019 +0000"
      },
      "message": "Clarify when patchset-created event isn\u0027t created.\n\nBug: Issue 8724\nChange-Id: If2d046c2fef61c9d3ccb5699a4d192fb22862bb1\n"
    },
    {
      "commit": "472a14fb2dacbccb5fa9644b935c65f6898e41f0",
      "tree": "113cee4b514e060b0d855e925358e561d61da4a4",
      "parents": [
        "807d2cc4ec837e7ef0f02282189983b80d750d89"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Sun May 26 14:04:14 2019 +0200"
      },
      "committer": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Tue Oct 15 18:33:44 2019 +0200"
      },
      "message": "Rename reviewdb package to entities\n\nChange-Id: Ia43c505f467f18138a33056ba351d714cdc7f3fc\n"
    },
    {
      "commit": "807d2cc4ec837e7ef0f02282189983b80d750d89",
      "tree": "b1802cd901e4169030668871b6f42514837a0893",
      "parents": [
        "cfc7675ef9c4d0f2bd1da47957835306bb1fd36a"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Sun Oct 06 14:43:14 2019 +0200"
      },
      "committer": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Sun Oct 06 14:46:00 2019 +0200"
      },
      "message": "hooks_tests: Move plugin dependency from deps to runtime_deps\n\nThe hooks__plugin dependency is incorrectly declared as compiled\ndependency, even though it is only runtime dependency. This was flagged\nby unused_deps utility.\n\nChange-Id: Icb8fd3d5e2397c58cc696ba453a3b72c80cb3b79\n"
    },
    {
      "commit": "cfc7675ef9c4d0f2bd1da47957835306bb1fd36a",
      "tree": "6d104fdf97a46f8e9b752b1b72b8ba2639942f70",
      "parents": [
        "e6680be23ed0469d46609663d88d757553038741"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Jun 26 16:36:14 2019 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Fri Jul 05 14:41:46 2019 +0200"
      },
      "message": "Adapt to changed API in Gerrit core for creating metric fields (part 2)\n\nChange-Id: Ic62020f7ecdf44099d007e5282eba8a36aff8c91\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "e6680be23ed0469d46609663d88d757553038741",
      "tree": "5a8b55f3035f3727a44fa9271d0fcf4f97e5475b",
      "parents": [
        "d285496d44d8e49378910ea28fc8a77d4a86bf9f",
        "374f6142be45e5198ae1d0361e82ac642304cd3e"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Fri Jul 05 10:08:56 2019 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Fri Jul 05 10:08:56 2019 +0900"
      },
      "message": "Merge branch \u0027stable-3.0\u0027\n\n* stable-3.0:\n  Allow to configure the number of hook execution workers\n  Submit: Handle potentially missing username\n\nChange-Id: Ib92b3db88ad33e56b3f7bfcf1ba8069a318125e4\n"
    },
    {
      "commit": "374f6142be45e5198ae1d0361e82ac642304cd3e",
      "tree": "ae5c9a89939353fe7556ce65280161efe02ae209",
      "parents": [
        "492887449bf66b0f828aa26506629a8f5838f4d3",
        "d2632b5727d481ab72abdb0aa34f25baa340285d"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Fri Jul 05 09:21:18 2019 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Fri Jul 05 09:21:18 2019 +0900"
      },
      "message": "Merge branch \u0027stable-2.16\u0027 into stable-3.0\n\n* stable-2.16:\n  Allow to configure the number of hook execution workers\n  Submit: Handle potentially missing username\n\nChange-Id: I19cc4953e64bcba429e72fe033b79f03154b41d9\n"
    },
    {
      "commit": "d2632b5727d481ab72abdb0aa34f25baa340285d",
      "tree": "ae5c9a89939353fe7556ce65280161efe02ae209",
      "parents": [
        "e1745a8ab48fdab8da2500d3d0b8e3da9cd1090d",
        "628507151abf6b41e6469082765c55781dbd2615"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Thu Jul 04 19:56:03 2019 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Thu Jul 04 19:56:03 2019 +0900"
      },
      "message": "Merge branch \u0027stable-2.15\u0027 into stable-2.16\n\n* stable-2.15:\n  Allow to configure the number of hook execution workers\n\nChange-Id: I1b7d98d9347a5d59c7316a1dc301211ccd967add\n"
    },
    {
      "commit": "628507151abf6b41e6469082765c55781dbd2615",
      "tree": "55229b96291eda442ebd3e817d1eff56d5a0457f",
      "parents": [
        "491c5ddf0e3892ffe684cc825a406ef56744a458"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Thu Jul 04 12:55:30 2019 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Thu Jul 04 12:56:33 2019 +0900"
      },
      "message": "Allow to configure the number of hook execution workers\n\nAllow to configure the number of workers with hooks.executorThreads.\n\nDefault to 1 if not set, keeping the same behavior as before.\n\nBug: Issue 10823\nChange-Id: I688b88651822e7eee4a81414ffb594a915b382fd\n"
    },
    {
      "commit": "e1745a8ab48fdab8da2500d3d0b8e3da9cd1090d",
      "tree": "bfdef6a1e19cb882ffdec7d51f2b2962cd63ef16",
      "parents": [
        "47e4b87fca52c5b1dea9ab37833e36fb4f57d3fb"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Thu Jul 04 10:31:38 2019 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Thu Jul 04 10:32:32 2019 +0900"
      },
      "message": "Submit: Handle potentially missing username\n\nBug: Issue 11112\nChange-Id: Ie5ed372b6cf890a9cebd5860af8905dedb306e6a\n"
    },
    {
      "commit": "d285496d44d8e49378910ea28fc8a77d4a86bf9f",
      "tree": "9121ad4f9e06087319ddbcad885302783d522ea1",
      "parents": [
        "8c6baf54bc9b889a8999815ef4281bc99efeed5e"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Mon Jul 01 09:58:46 2019 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Mon Jul 01 09:58:46 2019 +0200"
      },
      "message": "Adapt to change in Gerrit core that added generic types to time contexts\n\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\nChange-Id: If0ed7a293ae226a0f974983662588133bf646bfd\n"
    },
    {
      "commit": "8c6baf54bc9b889a8999815ef4281bc99efeed5e",
      "tree": "e33f63fd457f8ba9586e0071957e95bb875776e5",
      "parents": [
        "12447394c90141595ab630129e24ab66d2f39a17"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Jun 26 11:12:06 2019 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Thu Jun 27 08:40:53 2019 +0200"
      },
      "message": "Adapt to changed API in Gerrit core for creating metric fields\n\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\nChange-Id: I52c140f1321c0c3ebcfbbb2584a547bf5a1408a7\n"
    },
    {
      "commit": "12447394c90141595ab630129e24ab66d2f39a17",
      "tree": "f8c27145964e290c285bc54bd0f502e6bb0fb96b",
      "parents": [
        "60fb334f44329caca37d8aa0d43feba651c959b2"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Mon May 27 14:11:51 2019 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Mon May 27 14:12:18 2019 +0900"
      },
      "message": "HookQueue: Suppress FutureReturnValueIgnored warning\n\nWhen all error prone warnings are enabled the FutureReturnValueIgnored\nbug pattern is reported:\n\n  plugins/hooks/src/main/java/com/googlesource/gerrit/plugins/hooks/HookQueue.java:46:\n  error: [FutureReturnValueIgnored] Return value of methods returning Future must be checked.\n  Ignoring returned Futures suppresses exceptions thrown from the code that completes the Future.\n    queue.submit(new HookTask.Async(projectName, hook, args));\n                ^\n    (see https://errorprone.info/bugpattern/FutureReturnValueIgnored)\n  Did you mean to remove this line?\n\nChange-Id: I0412c6453c0d716d6bf4e445bebfeea019f63100\n"
    },
    {
      "commit": "60fb334f44329caca37d8aa0d43feba651c959b2",
      "tree": "a1c1832c23fab86eb6decb2c0d01e5e634c4bfd7",
      "parents": [
        "9401a4ec2656f05fa636def116ce566bf7318bc7"
      ],
      "author": {
        "name": "Dave Borowitz",
        "email": "dborowitz@google.com",
        "time": "Tue Apr 23 13:55:15 2019 -0700"
      },
      "committer": {
        "name": "Dave Borowitz",
        "email": "dborowitz@google.com",
        "time": "Tue Apr 23 13:55:15 2019 -0700"
      },
      "message": "Adapt to BranchNameKey refactoring\n\nChange-Id: Ide5b44b02ba40262ca71b2d097600b2a98d78e08\n"
    },
    {
      "commit": "9401a4ec2656f05fa636def116ce566bf7318bc7",
      "tree": "0afe950b808c714acba3249fa32bc9eb75c61bb4",
      "parents": [
        "a108d1df76ee42dd20cc7c64ab166f6c05ee8283"
      ],
      "author": {
        "name": "Dave Borowitz",
        "email": "dborowitz@google.com",
        "time": "Fri Apr 19 09:26:59 2019 -0700"
      },
      "committer": {
        "name": "Dave Borowitz",
        "email": "dborowitz@google.com",
        "time": "Fri Apr 19 09:27:15 2019 -0700"
      },
      "message": "Adapt to Change.Id refactoring\n\nChange-Id: If81ffd14cc2a8663933638636403e4f2d88bcb40\n"
    },
    {
      "commit": "a108d1df76ee42dd20cc7c64ab166f6c05ee8283",
      "tree": "68897be304be21ec02a1139baa7974b9c62aa0f5",
      "parents": [
        "034b9a4d48b739eb4c5ffb66be7cb808579a7a48"
      ],
      "author": {
        "name": "Dave Borowitz",
        "email": "dborowitz@google.com",
        "time": "Fri Apr 19 09:14:18 2019 -0700"
      },
      "committer": {
        "name": "Dave Borowitz",
        "email": "dborowitz@google.com",
        "time": "Fri Apr 19 09:17:20 2019 -0700"
      },
      "message": "Adapt to Project.NameKey refactoring\n\nChange-Id: Iad665fa58635077fe2b1010a28822f6478f1082f\n"
    },
    {
      "commit": "034b9a4d48b739eb4c5ffb66be7cb808579a7a48",
      "tree": "5c79546acb795ee5d9c170e6c05ed489c0dd6634",
      "parents": [
        "976a6d10eec7b971254217df0399407f8543b37f"
      ],
      "author": {
        "name": "Dave Borowitz",
        "email": "dborowitz@google.com",
        "time": "Wed Apr 17 15:54:01 2019 -0700"
      },
      "committer": {
        "name": "Dave Borowitz",
        "email": "dborowitz@google.com",
        "time": "Wed Apr 17 15:54:01 2019 -0700"
      },
      "message": "Adapt to Branch.NameKey refactoring\n\nChange-Id: Icba8d5d0193c52ecde4f8692b72471f4d88e82f5\n"
    },
    {
      "commit": "976a6d10eec7b971254217df0399407f8543b37f",
      "tree": "2ce0aa2972ead7c2385f010c20d6ebde9d5f990e",
      "parents": [
        "492887449bf66b0f828aa26506629a8f5838f4d3"
      ],
      "author": {
        "name": "Dave Borowitz",
        "email": "dborowitz@google.com",
        "time": "Wed Apr 17 13:58:18 2019 -0700"
      },
      "committer": {
        "name": "Dave Borowitz",
        "email": "dborowitz@google.com",
        "time": "Wed Apr 17 13:58:18 2019 -0700"
      },
      "message": "Adapt to Account.Id refactoring\n\nChange-Id: I665272ce1e90f42ac1ee51d328471be785755916\n"
    },
    {
      "commit": "492887449bf66b0f828aa26506629a8f5838f4d3",
      "tree": "1c846f121f1dba6f392d3aba3ea0f2a2d12e66f8",
      "parents": [
        "84a8a1376c5ba1275a5a2938fca573419895b431",
        "47e4b87fca52c5b1dea9ab37833e36fb4f57d3fb"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed Feb 27 16:25:12 2019 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed Feb 27 16:25:17 2019 +0900"
      },
      "message": "Merge branch \u0027stable-2.16\u0027\n\n* stable-2.16:\n  Fix source glob in test rule\n  Add stub module for integration tests\n\nChange-Id: I605ae589a6ce1e21c157d9e313b88e961074ba4c\n"
    },
    {
      "commit": "47e4b87fca52c5b1dea9ab37833e36fb4f57d3fb",
      "tree": "1c846f121f1dba6f392d3aba3ea0f2a2d12e66f8",
      "parents": [
        "16fbec698f99ff80fd415b82f662e0a9042cee3b"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed Feb 27 15:49:23 2019 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed Feb 27 15:50:47 2019 +0900"
      },
      "message": "Fix source glob in test rule\n\nThe glob was only matching files with the name *Test.java which did not\ninclude HooksIT.java, hence the test was not being executed when run on\nthe command line with \"bazel test\".\n\nChange-Id: If593ad52c24ddd1f633a399f59204fa2a48b0359\n"
    },
    {
      "commit": "16fbec698f99ff80fd415b82f662e0a9042cee3b",
      "tree": "584b7136fec153ed818d969257ba75dcbcf97c81",
      "parents": [
        "afafce3ff48154a82f023e2f8e59baa6f66d397d"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Tue Feb 26 21:45:06 2019 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Tue Feb 26 21:47:36 2019 +0900"
      },
      "message": "Add stub module for integration tests\n\nThe initial version only includes an empty test. The purpose is only to\nensure that the plugin can be loaded. The test fails if the fix that was\ndone in change I621573b52 is reverted.\n\nAdditional tests of the plugin\u0027s actual functionality may be added later.\n\nBug: Issue 10132\nChange-Id: Ie64b2c686e8003b456fcad68de9e1c33a98fd2cc\n"
    },
    {
      "commit": "84a8a1376c5ba1275a5a2938fca573419895b431",
      "tree": "31051b7cea99d86713ad6b7de185ad049380509d",
      "parents": [
        "9d0ad9ae5667b7da5bb3e7e8066d2dbff446d70b",
        "afafce3ff48154a82f023e2f8e59baa6f66d397d"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Fri Feb 22 11:28:37 2019 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Fri Feb 22 11:28:37 2019 +0900"
      },
      "message": "Merge branch \u0027stable-2.16\u0027\n\n* stable-2.16:\n  Include \u0027submit\u0027 hook in listing of hooks run synchronously\n  Fix typo on hooks listing page\n\nChange-Id: I84dd4e400229da55cacceefd6ec8474715453de6\n"
    },
    {
      "commit": "afafce3ff48154a82f023e2f8e59baa6f66d397d",
      "tree": "31051b7cea99d86713ad6b7de185ad049380509d",
      "parents": [
        "9d0ad9ae5667b7da5bb3e7e8066d2dbff446d70b",
        "e1d2de072407ab112964c1053e4ce60a4b249293"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Thu Feb 21 23:37:12 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 21 23:37:12 2019 +0000"
      },
      "message": "Merge \"Merge branch \u0027stable-2.15\u0027 into stable-2.16\" into stable-2.16"
    },
    {
      "commit": "e1d2de072407ab112964c1053e4ce60a4b249293",
      "tree": "32c852792527e3d110b05787567a89013710939a",
      "parents": [
        "25ac76fe18537c33f9f27c5463a081449c13ba67",
        "491c5ddf0e3892ffe684cc825a406ef56744a458"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Fri Feb 22 08:31:36 2019 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Fri Feb 22 08:31:36 2019 +0900"
      },
      "message": "Merge branch \u0027stable-2.15\u0027 into stable-2.16\n\n* stable-2.15:\n  Include \u0027submit\u0027 hook in listing of hooks run synchronously\n  Fix typo on hooks listing page\n\nChange-Id: I26393f96bc1ef0337ade7acb80ea8085817eb2e9\n"
    },
    {
      "commit": "491c5ddf0e3892ffe684cc825a406ef56744a458",
      "tree": "62dda8af0ab9483723557e14f8aaf28bc1abb6eb",
      "parents": [
        "657f7c53e2fc331f7c85ea0f609b314f5b1f95ee",
        "5293f68ba4934c6dc6d9da557a598d95800d668f"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed Feb 20 23:08:36 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 20 23:08:36 2019 +0000"
      },
      "message": "Merge \"Include \u0027submit\u0027 hook in listing of hooks run synchronously\" into stable-2.15"
    },
    {
      "commit": "5293f68ba4934c6dc6d9da557a598d95800d668f",
      "tree": "4450da8bc59c418e33fb829795ee38b039572b23",
      "parents": [
        "75df5d54fcb0b56a799ae1dc3aa2f88cbc8e3dc3"
      ],
      "author": {
        "name": "Gert van Dijk",
        "email": "gertvdijk@gmail.com",
        "time": "Wed Feb 20 23:00:31 2019 +0100"
      },
      "committer": {
        "name": "Gert van Dijk",
        "email": "gertvdijk@gmail.com",
        "time": "Wed Feb 20 23:07:54 2019 +0100"
      },
      "message": "Include \u0027submit\u0027 hook in listing of hooks run synchronously\n\nAppears to be omitted on config.md - see the hooks.md where this is listed\nas hook with an ability to prevent a submit, before this has happened.\n\nChange-Id: I446f05c1f2372c92b3bb3dcf2d81a64958c2c3b6\n"
    },
    {
      "commit": "657f7c53e2fc331f7c85ea0f609b314f5b1f95ee",
      "tree": "5fb5d618c9188f302442df0fbb5835d0d5bd332d",
      "parents": [
        "75df5d54fcb0b56a799ae1dc3aa2f88cbc8e3dc3"
      ],
      "author": {
        "name": "Gert van Dijk",
        "email": "gertvdijk@gmail.com",
        "time": "Wed Feb 20 23:00:45 2019 +0100"
      },
      "committer": {
        "name": "Gert van Dijk",
        "email": "gertvdijk@gmail.com",
        "time": "Wed Feb 20 23:07:25 2019 +0100"
      },
      "message": "Fix typo on hooks listing page\n\nChange-Id: Ic3802d99cc1d3f2057830d6d7d53e8f5fa963397\n"
    },
    {
      "commit": "9d0ad9ae5667b7da5bb3e7e8066d2dbff446d70b",
      "tree": "9efc78c6c8e90772a50d5f5ed66d4424b2d46e57",
      "parents": [
        "25ac76fe18537c33f9f27c5463a081449c13ba67"
      ],
      "author": {
        "name": "Dave Borowitz",
        "email": "dborowitz@google.com",
        "time": "Wed Jan 02 10:39:11 2019 -0800"
      },
      "committer": {
        "name": "Dave Borowitz",
        "email": "dborowitz@google.com",
        "time": "Wed Jan 02 10:40:06 2019 -0800"
      },
      "message": "Replace anonymous class with lambda\n\nChange-Id: I108852beaaaae3e354dd706641a451aec1e0f7f1\n"
    },
    {
      "commit": "25ac76fe18537c33f9f27c5463a081449c13ba67",
      "tree": "ca6250b6fc37af3ac3756b152d3f585400e1b1e6",
      "parents": [
        "de469e8e2598779773652abb43a0356650e257b3"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Dec 04 10:29:44 2018 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Dec 04 10:45:40 2018 +0000"
      },
      "message": "Adapt injection of UrlFormatter to DynamicItem\n\nSince I375245647 the UrlFormatter is not bound anymore\ndirectly but through a DynamicItem.\n\nBug: Issue 10132\nChange-Id: I621573b5246d1d2fcbc6ef03d3d1819c1525625e\n"
    },
    {
      "commit": "de469e8e2598779773652abb43a0356650e257b3",
      "tree": "e5ec6e7eb9028b6cb4492ce26fb972073553c084",
      "parents": [
        "7185e5ce46646e952071befd9cf8f4267560b51d"
      ],
      "author": {
        "name": "Han-Wen Nienhuys",
        "email": "hanwen@google.com",
        "time": "Mon Sep 10 15:14:31 2018 +0200"
      },
      "committer": {
        "name": "Han-Wen Nienhuys",
        "email": "hanwen@google.com",
        "time": "Wed Sep 19 18:58:54 2018 +0200"
      },
      "message": "Use UrlFormatter to create review URL.\n\nChange-Id: I29b17aa0578562080ca9e12f5e6ed8a6c3012bfc\n"
    },
    {
      "commit": "7185e5ce46646e952071befd9cf8f4267560b51d",
      "tree": "68faa3f189a4734355bed1ff65e53c3652627775",
      "parents": [
        "cc74144db755a18c5a63764a336b93ab3d1be1fe",
        "75df5d54fcb0b56a799ae1dc3aa2f88cbc8e3dc3"
      ],
      "author": {
        "name": "Jonathan Nieder",
        "email": "jrn@google.com",
        "time": "Sun Sep 16 17:20:48 2018 -0700"
      },
      "committer": {
        "name": "Jonathan Nieder",
        "email": "jrn@google.com",
        "time": "Sun Sep 16 17:20:48 2018 -0700"
      },
      "message": "Merge branch \u0027stable-2.15\u0027\n\n* stable-2.15:\n  Implement change-deleted hook\n\nChange-Id: Ia806e8c90e3b1189a2e8277ddd792f79e6c0cdc8\n"
    },
    {
      "commit": "75df5d54fcb0b56a799ae1dc3aa2f88cbc8e3dc3",
      "tree": "88884c773aed061a6dc6c56724d4aaccd38011e7",
      "parents": [
        "3a3d2d059e5ed4f224c6cee0ad5bd6baae835fdc",
        "8b7187734639e41707f142ca67c7ecf21b9cf3bd"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Sat Sep 15 15:28:27 2018 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Sat Sep 15 15:29:40 2018 +0900"
      },
      "message": "Merge branch \u0027stable-2.14\u0027 into stable-2.15\n\n* stable-2.14:\n  Implement change-deleted hook\n\nChange-Id: I6a4b39a3332aa773a977a51a9544c2fb99cb772b\n"
    },
    {
      "commit": "8b7187734639e41707f142ca67c7ecf21b9cf3bd",
      "tree": "9812971632ba0a37aceec8a0fa28076de208be10",
      "parents": [
        "08c418651142c4d98946a050db039d0a892d7ac9"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Fri Sep 14 10:32:11 2018 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Fri Sep 14 15:43:33 2018 +0900"
      },
      "message": "Implement change-deleted hook\n\nBug: Issue 9711\nChange-Id: I8bda9a8951e54add030398a66a12713d041ec2df\n"
    },
    {
      "commit": "cc74144db755a18c5a63764a336b93ab3d1be1fe",
      "tree": "fccb84bc90d03d36279aae73a6261b3453080fdc",
      "parents": [
        "ca64db31265e985ab3cec635d6f063b0414c45e1"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Mon Sep 03 13:09:29 2018 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Mon Sep 03 13:09:29 2018 +0200"
      },
      "message": "Fix copying of LoggingContext to background threads\n\nChange-Id: I413b3ca66208f1495f6f5cb7b1d12a2b5fe7af56\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "ca64db31265e985ab3cec635d6f063b0414c45e1",
      "tree": "12864598b14a8658a64721be83c23a04c5b59de1",
      "parents": [
        "07672f31880ba80300b38492df9d0acfcd6ee00a"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Aug 08 11:01:41 2018 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Aug 08 11:01:41 2018 +0200"
      },
      "message": "HookExecutor: Copy logging context to background threads\n\nChange-Id: I195e16d281ca6757a16edf3c1a08b08f911ef6fb\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "07672f31880ba80300b38492df9d0acfcd6ee00a",
      "tree": "be38dcd05a9e04fc36005898ce017ebb169850f8",
      "parents": [
        "e05011f15604158ce2b700a65e85503fb1febafc",
        "3a3d2d059e5ed4f224c6cee0ad5bd6baae835fdc"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed Jun 20 21:19:11 2018 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed Jun 20 21:19:11 2018 +0900"
      },
      "message": "Merge branch \u0027stable-2.15\u0027\n\n* stable-2.15:\n  [HookTask] Avoid shadowing field\n  [HookTask] Close readers in try-with-resources\n\nChange-Id: I0b5f325cf08b025a1f97143d13fdbf7b6b5bae62\n"
    },
    {
      "commit": "3a3d2d059e5ed4f224c6cee0ad5bd6baae835fdc",
      "tree": "63e8b610026b565dfcb9b980533a89a9261b7ba5",
      "parents": [
        "ec75920ed7826633df91b98bc0f998656a0c86d0",
        "08c418651142c4d98946a050db039d0a892d7ac9"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed Jun 20 21:06:27 2018 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed Jun 20 21:06:27 2018 +0900"
      },
      "message": "Merge branch \u0027stable-2.14\u0027 into stable-2.15\n\n* stable-2.14:\n  [HookTask] Avoid shadowing field\n  [HookTask] Close readers in try-with-resources\n\nChange-Id: I4cc4b9dc7aafe058839ba373b741f9daa3a94160\n"
    },
    {
      "commit": "08c418651142c4d98946a050db039d0a892d7ac9",
      "tree": "4c00f4f863f98eb271186b257b9a274a2c56430f",
      "parents": [
        "b504566b78b7d5869d2c3d6dc4e516e777fe34d6"
      ],
      "author": {
        "name": "Hector Oswaldo Caballero",
        "email": "hector.caballero@ericsson.com",
        "time": "Wed Jun 20 06:23:35 2018 -0400"
      },
      "committer": {
        "name": "Hector Oswaldo Caballero",
        "email": "hector.caballero@ericsson.com",
        "time": "Wed Jun 20 06:23:35 2018 -0400"
      },
      "message": "[HookTask] Avoid shadowing field\n\nRename local variable to avoid shadowing field declared in line 42.\n\nChange-Id: Ic7cdfe55aca4e7072d3c4e26928d3b4f98bb8457\n"
    },
    {
      "commit": "b504566b78b7d5869d2c3d6dc4e516e777fe34d6",
      "tree": "7a02c539f2f7304726ecb72383c556f6ea9d721e",
      "parents": [
        "534cd3254c7e43648d36043b0d3f48ab4ae34a27"
      ],
      "author": {
        "name": "Hector Oswaldo Caballero",
        "email": "hector.caballero@ericsson.com",
        "time": "Wed Jun 20 06:18:05 2018 -0400"
      },
      "committer": {
        "name": "Hector Oswaldo Caballero",
        "email": "hector.caballero@ericsson.com",
        "time": "Wed Jun 20 06:18:05 2018 -0400"
      },
      "message": "[HookTask] Close readers in try-with-resources\n\nChange-Id: Idd7318d8422b89bb4b8b58e48fb507dc88830539\n"
    },
    {
      "commit": "e05011f15604158ce2b700a65e85503fb1febafc",
      "tree": "b1a72c0aa4972ff54e6c8458e61cdaabfdb23c58",
      "parents": [
        "c45958b2c63d33643587e063730878b28c97d473",
        "ec75920ed7826633df91b98bc0f998656a0c86d0"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Sun Jun 17 21:37:56 2018 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Sun Jun 17 21:37:56 2018 +0900"
      },
      "message": "Merge branch \u0027stable-2.15\u0027\n\n* stable-2.15:\n  HookArgs: Add @CanonicalWebUrl annotation to urlProvider\n\nChange-Id: I2376174465191f4bf88f5ced844fee7b4323b9cb\n"
    },
    {
      "commit": "ec75920ed7826633df91b98bc0f998656a0c86d0",
      "tree": "10a77cec695ed4941924a9aa98174443b1171ed1",
      "parents": [
        "db007bb49807cc39080753075efce31a5df54a57"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Fri Jun 15 06:48:45 2018 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Fri Jun 15 06:57:00 2018 +0900"
      },
      "message": "HookArgs: Add @CanonicalWebUrl annotation to urlProvider\n\nIn change I56fa559d3 the injection of urlProvider was moved from\nHookFactory to HooksArgs, but the @CanonicalWebUrl was accidentally\nomitted. This results in an empty string always being provided.\n\nBug: Issue 9262\nChange-Id: I143855e84cba09fea2d1cb57e3e958e1ffd5abba\n"
    },
    {
      "commit": "c45958b2c63d33643587e063730878b28c97d473",
      "tree": "c0f86d8685896974ad88731981d7bc3a78ac040b",
      "parents": [
        "d497bed6963134388e7f500364a4ae59b94bafe7"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Jun 06 10:29:38 2018 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Jun 06 10:32:28 2018 +0200"
      },
      "message": "Migrate to Flogger\n\nChange-Id: I7f1be9388ba755accfcc43b486a9ff337c6d01f4\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "d497bed6963134388e7f500364a4ae59b94bafe7",
      "tree": "23b17165585f75c406ad2e36b7cbaf2ac51c4c4b",
      "parents": [
        "da73b23cfb065fc28c9e7653860ccd34bd68f0f0",
        "db007bb49807cc39080753075efce31a5df54a57"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Thu May 24 10:26:38 2018 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Thu May 24 10:27:37 2018 +0900"
      },
      "message": "Merge branch \u0027stable-2.15\u0027\n\n* stable-2.15:\n  HookQueue: Rename constructor \u0027queue\u0027 argument to avoid confusion\n  Add submit hook\n  Module: Bind listeners in alphabetical order\n  Annotate RefUpdate and CommitReceived as Singleton\n  Reword documentation of ref-update and commit-received hooks\n  Improve hooks documentation structure\n\nChange-Id: I163ca67fb412b098e0556f4374d54bde65affc00\n"
    },
    {
      "commit": "db007bb49807cc39080753075efce31a5df54a57",
      "tree": "e83a569ec01e71fae7cb4ebbb8f1c03b4fea1019",
      "parents": [
        "01c3fb71412e2b0a532e7f9cae389765a8e982ca",
        "534cd3254c7e43648d36043b0d3f48ab4ae34a27"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Mon May 21 08:28:53 2018 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Mon May 21 08:28:53 2018 +0900"
      },
      "message": "Merge branch \u0027stable-2.14\u0027 into stable-2.15\n\n* stable-2.14:\n  HookQueue: Rename constructor \u0027queue\u0027 argument to avoid confusion\n\nChange-Id: I7d4911d2a77ce1726ef243a42ec9e54d420cf5ad\n"
    },
    {
      "commit": "534cd3254c7e43648d36043b0d3f48ab4ae34a27",
      "tree": "b060d3850f32ead980b7bbde7ceb50458988ca91",
      "parents": [
        "0fe206dea9f652c3b087fb65c5efc4ac3f0e370f"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Fri May 18 19:38:31 2018 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Fri May 18 19:38:33 2018 +0900"
      },
      "message": "HookQueue: Rename constructor \u0027queue\u0027 argument to avoid confusion\n\nThe `queue` argument gets assigned to the `workQueue` member, but\nthere is also a `queue` member.\n\nRename the argument to `workQueue` to match the member that it gets\nassigned to, and prevent possible confusion with the other.\n\nChange-Id: I3fc278e096028f06f0f91b5551e6e435c66fff93\n"
    },
    {
      "commit": "01c3fb71412e2b0a532e7f9cae389765a8e982ca",
      "tree": "5a4b6e9d24fedf2a543805071d7b0977dcb7ee84",
      "parents": [
        "e51f704687f7aa44b448b5af62da3cabfab8a062",
        "0fe206dea9f652c3b087fb65c5efc4ac3f0e370f"
      ],
      "author": {
        "name": "Hugo Arès",
        "email": "hugo.ares@ericsson.com",
        "time": "Thu May 17 08:55:30 2018 -0400"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Fri May 18 10:22:21 2018 +0900"
      },
      "message": "Merge branch \u0027stable-2.14\u0027 into stable-2.15\n\n* stable-2.14:\n  Add submit hook\n  Module: Bind listeners in alphabetical order\n  Annotate RefUpdate and CommitReceived as Singleton\n  Reword documentation of ref-update and commit-received hooks\n  Improve hooks documentation structure\n\nChange-Id: I5f5eed398e182c8542b4b53722d942fb2b6bde5a\n"
    },
    {
      "commit": "0fe206dea9f652c3b087fb65c5efc4ac3f0e370f",
      "tree": "5571ebfe774129cb02f75ac9ea855395e609926b",
      "parents": [
        "951496a53c73d34143be8622410fc90cb2e715cb"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed May 16 16:12:52 2018 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Thu May 17 19:58:34 2018 +0900"
      },
      "message": "Add submit hook\n\nThe submit hook is invoked synchronously when a change is submitted. If\nit returns a non-zero exit status, a MergeValidationException is thrown\nand the submit is prevented.\n\nThis adds back the ability to block submit by a hook. Previously this\nwas possible with the ref-update hook until its purpose was changed and\nonly invoked on ref updates such as branch creation, deletion, or fast-\nforward by direct push.\n\nChange-Id: Ie4efb90df645ecac01638b23305dc2ffb547192e\n"
    },
    {
      "commit": "951496a53c73d34143be8622410fc90cb2e715cb",
      "tree": "98f493d5b3cd5cea05dd3450ab05d45d0c98ae8e",
      "parents": [
        "0c4a90f7ca3479cb4a4e58d06421ad001f83d500"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Thu May 17 19:42:33 2018 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Thu May 17 19:43:05 2018 +0900"
      },
      "message": "Module: Bind listeners in alphabetical order\n\nMost of them are already in alphabetical order. Reorder the couple that\naren\u0027t.\n\nChange-Id: I0722c357992bf855baa0a9b8997078036f28cdc8\n"
    },
    {
      "commit": "0c4a90f7ca3479cb4a4e58d06421ad001f83d500",
      "tree": "33782b57a44f1676eaaa447c55a28a0ebcf9a9a2",
      "parents": [
        "a44e5908221a8b5878c743134891f0c447a493e9"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Thu May 17 11:53:38 2018 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Thu May 17 04:07:18 2018 +0000"
      },
      "message": "Annotate RefUpdate and CommitReceived as Singleton\n\nThese should be singletons so that they are not instantiated every\ntime a hook is executed.\n\nChange-Id: I32e67a85c24138148c1cff97d76144030942930e\n"
    },
    {
      "commit": "a44e5908221a8b5878c743134891f0c447a493e9",
      "tree": "e6e4aff1c48f9410e4750e3bc3c11430384a871a",
      "parents": [
        "64e8445b7db8295ec04749fbcfc668211c84785a"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed May 16 14:33:59 2018 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed May 16 16:54:52 2018 +0900"
      },
      "message": "Reword documentation of ref-update and commit-received hooks\n\nThere has been confusion about the purpose of these hooks. Rewrite\nthe documentation to hopefully make it clearer.\n\nChange-Id: I86c80072d2d9f05c9d926f0a6a5014590af45b05\n"
    },
    {
      "commit": "64e8445b7db8295ec04749fbcfc668211c84785a",
      "tree": "b69f1d8c346e9938b00b4dc748c389b6709f93bc",
      "parents": [
        "1370e0d678579efe09678d33b3ee26c6f9428dac"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed May 16 05:17:15 2018 +0000"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed May 16 16:54:52 2018 +0900"
      },
      "message": "Improve hooks documentation structure\n\nSplit synchronous and asyncronous hooks into separate sections, and move\nthe duplicated paragraphs about syncronous hook behavior into the top\nof the syncronous hooks section.\n\nReplace legacy section heading formatting (\u003d\u003d\u003d\u003d\u003d and ----- forms), which\nonly supports 2 levels, with newer formatting (starting the line with one\nor more # marks) which supports further levels.\n\nAdd a table of contents.\n\nChange-Id: Iacf7c44860ec4d77e44c9816fc04ea641a2c8b43\n"
    },
    {
      "commit": "da73b23cfb065fc28c9e7653860ccd34bd68f0f0",
      "tree": "51330f40f1ad89370c90711b9bcb8e8a2804591d",
      "parents": [
        "4ed6ba03134f95ba7e31cde58f7e33edc72156a5",
        "e51f704687f7aa44b448b5af62da3cabfab8a062"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Fri May 11 09:30:26 2018 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Fri May 11 09:30:26 2018 +0900"
      },
      "message": "Merge branch \u0027stable-2.15\u0027\n\n* stable-2.15:\n  More logging improvements to help tracking down hook problems\n  Clarify usage of logging set-level command in documentation\n  Update debug documentation to enable debugging for the whole package\n\nChange-Id: I86474c9fb38708a6b74570e4c91f8ef4c2ba834e\n"
    },
    {
      "commit": "e51f704687f7aa44b448b5af62da3cabfab8a062",
      "tree": "f3cf950deab3eb5908f65ddcfeb6ab24a8a09d94",
      "parents": [
        "5e0bf585a94a094f7ebd103a194ea73c4252d37c",
        "1370e0d678579efe09678d33b3ee26c6f9428dac"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Fri May 11 08:22:33 2018 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Fri May 11 08:22:33 2018 +0900"
      },
      "message": "Merge branch \u0027stable-2.14\u0027 into stable-2.15\n\n* stable-2.14:\n  More logging improvements to help tracking down hook problems\n  Clarify usage of logging set-level command in documentation\n  Update debug documentation to enable debugging for the whole package\n\nChange-Id: I9d345784c32e4c682ea8110af9323934d8c2ce52\n"
    },
    {
      "commit": "1370e0d678579efe09678d33b3ee26c6f9428dac",
      "tree": "bef88edbfd41f8e3db2effc348d7e7621fd5f58f",
      "parents": [
        "c96abac7537eb63712d6ca734deedae27454f880"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Thu May 10 12:39:28 2018 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Thu May 10 13:23:15 2018 +0900"
      },
      "message": "More logging improvements to help tracking down hook problems\n\nAdd more informational logs:\n\n- The configured hooks path.\n- The resolved path for each hook.\n\nEach of these is only logged once (the latter once per hook) so logging\nat info level will not be obtrusive.\n\nLog the path of the hook file if it does not exist. This is logged at\ndebug level because it will be emitted on every attempt to execute the\nhook.\n\nChange-Id: I1fe6f860346d73648283178b58982180d2c35ce9\n"
    },
    {
      "commit": "c96abac7537eb63712d6ca734deedae27454f880",
      "tree": "f0dd913d4abb0d1f47931596c78455ac2be96341",
      "parents": [
        "4f0e281688d036111b628d61896a2ebbae961625"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Thu May 10 13:22:17 2018 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Thu May 10 13:23:15 2018 +0900"
      },
      "message": "Clarify usage of logging set-level command in documentation\n\nThe command only works for existing loggers. To set the level for\nall loggers one must change the log4j configuration.\n\nChange-Id: I44c04a2fcae8d8c9e812e7de28cf4ccfd3c31b65\n"
    },
    {
      "commit": "4f0e281688d036111b628d61896a2ebbae961625",
      "tree": "8c3333d2e492d53a83d5a20388cf6dbc466e3bcb",
      "parents": [
        "ed035668d708fec7a1893f48f40417ebe024967a"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Thu May 10 13:03:36 2018 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Thu May 10 13:06:09 2018 +0900"
      },
      "message": "Update debug documentation to enable debugging for the whole package\n\nInstead of only enabling for the HookTask class, enable for the whole\nhooks package.\n\nChange-Id: I33503f6185f07945f88b6de7a7aab4eaa509fbbf\n"
    },
    {
      "commit": "4ed6ba03134f95ba7e31cde58f7e33edc72156a5",
      "tree": "cfe0c8e8a997ad1bec4918963f70315610d7f429",
      "parents": [
        "aa4252417f54e28db3a7fa1f98d9a06d8ce49465",
        "5e0bf585a94a094f7ebd103a194ea73c4252d37c"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Thu May 10 11:10:15 2018 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Thu May 10 11:10:15 2018 +0900"
      },
      "message": "Merge branch \u0027stable-2.15\u0027\n\n* stable-2.15:\n  Improve hook debug documentation\n  Increase timeout and non-zero exit logs to error level\n\nChange-Id: I35ce660c3bd3d062e488d1bef1a3f4a5df9e8f52\n"
    },
    {
      "commit": "5e0bf585a94a094f7ebd103a194ea73c4252d37c",
      "tree": "ff50204172116843e88fe338c094eb1937500d3e",
      "parents": [
        "1bed9a12bcade66280db6f70bc8d864de6bf37e9",
        "ed035668d708fec7a1893f48f40417ebe024967a"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Thu May 10 08:33:37 2018 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Thu May 10 08:33:37 2018 +0900"
      },
      "message": "Merge branch \u0027stable-2.14\u0027 into stable-2.15\n\n* stable-2.14:\n  Improve hook debug documentation\n  Increase timeout and non-zero exit logs to error level\n\nChange-Id: Ic7dc9bc15c602c17171480ed5f507440b341d2df\n"
    },
    {
      "commit": "ed035668d708fec7a1893f48f40417ebe024967a",
      "tree": "e626f3766f02a2f0082fab27296d31402344284f",
      "parents": [
        "967bb825cd64d9dd510725ba989a162dc60e9cdd"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed May 09 21:14:29 2018 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed May 09 21:17:17 2018 +0900"
      },
      "message": "Improve hook debug documentation\n\n- Mention that non-zero exit codes and timeouts are always logged\n  at error level.\n\n- Clarify that all hook output, both on stdout and stderr, is logged\n  at debug level.\n\nChange-Id: I92acf1e58a4c8b52b8c16f0e587a1f0d1a963ac0\n"
    },
    {
      "commit": "967bb825cd64d9dd510725ba989a162dc60e9cdd",
      "tree": "99a6d47e7d18a655a4130cd00dfc072296cd3b5b",
      "parents": [
        "0f24dac7cd1c8b2f01754652b349a8d0eee68718"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed May 09 21:08:57 2018 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed May 09 21:08:57 2018 +0900"
      },
      "message": "Increase timeout and non-zero exit logs to error level\n\nThese cases are errors, so it makes more sense to log at error level.\n\nChange-Id: I63eb945f1f6a3a5bffc24bfbf4a905f4d80d35a3\n"
    },
    {
      "commit": "aa4252417f54e28db3a7fa1f98d9a06d8ce49465",
      "tree": "3ac4f89de4f4173848e40dfa248b3481aa751838",
      "parents": [
        "1bcd25599cd37a50c15d8ac9fe98785ce96337a0",
        "1bed9a12bcade66280db6f70bc8d864de6bf37e9"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed May 09 15:59:32 2018 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed May 09 15:59:32 2018 +0900"
      },
      "message": "Merge branch \u0027stable-2.15\u0027\n\n* stable-2.15:\n  Log a warning when a hook exits with error status\n  Include hook name in error message when logging output failed\n  Log a warning when a hook times out\n  Use Logger\u0027s built-in string formatting\n\nChange-Id: Iac58aca64c9699f28ea105850e9fdefbea1e3e64\n"
    },
    {
      "commit": "1bed9a12bcade66280db6f70bc8d864de6bf37e9",
      "tree": "2807350697e4463de19a33877a70894f181f8c76",
      "parents": [
        "5d5373f1ac3ebbe420e30fa190f196a12cd17ea2",
        "0f24dac7cd1c8b2f01754652b349a8d0eee68718"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed May 09 10:54:24 2018 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed May 09 10:54:24 2018 +0900"
      },
      "message": "Merge branch \u0027stable-2.14\u0027 into stable-2.15\n\n* stable-2.14:\n  Log a warning when a hook exits with error status\n  Include hook name in error message when logging output failed\n  Log a warning when a hook times out\n  Use Logger\u0027s built-in string formatting\n\nChange-Id: I8dbc6b71eb46adfcd06b0e64684d78d33c327110\n"
    },
    {
      "commit": "0f24dac7cd1c8b2f01754652b349a8d0eee68718",
      "tree": "9c119408ed5c6d2ee244e0a0cce3b6be15cf13d9",
      "parents": [
        "ec05ceaa22e740c1082962f42850a071e518d38a"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed May 09 10:03:26 2018 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed May 09 10:08:30 2018 +0900"
      },
      "message": "Log a warning when a hook exits with error status\n\nThe hook\u0027s exit status and output were always logged, but only at\ndebug level.\n\nChange it so that when the exit status is an error (non-zero) it is\nlogged at warning level.\n\nChange-Id: I4e7079a897e0d88b3c69f392f634096f477f7780\n"
    },
    {
      "commit": "ec05ceaa22e740c1082962f42850a071e518d38a",
      "tree": "e0f63073e7b330d853ca1b05a6a1bd250de9b082",
      "parents": [
        "904b168155108aeb6b0e2f9707d237d46f5873f9"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed May 09 10:07:32 2018 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed May 09 10:08:10 2018 +0900"
      },
      "message": "Include hook name in error message when logging output failed\n\nChange-Id: I1eb5343ba08baef82023b94f22cea0819e97b864\n"
    },
    {
      "commit": "904b168155108aeb6b0e2f9707d237d46f5873f9",
      "tree": "e5ca6202a5d8c019de18845c1b8ec630e1c59e49",
      "parents": [
        "4aa4eac2613ed8c4dd0ba4c61f5e08ecb21fc60a"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed May 09 10:00:08 2018 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed May 09 10:05:10 2018 +0900"
      },
      "message": "Log a warning when a hook times out\n\nChange-Id: I71bf3ec5f2c85470ff91b7afe80a82a2df0c42e3\n"
    },
    {
      "commit": "4aa4eac2613ed8c4dd0ba4c61f5e08ecb21fc60a",
      "tree": "a4255056f91ad4a732c0f620e6c0458d43565807",
      "parents": [
        "f817dab2b0f18bfb752ab81a61845a1f02d621af"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed May 09 09:58:52 2018 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed May 09 09:58:52 2018 +0900"
      },
      "message": "Use Logger\u0027s built-in string formatting\n\nChange-Id: Ia888e1f27069d556ada7283c20e837c19be61424\n"
    },
    {
      "commit": "1bcd25599cd37a50c15d8ac9fe98785ce96337a0",
      "tree": "89f83b3212c79dac7e5b525aa024f567c22b8214",
      "parents": [
        "337a1e8ebbecd7a96f3a6676980fb1c5c0385f56",
        "5d5373f1ac3ebbe420e30fa190f196a12cd17ea2"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed May 02 10:34:15 2018 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed May 02 10:34:15 2018 +0900"
      },
      "message": "Merge branch \u0027stable-2.15\u0027\n\n* stable-2.15:\n  Wrap account ID in quotes\n\nChange-Id: I7098840018a80db5572840ac75664309770b0687\n"
    },
    {
      "commit": "5d5373f1ac3ebbe420e30fa190f196a12cd17ea2",
      "tree": "16b422b088e518eb353450031dbad2dcbebd539d",
      "parents": [
        "9937b96271441f296a6557f98ed787960367b61f",
        "f817dab2b0f18bfb752ab81a61845a1f02d621af"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed May 02 09:01:29 2018 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed May 02 09:01:29 2018 +0900"
      },
      "message": "Merge branch \u0027stable-2.14\u0027 into stable-2.15\n\n* stable-2.14:\n  Wrap account ID in quotes\n\nChange-Id: I039658735bd1ef4e90c2a4c1be67a3a63c7f6fde\n"
    },
    {
      "commit": "f817dab2b0f18bfb752ab81a61845a1f02d621af",
      "tree": "29f469f758ab287a7ff09edfcac77f6191f0e207",
      "parents": [
        "1955d81e0ce4909a491a8340a2365fe9971eed81"
      ],
      "author": {
        "name": "Leon Dubinsky",
        "email": "ldubinsky@snapchat.com",
        "time": "Mon Apr 30 20:47:07 2018 -0700"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed May 02 08:47:30 2018 +0900"
      },
      "message": "Wrap account ID in quotes\n\nChange-Id: I412e16d9b50cb077f55992780657e7e2e0854059\n"
    },
    {
      "commit": "337a1e8ebbecd7a96f3a6676980fb1c5c0385f56",
      "tree": "96391bd994c4aa52355d29418e1e9c119d3a1b2b",
      "parents": [
        "b876e682b4a318ab2c76079258127614186f2edf",
        "9937b96271441f296a6557f98ed787960367b61f"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Fri Feb 02 14:07:08 2018 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Fri Feb 02 14:07:08 2018 +0900"
      },
      "message": "Merge branch \u0027stable-2.15\u0027\n\n* stable-2.15:\n  Add README\n  Reword introduction in configuration documentation\n  Fix formatting in configuration documentation\n  Improve the \"about\" page\n\nChange-Id: I4d91d62b4dea6f46f1464c0d6b3443b927bd7b5e\n"
    },
    {
      "commit": "9937b96271441f296a6557f98ed787960367b61f",
      "tree": "06803580a901670cd2d997ace5aa6098d76f55c2",
      "parents": [
        "c7d1e9528ff00b5458adda02376357b6a0f817d6",
        "1955d81e0ce4909a491a8340a2365fe9971eed81"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Fri Feb 02 14:01:20 2018 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Fri Feb 02 14:01:20 2018 +0900"
      },
      "message": "Merge branch \u0027stable-2.14\u0027 into stable-2.15\n\n* stable-2.14:\n  Add README\n  Reword introduction in configuration documentation\n  Fix formatting in configuration documentation\n  Improve the \"about\" page\n\nChange-Id: I416f37eb11ede961f2b7afbcf0a47f79ce9fc906\n"
    },
    {
      "commit": "1955d81e0ce4909a491a8340a2365fe9971eed81",
      "tree": "145bc9b59d2c56601fb8392dda1d06e9c15b5e99",
      "parents": [
        "cc4e2a2f4d976d07f5e8487cd003aa0838294b3f"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Fri Feb 02 13:19:24 2018 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Fri Feb 02 13:23:17 2018 +0900"
      },
      "message": "Add README\n\nAdd a README.md file in the repository root with the same content as\nthe \"About\" page.\n\nGitiles will render the README by default when the project is viewed\non the googlesource site [1] and this will make the configuration\ndocumentation and list of supported hooks more easily accessible for\nusers who have not installed the plugin yet in their Gerrit site.\n\n[1] https://gerrit.googlesource.com/plugins/hooks\n\nChange-Id: Ib2ecf818cbabaca8bfddf58e12cce99842a4f038\n"
    },
    {
      "commit": "cc4e2a2f4d976d07f5e8487cd003aa0838294b3f",
      "tree": "4fee8decb010c530da040ae9b690a6737b0ebbc6",
      "parents": [
        "6451df3d3256c1e0cf814bcbd8046210a2b41bae"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Fri Feb 02 13:12:18 2018 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Fri Feb 02 13:12:20 2018 +0900"
      },
      "message": "Reword introduction in configuration documentation\n\nChange-Id: I428167c7929a077386e281f4898e8f4693c315f2\n"
    }
  ],
  "next": "6451df3d3256c1e0cf814bcbd8046210a2b41bae"
}
