)]}'
{
  "log": [
    {
      "commit": "0318d7c9ecc6d125982e4022ff4f4625b604b3ae",
      "tree": "d24312a32dbad3472c2c91a17004d99aeca81bd8",
      "parents": [
        "e3e95eebbdeeb3677aebc6ff11369bf53ce6d225"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Sun Jan 26 16:57:15 2014 +0100"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Sun Jan 26 16:57:15 2014 +0100"
      },
      "message": "THIS REPO IS DEPRECATED\n\nThis repository is deprecated, please use\n\n  https://gerrit-review.googlesource.com/#/admin/projects/plugins/its-base\n\ninstead.\n\nChange-Id: I9664a923ddffb9f3eb3405d663762a1f90034c66\n"
    },
    {
      "commit": "e3e95eebbdeeb3677aebc6ff11369bf53ce6d225",
      "tree": "dc126b709d1c4fe58667bb2f47d0871827dc8d55",
      "parents": [
        "0c6b2729afd5276bbdadff44673e8b819e48681e"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu Jan 02 08:58:11 2014 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu Jan 02 08:58:11 2014 +0000"
      },
      "message": "Init step postRun() introduced for 2.9-SNAPSHOT compliance.\n\nGerrit 2.9 includes the ability for plugins to execute their\ninitialisation steps after the initial run with a fully populated\nDB. We don\u0027t use yet this capability but we need anyway to implement\nthe empty method to be able to load the init step.\n\nChange-Id: Ibc621ea5421c9fb1580421ba3168a2eeb2ad983a\n"
    },
    {
      "commit": "0c6b2729afd5276bbdadff44673e8b819e48681e",
      "tree": "46a47d3d45c5768997e5bad4fdf5d3c5bce0a324",
      "parents": [
        "47fba1205c8dbf52dad6aa2bb51829c01ed642a7"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "edwin.kempin@sap.com",
        "time": "Fri Nov 29 16:20:33 2013 +0100"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "edwin.kempin@sap.com",
        "time": "Mon Dec 02 16:34:00 2013 +0100"
      },
      "message": "Remove @ItsName and replace it by @PluginName\n\nImplementations of hooks-its must now define the plugin name.\n\nChange-Id: I0d0ec5c42836acbb4dd6a86eec03c0904a4bce85\nSigned-off-by: Edwin Kempin \u003cedwin.kempin@sap.com\u003e\n"
    },
    {
      "commit": "47fba1205c8dbf52dad6aa2bb51829c01ed642a7",
      "tree": "9032275838de786640fe4c0a8014c82d4855a886",
      "parents": [
        "d250372441625ceb252b39b550e8027bfd0d7e13"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "edwin.kempin@sap.com",
        "time": "Mon Dec 02 14:18:46 2013 +0100"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "edwin.kempin@sap.com",
        "time": "Mon Dec 02 16:33:49 2013 +0100"
      },
      "message": "Update to Gerrit 2.9 API and use Java 7\n\nChange-Id: I62bfe79e031782305da87db042eaef4bb489ad90\nSigned-off-by: Edwin Kempin \u003cedwin.kempin@sap.com\u003e\n"
    },
    {
      "commit": "d250372441625ceb252b39b550e8027bfd0d7e13",
      "tree": "c1cfb30aa07531889f84442159c398edb7cea08d",
      "parents": [
        "43af6613a65d7dba993bbc6d9d2d77a7af89ba6a",
        "8d0eecfe8490885767dd8664db9bd36262c04f2e"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "edwin.kempin@sap.com",
        "time": "Mon Dec 02 08:44:27 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 02 08:44:28 2013 +0000"
      },
      "message": "Merge \"Add .settings files to the project to get standard code formatting\""
    },
    {
      "commit": "8d0eecfe8490885767dd8664db9bd36262c04f2e",
      "tree": "fa6c239d3c716feb03f049278521982aeb66689d",
      "parents": [
        "221898fc654b059107898cfc65df82d89ed6eeeb"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "edwin.kempin@sap.com",
        "time": "Wed Nov 27 09:06:56 2013 +0100"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Mon Dec 02 01:02:22 2013 +0000"
      },
      "message": "Add .settings files to the project to get standard code formatting\n\nWith these settings the code formatting is done as in Gerrit core.\n\nChange-Id: Ibfbd48c2f1c60f92607bbbcfaef9df4a0869ea6a\nSigned-off-by: Edwin Kempin \u003cedwin.kempin@sap.com\u003e"
    },
    {
      "commit": "43af6613a65d7dba993bbc6d9d2d77a7af89ba6a",
      "tree": "635e5fc3ef7bd305d76ccb579c7e8a8704e4790e",
      "parents": [
        "a1f1e74ec8257b9a9f090f49f3bfc5774627755e",
        "23c2117979b65787fb95466327ad09f2aee3d8c4"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Sun Dec 01 14:14:11 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sun Dec 01 14:14:12 2013 +0000"
      },
      "message": "Merge \"Add hooks-rtc to list of known plugins that are built upon hooks-its\""
    },
    {
      "commit": "a1f1e74ec8257b9a9f090f49f3bfc5774627755e",
      "tree": "d568e33d8dd8bc804f1391064cf8c25568789a9f",
      "parents": [
        "221898fc654b059107898cfc65df82d89ed6eeeb"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "edwin.kempin@sap.com",
        "time": "Thu Nov 28 13:25:31 2013 +0100"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "edwin.kempin@sap.com",
        "time": "Thu Nov 28 13:25:31 2013 +0100"
      },
      "message": "Some cleanups in the documentation\n\nChange-Id: I5d93ee3f5402e26ef2aed315c53ad4156af29cd9\nSigned-off-by: Edwin Kempin \u003cedwin.kempin@sap.com\u003e\n"
    },
    {
      "commit": "23c2117979b65787fb95466327ad09f2aee3d8c4",
      "tree": "d954fdd8887e3ee5aab190f048482af603833dd8",
      "parents": [
        "221898fc654b059107898cfc65df82d89ed6eeeb"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "edwin.kempin@sap.com",
        "time": "Thu Nov 28 13:07:10 2013 +0100"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "edwin.kempin@sap.com",
        "time": "Thu Nov 28 13:07:55 2013 +0100"
      },
      "message": "Add hooks-rtc to list of known plugins that are built upon hooks-its\n\nChange-Id: I77128952b05bbe87eec92034a15d1829234d6ebe\nSigned-off-by: Edwin Kempin \u003cedwin.kempin@sap.com\u003e\n"
    },
    {
      "commit": "221898fc654b059107898cfc65df82d89ed6eeeb",
      "tree": "761d6eacbe080998efc5a22cfba599aec9771fef",
      "parents": [
        "87aa36a4e13243d3a11f54dae98ff4d1c7237297"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "edwin.kempin@sap.com",
        "time": "Thu Nov 21 16:31:57 2013 +0100"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "edwin.kempin@sap.com",
        "time": "Thu Nov 21 16:31:57 2013 +0100"
      },
      "message": "Remove custom YesNoEnum and use yesno method from ConsoleUI\n\nThere is no need to reimplement the yes/no functionality.\n\nChange-Id: I0e9050a38b9785e93b6549d27455f356e828d2de\nSigned-off-by: Edwin Kempin \u003cedwin.kempin@sap.com\u003e\n"
    },
    {
      "commit": "87aa36a4e13243d3a11f54dae98ff4d1c7237297",
      "tree": "32c3579c77d3c75e748231e892ddefa9cbd4c594",
      "parents": [
        "a7faba399fc56e1dd72837f797369611832e2cb4"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "edwin.kempin@sap.com",
        "time": "Wed Nov 13 15:46:14 2013 +0100"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "edwin.kempin@sap.com",
        "time": "Wed Nov 13 15:46:14 2013 +0100"
      },
      "message": "Remove unneeded injection of GitRepositoryManager\n\nChange-Id: I9b2a57ee20f5ff8694a8f02a83a34a9fd50f9a99\nSigned-off-by: Edwin Kempin \u003cedwin.kempin@sap.com\u003e\n"
    },
    {
      "commit": "a7faba399fc56e1dd72837f797369611832e2cb4",
      "tree": "66e258fd2afe844890ae91a328db2d10f30df44d",
      "parents": [
        "06b178fe6c4d1eb3057f2c22b63caff33009528a"
      ],
      "author": {
        "name": "Sasa Zivkov",
        "email": "sasa.zivkov@sap.com",
        "time": "Tue Nov 05 15:55:11 2013 +0100"
      },
      "committer": {
        "name": "Sasa Zivkov",
        "email": "sasa.zivkov@sap.com",
        "time": "Tue Nov 05 16:00:35 2013 +0100"
      },
      "message": "Fix build of hooks-its.\n\nIt wasn\u0027t building after the referenced gerrit-plugin-api version\nwas increased to 2.8-SNAPSHOT.\n\nChange-Id: I76faf98e336d9156abbdfa48a466d0a189d804dc\n"
    },
    {
      "commit": "06b178fe6c4d1eb3057f2c22b63caff33009528a",
      "tree": "9a372b7258fc5879f16135363495927b33295879",
      "parents": [
        "005f112a9520307d911a24df4433c1b086bab685",
        "72e3856d8d3d201cfa516aa76f8807ca6e618d0b"
      ],
      "author": {
        "name": "Chad Horohoe",
        "email": "chorohoe@wikimedia.org",
        "time": "Mon Sep 23 17:35:54 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 23 17:35:54 2013 +0000"
      },
      "message": "Merge \"Extract status from PatchSetAttribute\""
    },
    {
      "commit": "005f112a9520307d911a24df4433c1b086bab685",
      "tree": "fafd4c33d4560762436da35667d7a8379ef2c836",
      "parents": [
        "ef7dbe54c0915d0cb9fc0e3df886a10f8ffd28c6",
        "1a130c23424048666adb66018555c87d044cd0aa"
      ],
      "author": {
        "name": "Chad Horohoe",
        "email": "chorohoe@wikimedia.org",
        "time": "Mon Sep 23 17:34:54 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 23 17:34:54 2013 +0000"
      },
      "message": "Merge \"Bump used gerrit API to version 2.8-SNAPSHOT\""
    },
    {
      "commit": "ef7dbe54c0915d0cb9fc0e3df886a10f8ffd28c6",
      "tree": "fa2867a7038a57039d93be960528e20858d19ed5",
      "parents": [
        "65628dea16277bdddd39906f0e191360ccc22464",
        "9e05c32184717449b71bd1778f02e00320241e86"
      ],
      "author": {
        "name": "Chad Horohoe",
        "email": "chorohoe@wikimedia.org",
        "time": "Mon Sep 23 17:34:43 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 23 17:34:44 2013 +0000"
      },
      "message": "Merge changes I6f698f3e,I48d8d181\n\n* changes:\n  Extract status from ChangeAttribute\n  Allow to negate conditions by setting their first value to !\n"
    },
    {
      "commit": "65628dea16277bdddd39906f0e191360ccc22464",
      "tree": "6b256ee78530db820c2ebf448ab21268581b10c5",
      "parents": [
        "0f856b8a6162b283b5c551e8f0118e9149356c61",
        "5f2ec2f2d371df8b774327651a5afe2c9c1ca0e7"
      ],
      "author": {
        "name": "Chad Horohoe",
        "email": "chorohoe@wikimedia.org",
        "time": "Mon Sep 23 17:34:24 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 23 17:34:25 2013 +0000"
      },
      "message": "Merge changes I99bb4320,I7d5d74f1,Ic3b4a139\n\n* changes:\n  Hide Condition\u0027s getValue\n  Add handling of DraftPublishedEvent\n  Add link formatting to Velocity comments\n"
    },
    {
      "commit": "0f856b8a6162b283b5c551e8f0118e9149356c61",
      "tree": "20f8cae4f3f285e720954e9c5336e769c3eff5e7",
      "parents": [
        "62d6e85bd014afe56f73fb27d8bef79a8a809154",
        "a6b6d12a6daf861f6216ec959027c03d220f9df7"
      ],
      "author": {
        "name": "Chad Horohoe",
        "email": "chorohoe@wikimedia.org",
        "time": "Mon Sep 23 17:33:34 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 23 17:33:34 2013 +0000"
      },
      "message": "Merge \"Add action to log event properties\""
    },
    {
      "commit": "62d6e85bd014afe56f73fb27d8bef79a8a809154",
      "tree": "93ebfec82d4b20fea98cc855eab3f4dcebc1e1ae",
      "parents": [
        "92108571f6ae9349acd31b0b9a9bf00b71969ec4",
        "449782aae29710273f1390bf2daec3f0b351af5b"
      ],
      "author": {
        "name": "Chad Horohoe",
        "email": "chorohoe@wikimedia.org",
        "time": "Mon Sep 23 17:33:26 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 23 17:33:26 2013 +0000"
      },
      "message": "Merge \"Adding documentation for configuration/action rewrite\""
    },
    {
      "commit": "92108571f6ae9349acd31b0b9a9bf00b71969ec4",
      "tree": "54b652a5dbec660ad6959a036eda1f71b161e503",
      "parents": [
        "9fa6ce053d97137a77827ed998dd1f82b7a0757a",
        "d4331ff8f53b31d94e036c24a94af2073c4cf809"
      ],
      "author": {
        "name": "Chad Horohoe",
        "email": "chorohoe@wikimedia.org",
        "time": "Mon Sep 23 17:33:16 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 23 17:33:17 2013 +0000"
      },
      "message": "Merge \"Add action to add a plain comment to an issue\""
    },
    {
      "commit": "9fa6ce053d97137a77827ed998dd1f82b7a0757a",
      "tree": "aaac9d17bc4be95012967b375183b4d0f8c1cfee",
      "parents": [
        "512ae928c863c945907719bd14bcf44aab8cfb78",
        "28000bf61792e8d0f115a95aea366a9517d0899e"
      ],
      "author": {
        "name": "Chad Horohoe",
        "email": "chorohoe@wikimedia.org",
        "time": "Mon Sep 23 17:33:09 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 23 17:33:10 2013 +0000"
      },
      "message": "Merge \"Add keyed properties for issue occurrences in footer lines\""
    },
    {
      "commit": "512ae928c863c945907719bd14bcf44aab8cfb78",
      "tree": "0530b3c5799f2141cee666a4109b4cb2e9b64d73",
      "parents": [
        "d43cc39a1ee0ecd0e8c299f87f1cf3ab884a5d6a",
        "6adf63a51a2b1fb25741e37dca2aefc96f9125e0"
      ],
      "author": {
        "name": "Chad Horohoe",
        "email": "chorohoe@wikimedia.org",
        "time": "Mon Sep 23 17:33:02 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 23 17:33:02 2013 +0000"
      },
      "message": "Merge \"Extract approvals into properties for CommentAddedEvent\""
    },
    {
      "commit": "d43cc39a1ee0ecd0e8c299f87f1cf3ab884a5d6a",
      "tree": "21317d781cd4d98a33f9080354bf95d0cbe44bd9",
      "parents": [
        "23b24e639aed503deee12306e32ecb2da13e1f8a",
        "6d7372d9a27931fbe26cdd15b3bae3ac9698396c"
      ],
      "author": {
        "name": "Chad Horohoe",
        "email": "chorohoe@wikimedia.org",
        "time": "Mon Sep 23 17:32:53 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 23 17:32:53 2013 +0000"
      },
      "message": "Merge \"When adding issue occurrences, mark them additionally as \u0027added@\u0027\""
    },
    {
      "commit": "23b24e639aed503deee12306e32ecb2da13e1f8a",
      "tree": "437fd96423eee3e4ff88fbfdf6ffdcf680060d22",
      "parents": [
        "4b744e0b96be1c9c9ffd160251ade44153c2ebc6",
        "72de8ad4092177e850fd5493f11135c33431a52c"
      ],
      "author": {
        "name": "Chad Horohoe",
        "email": "chorohoe@wikimedia.org",
        "time": "Mon Sep 23 17:32:46 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 23 17:32:46 2013 +0000"
      },
      "message": "Merge \"Add properties to specify where an issue got associated\""
    },
    {
      "commit": "4b744e0b96be1c9c9ffd160251ade44153c2ebc6",
      "tree": "78e8511e6bb0bccf56131b23b17f47578549272f",
      "parents": [
        "2be75c2f0635bb3949e0ca80c1f8813b2629618e",
        "0cf53a51505fb51684367da299041f15cdbc4b4b"
      ],
      "author": {
        "name": "Chad Horohoe",
        "email": "chorohoe@wikimedia.org",
        "time": "Mon Sep 23 17:32:38 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 23 17:32:38 2013 +0000"
      },
      "message": "Merge \"Add actions for comments built from Velocity templates\""
    },
    {
      "commit": "2be75c2f0635bb3949e0ca80c1f8813b2629618e",
      "tree": "6f0d74ccf4b7205ca4641d627790f8599f4c4db3",
      "parents": [
        "2b0bfee5df4ba400135ee398105ae341e738dd5c",
        "b4ada628fb2653917b7c49991013aafd7ef36d4f"
      ],
      "author": {
        "name": "Chad Horohoe",
        "email": "chorohoe@wikimedia.org",
        "time": "Mon Sep 23 17:32:29 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 23 17:32:30 2013 +0000"
      },
      "message": "Merge \"Add action for short predefined comments\""
    },
    {
      "commit": "2b0bfee5df4ba400135ee398105ae341e738dd5c",
      "tree": "59df543b5b5859fea0612046ac1b7463fe61d9fe",
      "parents": [
        "c2bedf1bb81d081903b0ee813c347efe55894980",
        "d479aed0a495adf07e95a2deb59a4bc5595e88f9"
      ],
      "author": {
        "name": "Chad Horohoe",
        "email": "chorohoe@wikimedia.org",
        "time": "Mon Sep 23 17:31:26 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 23 17:31:27 2013 +0000"
      },
      "message": "Merge \"Pass actions through to Its\""
    },
    {
      "commit": "c2bedf1bb81d081903b0ee813c347efe55894980",
      "tree": "c0004de740c6fdf90ae0a0e55bf52c0593e50c7a",
      "parents": [
        "536e7cd040da0f1de32edd284e8e141b7b9c85ae",
        "3db23a694168090b24b92f02ac93787213822815"
      ],
      "author": {
        "name": "Chad Horohoe",
        "email": "chorohoe@wikimedia.org",
        "time": "Mon Sep 23 17:31:17 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 23 17:31:17 2013 +0000"
      },
      "message": "Merge \"Implement extracting properties from events\""
    },
    {
      "commit": "536e7cd040da0f1de32edd284e8e141b7b9c85ae",
      "tree": "0327fcaf5b7094a5d48020a6399fd20d899f6176",
      "parents": [
        "504fdc945083d5f8f8ac69f9c21263124daf1d86",
        "e971867cdd5f31e3a6e30733a026bd24eaf8b561"
      ],
      "author": {
        "name": "Chad Horohoe",
        "email": "chorohoe@wikimedia.org",
        "time": "Mon Sep 23 17:30:52 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 23 17:30:52 2013 +0000"
      },
      "message": "Merge \"Allow to extract issue ids directly by project name, and commit id\""
    },
    {
      "commit": "504fdc945083d5f8f8ac69f9c21263124daf1d86",
      "tree": "9046753028c716a22d02eb60cd2e061bb80cda97",
      "parents": [
        "cf677795052fe7c65c7518e59b61696af979e23b",
        "7eef87d7b3a5e05bbbd14138332e6ce22d1a7454"
      ],
      "author": {
        "name": "Chad Horohoe",
        "email": "chorohoe@wikimedia.org",
        "time": "Mon Sep 23 17:30:43 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 23 17:30:43 2013 +0000"
      },
      "message": "Merge \"Extract fetching commit messages into injectable class\""
    },
    {
      "commit": "cf677795052fe7c65c7518e59b61696af979e23b",
      "tree": "9b7fb5697ba6b17ef81c760fd85a0df1519657ef",
      "parents": [
        "ce3e5a105b2f3a7aed2fc3a7c36ad13ab1cdaba7",
        "790465f9e08ca0d7ebba4ca3c7a8b530fa31e6b8"
      ],
      "author": {
        "name": "Chad Horohoe",
        "email": "chorohoe@wikimedia.org",
        "time": "Mon Sep 23 17:30:33 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 23 17:30:33 2013 +0000"
      },
      "message": "Merge \"Switch to IssueExtractor constructor injection to ease mocking\""
    },
    {
      "commit": "ce3e5a105b2f3a7aed2fc3a7c36ad13ab1cdaba7",
      "tree": "0afa0ce17d23c33a65ebe96e574c30a13ed903ce",
      "parents": [
        "b7c6f7a75ff94eead56b1e0194a5ae3f6bba9b55",
        "ec44c85b100abaf33e68bbedeab60a957ad93b04"
      ],
      "author": {
        "name": "Chad Horohoe",
        "email": "chorohoe@wikimedia.org",
        "time": "Mon Sep 23 17:30:18 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 23 17:30:18 2013 +0000"
      },
      "message": "Merge \"Add RuleBase implementation\""
    },
    {
      "commit": "b7c6f7a75ff94eead56b1e0194a5ae3f6bba9b55",
      "tree": "7929b51eb34097efec28651a4c637c41e5cd40f2",
      "parents": [
        "e588718e1a83441851f0c87079f1f17ad65bfa37",
        "e623d76256b9f8a1b446e0186dafe861f6c9cc00"
      ],
      "author": {
        "name": "Chad Horohoe",
        "email": "chorohoe@wikimedia.org",
        "time": "Mon Sep 23 17:28:38 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 23 17:28:39 2013 +0000"
      },
      "message": "Merge \"Add workflow for ActionController\""
    },
    {
      "commit": "e588718e1a83441851f0c87079f1f17ad65bfa37",
      "tree": "9c26779235e2dbc87c70123be78a075e35216c9f",
      "parents": [
        "9ed3dc94233d4f0cd455e9dcdca49a5aca8dcd7d",
        "e149bf59593732207a33c0cbc662bdce59f4b1d9"
      ],
      "author": {
        "name": "Chad Horohoe",
        "email": "chorohoe@wikimedia.org",
        "time": "Thu Jun 27 15:32:51 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 27 15:32:51 2013 +0000"
      },
      "message": "Merge \"Add skeleton action controller unifying event handling\""
    },
    {
      "commit": "72e3856d8d3d201cfa516aa76f8807ca6e618d0b",
      "tree": "955479a40277989339c3d4a28ffe37ad3995210b",
      "parents": [
        "1a130c23424048666adb66018555c87d044cd0aa"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Tue Jun 18 15:05:14 2013 +0200"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Tue Jun 25 17:06:18 2013 +0200"
      },
      "message": "Extract status from PatchSetAttribute\n\nThis change requires\n\n  https://gerrit-review.googlesource.com/#/c/47041/\n\nbut is required for ChangeAbandonedEvents to detect whether or not the\nabandoned change was a draft change or not.\n\nChange-Id: I27c0fbe4516e7304650dc0d539e147fc1f9c49a7\n"
    },
    {
      "commit": "1a130c23424048666adb66018555c87d044cd0aa",
      "tree": "342fbb4b78dd076bad2602efb2c31baafad2dbaf",
      "parents": [
        "9e05c32184717449b71bd1778f02e00320241e86"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Tue Jun 18 00:53:30 2013 +0200"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Tue Jun 25 17:06:10 2013 +0200"
      },
      "message": "Bump used gerrit API to version 2.8-SNAPSHOT\n\nSince current gerrit-plugin-api-2.8-SNAPSHOT does not come with\ngerrit-pgm, we have to add it for now to be able to build. We can\nremove that dependency again, once gerrit upstream includes gerrit-pgm\nin gerrit-plugin-api again.\n\nChange-Id: I58c3534765180bcc710c95449630095983729274\n"
    },
    {
      "commit": "9e05c32184717449b71bd1778f02e00320241e86",
      "tree": "0e75f0c89e1dc20b35004a5459385a1f3002f60c",
      "parents": [
        "0eb6c2c496b2289eba2dc0ab030f956acbcab609"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Tue Jun 18 15:00:40 2013 +0200"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Tue Jun 25 17:06:03 2013 +0200"
      },
      "message": "Extract status from ChangeAttribute\n\nChange-Id: I6f698f3e97b932cbb1909650f6fc20df7ae60b7f\n"
    },
    {
      "commit": "0eb6c2c496b2289eba2dc0ab030f956acbcab609",
      "tree": "7b59754b2c82686562cb39630114efdfcb10e46b",
      "parents": [
        "5f2ec2f2d371df8b774327651a5afe2c9c1ca0e7"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Tue Jun 18 16:50:01 2013 +0200"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Tue Jun 25 17:05:38 2013 +0200"
      },
      "message": "Allow to negate conditions by setting their first value to !\n\nThereby, we can formulate conditions as\n  status \u003d !,DRAFT\nto match changes that are not in DRAFT status.\n\nChange-Id: I48d8d1814cfc5eb6357449344339487f238e4061\n"
    },
    {
      "commit": "5f2ec2f2d371df8b774327651a5afe2c9c1ca0e7",
      "tree": "2e01b5254204ceabad98262f9b3e5af5900e06a3",
      "parents": [
        "b4c0e8fcf5911c22795195f96c57d12def609d6f"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Tue Jun 18 15:41:49 2013 +0200"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Tue Jun 25 17:05:35 2013 +0200"
      },
      "message": "Hide Condition\u0027s getValue\n\nCondition\u0027s getValue was effectively only used in tests.\n\nChange-Id: I99bb432060281d34b3a827228033b818855a3be8\n"
    },
    {
      "commit": "b4c0e8fcf5911c22795195f96c57d12def609d6f",
      "tree": "349db03e237c424fcb31f89592a7b45e03f8b2ae",
      "parents": [
        "174a529c350efd2bc8e4550dc375941b4cea4f76"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Mon Jun 17 23:33:47 2013 +0200"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Tue Jun 25 17:05:33 2013 +0200"
      },
      "message": "Add handling of DraftPublishedEvent\n\nChange-Id: I7d5d74f1d64d32a654f77375f90f42077ad055fb\n"
    },
    {
      "commit": "174a529c350efd2bc8e4550dc375941b4cea4f76",
      "tree": "db39ed084014027f9f6a9255e0214c5aa3da9a73",
      "parents": [
        "a6b6d12a6daf861f6216ec959027c03d220f9df7"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Mon Jun 17 13:33:56 2013 +0200"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Tue Jun 25 17:05:27 2013 +0200"
      },
      "message": "Add link formatting to Velocity comments\n\nFor example the rule\n\n  [rule \"formatLinkSampleRule\"]\n          event-type \u003d comment-added\n          action \u003d add-velocity-comment inline Comment for change $change-number added. See ${its.formatLink($change-url)}\n\nwould format a link to the event\u0027s change-url in the its\u0027 syntax.\n\nChange-Id: Ic3b4a13913309719c34ed1e66a9acdf246096522\n"
    },
    {
      "commit": "a6b6d12a6daf861f6216ec959027c03d220f9df7",
      "tree": "dcff8738b39d07fab75be17e76caf1fe322bca40",
      "parents": [
        "449782aae29710273f1390bf2daec3f0b351af5b"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Sat Jun 15 18:30:20 2013 +0200"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Tue Jun 25 17:05:14 2013 +0200"
      },
      "message": "Add action to log event properties\n\nThis action helps when developing rules by showing what properties are\navailable for an event.\n\nChange-Id: I9540517a5bf33eba375472dc0ee810d276ba4331\n"
    },
    {
      "commit": "449782aae29710273f1390bf2daec3f0b351af5b",
      "tree": "43be8cbe0c6fea36e0b0e8116f4806955aa646ba",
      "parents": [
        "d4331ff8f53b31d94e036c24a94af2073c4cf809"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Sat Jun 15 23:09:13 2013 +0200"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Tue Jun 25 17:05:10 2013 +0200"
      },
      "message": "Adding documentation for configuration/action rewrite\n\nChange-Id: I45328e30056f2b76376fcea268262e6ad65d6078\n"
    },
    {
      "commit": "9ed3dc94233d4f0cd455e9dcdca49a5aca8dcd7d",
      "tree": "7ed14ebe57930d497cf8bf9146bb2e62d5b16f36",
      "parents": [
        "e114e60b578fe27fe9ec4a01dfe48be5868cc8ae"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Sat Jun 15 22:22:26 2013 +0200"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Mon Jun 17 15:39:03 2013 +0200"
      },
      "message": "Ignore *.html files in hooks-its/src/main/resources/Documentation\n\nThereby it gets easier to develop documentation as we can now run\nasciidoc without ending up in a dirty tree.\n\nChange-Id: If5f294bfe94d7ffe9fbad98d6da11af0627521eb\n"
    },
    {
      "commit": "d4331ff8f53b31d94e036c24a94af2073c4cf809",
      "tree": "95479e8eb8067dd923e01ef148e49a9b469f23e9",
      "parents": [
        "28000bf61792e8d0f115a95aea366a9517d0899e"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Sat Jun 15 15:01:43 2013 +0200"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Mon Jun 17 15:38:26 2013 +0200"
      },
      "message": "Add action to add a plain comment to an issue\n\nChange-Id: I06b2b1bba40d5099f44531eae8fa8ed3d55e4c32\n"
    },
    {
      "commit": "28000bf61792e8d0f115a95aea366a9517d0899e",
      "tree": "205d7029e9da153588cef4a14dc4c8cd28c1581d",
      "parents": [
        "6adf63a51a2b1fb25741e37dca2aefc96f9125e0"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Fri Jun 14 16:35:04 2013 +0200"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Mon Jun 17 15:38:26 2013 +0200"
      },
      "message": "Add keyed properties for issue occurrences in footer lines\n\nFor for example a footer like:\n\n  Related-To-Bug: bug#42\n  Fixes-Bug: bug#4711\n\nwould now also add occurrences \"footer-Related-To-Bug\" for issue 42,\nand \"footer-Fixes-Bug\" for issue 4711. Thereby, we allow to formulate\nrules that fire depending on where an issue has been mentioned in the\nfooter.\n\nChange-Id: I37a0b3bcd555d3cc7a34c0143e6229a0d86ad540\n"
    },
    {
      "commit": "6adf63a51a2b1fb25741e37dca2aefc96f9125e0",
      "tree": "518e736c04e5bb67e336c86e3d7ae6558dcda0bb",
      "parents": [
        "6d7372d9a27931fbe26cdd15b3bae3ac9698396c"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Fri Jun 14 15:35:15 2013 +0200"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Mon Jun 17 15:38:26 2013 +0200"
      },
      "message": "Extract approvals into properties for CommentAddedEvent\n\nChange-Id: I1a8a6678ca492efaa802441570a0f4cae9a591d0\n"
    },
    {
      "commit": "6d7372d9a27931fbe26cdd15b3bae3ac9698396c",
      "tree": "f3089bc69ee8725235f9c7ac55b66f5e09a058d1",
      "parents": [
        "72de8ad4092177e850fd5493f11135c33431a52c"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Fri Jun 14 13:27:48 2013 +0200"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Mon Jun 17 15:38:26 2013 +0200"
      },
      "message": "When adding issue occurrences, mark them additionally as \u0027added@\u0027\n\nFor example if change 4711, patch set 2 comes with occurrences\n\"somewhere\", \"body\", and \"subject\", and patch set 3 has occurrences\n\"somewhere\", \"body\", and \"footer\" for the same issue, then\nadditionally, the occurrence \"added@footer\" is adjoined for patch\nset 3.\n\nThereby, rules can be formulated that fire if and only if an issue\nassociation in some part has been just added to the change.\n\nChange-Id: I8bedba4fbd91f188c4fdf553941273cb3e52389b\n"
    },
    {
      "commit": "72de8ad4092177e850fd5493f11135c33431a52c",
      "tree": "32ef969d71c74726cef84de3f39fa00d434d94fe",
      "parents": [
        "0cf53a51505fb51684367da299041f15cdbc4b4b"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Tue Jun 04 22:44:15 2013 +0200"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Mon Jun 17 15:38:26 2013 +0200"
      },
      "message": "Add properties to specify where an issue got associated\n\nAssociations in the commit message\u0027s subject get a\n\"association \u003d subject\" property. Accordingly for the body and the\nfooter of a commit message.\n\nChange-Id: Ia594d7204995f1cd303b8ae533b85500f304f851\n"
    },
    {
      "commit": "0cf53a51505fb51684367da299041f15cdbc4b4b",
      "tree": "e03f45239214d0dde736cba8ad2868c65c7d9147",
      "parents": [
        "b4ada628fb2653917b7c49991013aafd7ef36d4f"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Tue Jun 04 13:07:11 2013 +0200"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Mon Jun 17 15:38:26 2013 +0200"
      },
      "message": "Add actions for comments built from Velocity templates\n\nThe templates can be given inline in the config file, or stored in a\nseparate file.\n\nChange-Id: Ib726529c4e2a849923f8894c2bc0d1cdc15a1c5d\n"
    },
    {
      "commit": "b4ada628fb2653917b7c49991013aafd7ef36d4f",
      "tree": "6aae4838318dd88e289cc26c4209011763aa521e",
      "parents": [
        "d479aed0a495adf07e95a2deb59a4bc5595e88f9"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Mon Jun 03 18:42:00 2013 +0200"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Mon Jun 17 15:38:26 2013 +0200"
      },
      "message": "Add action for short predefined comments\n\nAddStandardComments allows to add short Its comments for merging,\nabandoning, restoring of changes and adding of patch sets.\n\nChange-Id: Id0c699ce353e3ff92b4de178cf9fd4ec2e5936a5\n"
    },
    {
      "commit": "d479aed0a495adf07e95a2deb59a4bc5595e88f9",
      "tree": "7e64cdb3227f37eb35dac982325e66cf43c38425",
      "parents": [
        "3db23a694168090b24b92f02ac93787213822815"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Mon Jun 03 15:51:01 2013 +0200"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Mon Jun 17 15:38:26 2013 +0200"
      },
      "message": "Pass actions through to Its\n\nChange-Id: Ie59ad8f75e4e1edb6ad4a2782772b6b76cb7a22c\n"
    },
    {
      "commit": "3db23a694168090b24b92f02ac93787213822815",
      "tree": "ab7df6aade4bb641d5a47fed6ae4407cbe2d30f0",
      "parents": [
        "e971867cdd5f31e3a6e30733a026bd24eaf8b561"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Sun Jun 02 22:06:23 2013 +0200"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Mon Jun 17 15:38:26 2013 +0200"
      },
      "message": "Implement extracting properties from events\n\nChange-Id: I98ad49f935902edc89ab051c3389ef336aaa4c6e\n"
    },
    {
      "commit": "e971867cdd5f31e3a6e30733a026bd24eaf8b561",
      "tree": "dd9a6a7000c65aaf30ead1e15f807ee06755d9e0",
      "parents": [
        "7eef87d7b3a5e05bbbd14138332e6ce22d1a7454"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Mon Jun 03 12:03:46 2013 +0200"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Mon Jun 17 15:38:26 2013 +0200"
      },
      "message": "Allow to extract issue ids directly by project name, and commit id\n\nChange-Id: I8830310a415bef01637d152d2ee43bc4073c382a\n"
    },
    {
      "commit": "7eef87d7b3a5e05bbbd14138332e6ce22d1a7454",
      "tree": "12982dc0517545d0f95c3c55478bf6b7761f84e5",
      "parents": [
        "790465f9e08ca0d7ebba4ca3c7a8b530fa31e6b8"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Mon Jun 03 11:24:34 2013 +0200"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Mon Jun 17 15:38:26 2013 +0200"
      },
      "message": "Extract fetching commit messages into injectable class\n\nAs other parts besides GerritHookFilter need to obtain commit\nmessages, we extract that method into an injectable class.\n\nChange-Id: I40027347e1b8ef70b424ef056060465f08f2f404\n"
    },
    {
      "commit": "790465f9e08ca0d7ebba4ca3c7a8b530fa31e6b8",
      "tree": "fbd3ad2d76a9ad492c5abcd3dbf757a62b6b6de2",
      "parents": [
        "ec44c85b100abaf33e68bbedeab60a957ad93b04"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Sun Jun 02 16:48:03 2013 +0200"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Mon Jun 17 15:38:26 2013 +0200"
      },
      "message": "Switch to IssueExtractor constructor injection to ease mocking\n\nChange-Id: I63c717c7e38f647345598d17f0caa52286454ff9\n"
    },
    {
      "commit": "ec44c85b100abaf33e68bbedeab60a957ad93b04",
      "tree": "03b1e06e81b634a4de3587cdf43d847679ec03da",
      "parents": [
        "e623d76256b9f8a1b446e0186dafe861f6c9cc00"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Sun Jun 02 12:29:01 2013 +0200"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Mon Jun 17 15:38:26 2013 +0200"
      },
      "message": "Add RuleBase implementation\n\nChange-Id: I8a93cbaa34df7295c1c90d044f71f974e4a9951a\n"
    },
    {
      "commit": "e623d76256b9f8a1b446e0186dafe861f6c9cc00",
      "tree": "7046dba6c012b3397e672ba48799c30090945582",
      "parents": [
        "e149bf59593732207a33c0cbc662bdce59f4b1d9"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Sun Jun 02 11:52:36 2013 +0200"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Mon Jun 17 15:38:26 2013 +0200"
      },
      "message": "Add workflow for ActionController\n\nActionController\u0027s workflow gets split into three components:\n* PropertyExtractor (extracts properties from an event),\n* RuleBase (assigns actions to properties), and\n* ActionExecutor (executes matched actions).\n\nChange-Id: Ideb81b242a0f097c94c76bd90afff4bdb438609a\n"
    },
    {
      "commit": "e149bf59593732207a33c0cbc662bdce59f4b1d9",
      "tree": "b8acc6643db7cf30f867e27281815c9359f968e6",
      "parents": [
        "e114e60b578fe27fe9ec4a01dfe48be5868cc8ae"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Fri May 31 17:31:43 2013 +0200"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Mon Jun 17 15:35:58 2013 +0200"
      },
      "message": "Add skeleton action controller unifying event handling\n\nThe approach to handling events comes with several short-comings:\n\n* Event handling is currently separated over several listeners. Some\n  allow to freely formulate preconditions (e.g.: changing an issue\u0027s\n  state), other listeners had again and again introduced further\n  configuration settings to allow setting fine controlled verbosity\n  (linking to change/patch set), other listeners can only be turned\n  on/off (e.g.: linking to gitweb). However, for all of those actions\n  could benefit from freely formulated preconditions.\n\n* The current transition format does not allow to different sets of\n  conditions to fire the same action.\n\n* The current approach to associating an issue to a patch set does not\n  allow disambiguate between an issue being referenced in a commit\n  message\u0027s subject line, its body, or its footer. Let alone add\n  comments based on that.\n\n* The current approach does not allow easily modify the text of the\n  added its comments.\n\nAs addressing all those needs goes beyond the current event handling\ndesign, we add an action controller and work towards replacing the old\ndesign.\n\nThe action controller will be backed by a single, common rule base. It\nwill allow for different rules to fire the same action, provide was to\ndisambiguate between where the issue has been referenced, and allow to\nmodify standard text for its comments using Velocity templates.\n\nChange-Id: I8c722f9957f1e44133a93332e71bf56deb56d6ba\n"
    },
    {
      "commit": "e114e60b578fe27fe9ec4a01dfe48be5868cc8ae",
      "tree": "d0cfff92f0aeb3e6de01858979f069bbda5d5d6a",
      "parents": [
        "63e70cdcbf6b7d784e3a6283476fb1844ccd3079",
        "d500dd393209e2d2b021e724ecf910f6c5dddb7a"
      ],
      "author": {
        "name": "Chad Horohoe",
        "email": "chorohoe@wikimedia.org",
        "time": "Thu May 16 21:14:40 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 16 21:14:40 2013 +0000"
      },
      "message": "Merge \"Allow ITS comments for a change\u0027s patch sets that first associate an issue\""
    },
    {
      "commit": "d500dd393209e2d2b021e724ecf910f6c5dddb7a",
      "tree": "6ae2ada03de90a7f534d48d508918bc5265c3337",
      "parents": [
        "ebe0a8f92575ee6826e512a2862086cd5e55dfed"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Tue Apr 30 18:41:26 2013 +0200"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Tue Apr 30 19:06:42 2013 +0200"
      },
      "message": "Allow ITS comments for a change\u0027s patch sets that first associate an issue\n\nWhen setting commentOnFirstLinkedPatchSetCreated to true (and not\ntaking other commenting options into account), adding\n* patch set 1 that associates issue 101, and issue 103, and\n* patch set 2 that associates issue 102, and issue 103,\n* patch set 3 that associates issue 101, and issue 102,\nto some change amounts for\n* issue 101 getting a single ITS comment for patch set 1,\n* issue 102 getting a single ITS comment for patch set 2, and\n* issue 103 getting a single ITS comment for patch set 1.\n\nChange-Id: Ie882107f4b4bb58dee5fb67899bbe8816364f8eb\n"
    },
    {
      "commit": "63e70cdcbf6b7d784e3a6283476fb1844ccd3079",
      "tree": "843585593fcb3b31a3d0406c2ce674094c1f8af1",
      "parents": [
        "37828e4172ae60c37149d8c9b5baf450b191cc9b"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Sun Apr 14 22:13:21 2013 +0200"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Mon Apr 15 01:05:43 2013 +0200"
      },
      "message": "Add tests for IssueExtractor\n\nChange-Id: Ie62cba8382880e4b7aad4de38a21d6acea7dcdbe\n"
    },
    {
      "commit": "ebe0a8f92575ee6826e512a2862086cd5e55dfed",
      "tree": "073fb37fec6c2834f1b5442f735d0c54e32fa420",
      "parents": [
        "bd8330b3d9ef13687a4beefd19ef36fe1063e6a8"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Sun Apr 14 22:08:33 2013 +0200"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Mon Apr 15 01:05:43 2013 +0200"
      },
      "message": "Add test infrastructure\n\nChange-Id: Ia2f814fd2793cb63eb4302e9249902daa68b218c\n"
    },
    {
      "commit": "37828e4172ae60c37149d8c9b5baf450b191cc9b",
      "tree": "47becd5f51fd23e24e747438f8cc59e07c156108",
      "parents": [
        "ebe0a8f92575ee6826e512a2862086cd5e55dfed"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Sun Apr 14 22:13:06 2013 +0200"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Mon Apr 15 01:05:43 2013 +0200"
      },
      "message": "Add tests for ItsValidateComment\n\nChange-Id: I49014d075f8f5c0c672bae0f1b52a767e3e100d6\n"
    },
    {
      "commit": "bd8330b3d9ef13687a4beefd19ef36fe1063e6a8",
      "tree": "40d1710f7c8e5aee2cc0532ae5363808be0a6e1b",
      "parents": [
        "68c95c56b8891095bad83b7194921c84388ca8a9"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Sun Apr 14 18:05:52 2013 +0200"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Mon Apr 15 01:05:43 2013 +0200"
      },
      "message": "Set visibility of ItsValidateComment\u0027s validCommit to private\n\nThe method is not used publicly, so we set it to private to minimize\nthe interface we have to keep stable.\n\nChange-Id: I677c53eeb25792f911c0778cd2cc39ee06067315\n"
    },
    {
      "commit": "68c95c56b8891095bad83b7194921c84388ca8a9",
      "tree": "46483292f053e11273fddbc42c0e3f32694dc5b2",
      "parents": [
        "e2c8126b2e357c895fae838eb6bbbfb61141d815"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Sun Apr 14 17:05:39 2013 +0200"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Mon Apr 15 01:05:43 2013 +0200"
      },
      "message": "When searching issue ids in Strings, do not return duplicates\n\nChange-Id: Ia7cfd9589fd12b828d637893177f18918ba7450f\n"
    },
    {
      "commit": "e2c8126b2e357c895fae838eb6bbbfb61141d815",
      "tree": "2a47eeeb702f89c0595a197adb2fc461dc7e43da",
      "parents": [
        "2d2cf8a1d5a182ddf699ff6cb8c6c93c6285d360"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Sun Apr 14 17:00:18 2013 +0200"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Mon Apr 15 01:05:43 2013 +0200"
      },
      "message": "Simplify extraction of issue id from match\n\nChange-Id: I23ea3313827540ab4cb9814a6cd2b378303c5920\n"
    },
    {
      "commit": "2d2cf8a1d5a182ddf699ff6cb8c6c93c6285d360",
      "tree": "21723a6b4a0903288680acccf238d3d56d829a6f",
      "parents": [
        "cc136df0e1689d2c8735853fef8860feb572bd24"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Sun Apr 14 16:35:14 2013 +0200"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Mon Apr 15 01:05:41 2013 +0200"
      },
      "message": "Stop using a list for patterns, as there is at most one pattern\n\nChange-Id: I003728237c1b3c4992e7e15cf5243bcd649e856d\n"
    },
    {
      "commit": "cc136df0e1689d2c8735853fef8860feb572bd24",
      "tree": "5fccefa5dba185163101a60c320d74a2bffca913",
      "parents": [
        "4a4fd69d6b057a2bf74d75dc6adef2ead697f7ef"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Sun Apr 14 13:52:00 2013 +0200"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Mon Apr 15 01:05:37 2013 +0200"
      },
      "message": "Validate all issues of a commit\n\nWe did not loop over the found issue ids, hence we could not check\nexistence of all ids. Now we can check existence of all issue ids, and\nwe get the issue ids via the issue extractor.\n\nChange-Id: I0a0c5cc9277fe91d51973cca26cf34de504f0aaa\n"
    },
    {
      "commit": "4a4fd69d6b057a2bf74d75dc6adef2ead697f7ef",
      "tree": "032b6f2b0c8e9ff141dc801e914dc2a6dcaa35de",
      "parents": [
        "fb59562254e5be77851434d52432a7f8f4c1da17"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Sun Apr 14 15:25:34 2013 +0200"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Mon Apr 15 01:05:34 2013 +0200"
      },
      "message": "Stop using map for matches, as the map has at most one entry\n\nChange-Id: I17e37a4e833e108ac5497e33da2d7ff99f1ff2b6\n"
    },
    {
      "commit": "fb59562254e5be77851434d52432a7f8f4c1da17",
      "tree": "bc256c487cd3e699772257fb2b63ca74b78e1a16",
      "parents": [
        "271a3b57eb12f31de5321820b213cfa607240bab"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Sun Apr 14 16:49:44 2013 +0200"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Mon Apr 15 01:04:47 2013 +0200"
      },
      "message": "Harmonize extracting issue ids from matched pattern\n\nItsValitadeComment only considered the first group as issue id, while\nthe code that got moved from GerritHookFilter to IssueExtractor\nconsidered each group as issue id.\nWe now uniformly only treat the first group as issue id.\n\nChange-Id: Ib3d9a75bab8842a25f13113d21bc361aae71d8f8\n"
    },
    {
      "commit": "271a3b57eb12f31de5321820b213cfa607240bab",
      "tree": "4b9d12d5a0bbfcae52c3047adbecb1ad049e51b4",
      "parents": [
        "83505f8563ba1bb27260f616c80a91748d814f71"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Sun Apr 14 13:38:08 2013 +0200"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Mon Apr 15 01:03:52 2013 +0200"
      },
      "message": "Harmonize getting the pattern by which issue ids get matched\n\nChange-Id: I3b8d54e3e93b27789d23afbe99c50fa043380dd4\n"
    },
    {
      "commit": "83505f8563ba1bb27260f616c80a91748d814f71",
      "tree": "05d6fd7ee47e10db48b3587a2087c3f2397cb820",
      "parents": [
        "7f22a82eb1b9742308657f641cb3d7f7136821b7"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Sun Apr 14 13:34:11 2013 +0200"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Mon Apr 15 01:03:31 2013 +0200"
      },
      "message": "Refactor GerritHookfilter\u0027s issue extraction into separate class\n\nThis refactoring brings the functions to the new class as unmodified\nas possible. Thereby, we allow easier tracing of changes. Refactoring\nof the code is left to follow-up commits.\n\nAfter some more refactoring, we use this class as single way to\nextract issue ids from commit messages.\n\nChange-Id: I2d1dcab2cabc4992c975f649c167d8511cc1f0ab\n"
    },
    {
      "commit": "7f22a82eb1b9742308657f641cb3d7f7136821b7",
      "tree": "d20184293fc7cd550a4207230187cc7da05a8834",
      "parents": [
        "e3e159590cea305be408f2749a3fe30ec7897970"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Fri Apr 12 12:43:23 2013 +0200"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Sun Apr 14 23:05:08 2013 +0200"
      },
      "message": "Remove unused code from GerritHookFilter\n\nChange-Id: I70beaece8673714bcc71fa5fbfc8693a01f85aac\n"
    },
    {
      "commit": "e3e159590cea305be408f2749a3fe30ec7897970",
      "tree": "0cab4e400cea902d79e6e038ba20bf97d35921dd",
      "parents": [
        "318bc39f872d242743f1ac86a260e7f6d2d3eccb"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Sun Apr 14 23:04:16 2013 +0200"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Sun Apr 14 23:05:08 2013 +0200"
      },
      "message": "Follow gerrit\u0027s move of Attribute classes to data package\n\nChange-Id: I565abbb94f6d8ee30343402e6f1e767c38bbd3f8\n"
    },
    {
      "commit": "318bc39f872d242743f1ac86a260e7f6d2d3eccb",
      "tree": "40986ee4254466ea463ebdf585136d1257e6e2b1",
      "parents": [
        "d138425e287e55081480554ccf7addf7ed76d0ac"
      ],
      "author": {
        "name": "Chad Horohoe",
        "email": "chorohoe@wikimedia.org",
        "time": "Fri Apr 12 10:42:16 2013 -0400"
      },
      "committer": {
        "name": "Chad Horohoe",
        "email": "chorohoe@wikimedia.org",
        "time": "Fri Apr 12 10:42:16 2013 -0400"
      },
      "message": "Don\u0027t warn when we match an issue\n\nSince the desired behavior is to match, we don\u0027t want to spam\nthe logs with warnings. Continue to show when debugging.\n\nChange-Id: Ib3f544fc44ec8344d14dd339cbc3aa928d69ff18\n"
    },
    {
      "commit": "d138425e287e55081480554ccf7addf7ed76d0ac",
      "tree": "5eadd6d0e5b18c75f5fd412c0072b43733f70ad1",
      "parents": [
        "4baf184b1c8f031fd2eef193ba8194045e45064e"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Thu Apr 11 11:12:59 2013 +0200"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Thu Apr 11 11:24:05 2013 +0200"
      },
      "message": "Only try to validate commentLink associated to the Its\n\nFor commit validation, we tried to match all commentLinks to issues,\nregardless of whether the commentLink refers to an issue or\nnot. Besides being unwarranted extra work, this approach caused\nNumberFormatExceptions problems for hooks-bugzilla when trying to\nmatch a non-numeric commentLink (e.g.: Change-Id) to a numeric issue\nid.\n\nChange-Id: Idc1dc1c1b6b296c28bdde07a1f3703734da83ce7\n"
    },
    {
      "commit": "4baf184b1c8f031fd2eef193ba8194045e45064e",
      "tree": "27219cb8966c2251c38f5c0ed4c233d21bb9294d",
      "parents": [
        "88a87b1c95f86522b4aa74c0b7df120b50a02e5d",
        "8199937a988c80a56e17c1b97d95fd4eaeb6726f"
      ],
      "author": {
        "name": "Chad Horohoe",
        "email": "chorohoe@wikimedia.org",
        "time": "Thu Apr 04 16:46:36 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 04 16:46:36 2013 +0000"
      },
      "message": "Merge \"Allow adding ITS comments upon adding changes in gerrit\""
    },
    {
      "commit": "88a87b1c95f86522b4aa74c0b7df120b50a02e5d",
      "tree": "77c0b5dce7e6a25aaff94dbc48e03b10733ba37e",
      "parents": [
        "aa1a448231ba4f6409494243556f3ea027643ecb",
        "f6140134242eb0733843594361c77ad245e393b0"
      ],
      "author": {
        "name": "Chad Horohoe",
        "email": "chorohoe@wikimedia.org",
        "time": "Thu Apr 04 16:42:54 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 04 16:42:54 2013 +0000"
      },
      "message": "Merge \"Use lower case condition keys\""
    },
    {
      "commit": "f6140134242eb0733843594361c77ad245e393b0",
      "tree": "4de1534545048ab191e7f420a6f1ee741f3b8380",
      "parents": [
        "3fe5a5fbce4e6eb56a54a1e5d94a1297a28caace"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Sun Jan 27 19:02:01 2013 +0100"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Thu Apr 04 09:42:13 2013 +0000"
      },
      "message": "Use lower case condition keys\n\nDocumentation of hooks-jira and hooks-bugzilla has always been using\n\u0027code-review\u0027 instead of \u0027Code-Review\u0027, which is currently used in\ngerrit master. To allow to continue using the old examples, we\ntransform condition keys to lower case.\n\nChange-Id: I95cae5dc229dd61e3342388a842a44aa782eb5ce\n"
    },
    {
      "commit": "aa1a448231ba4f6409494243556f3ea027643ecb",
      "tree": "c6b3bcd13ea6c902837211e066db4462ed2beaa3",
      "parents": [
        "6d7191ebfabf00e5261e8f1958448bfbdfbe7001",
        "afca8697fcc0d2806e80269c0abe147fc81eb320"
      ],
      "author": {
        "name": "Chad Horohoe",
        "email": "chorohoe@wikimedia.org",
        "time": "Wed Mar 27 14:00:33 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 27 14:00:34 2013 +0000"
      },
      "message": "Merge \"Use gerrit\u0027s spelling of \u0027Patch Set\u0027 for ITS comments\""
    },
    {
      "commit": "6d7191ebfabf00e5261e8f1958448bfbdfbe7001",
      "tree": "9bd154e2d54158cf29bd70ab5d47680121a41498",
      "parents": [
        "cd1ff9233962855726a03dbfa784253eb4c2826c",
        "efb6729b7009e7f43775b1b29b3f8493d7244bd4"
      ],
      "author": {
        "name": "Chad Horohoe",
        "email": "chorohoe@wikimedia.org",
        "time": "Wed Mar 27 14:00:03 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 27 14:00:04 2013 +0000"
      },
      "message": "Merge \"Harmonize link text in ITS comments\""
    },
    {
      "commit": "cd1ff9233962855726a03dbfa784253eb4c2826c",
      "tree": "a39940eaa398a7df78b85963da8d468c81eca47d",
      "parents": [
        "25c377f97a4b3b40c41b9a8d33f5f064d9dd528c",
        "3283024b54aa882fb82aa1b447e9e0893100db63"
      ],
      "author": {
        "name": "Chad Horohoe",
        "email": "chorohoe@wikimedia.org",
        "time": "Tue Mar 26 16:11:56 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 26 16:11:57 2013 +0000"
      },
      "message": "Merge \"Bump used gerrit API to version 2.7-SNAPSHOT\""
    },
    {
      "commit": "3283024b54aa882fb82aa1b447e9e0893100db63",
      "tree": "b1357ebede3b8c2de8f7c3707429c6f6a33e7d9b",
      "parents": [
        "4bc56989ae48fee076f3d592ab640c4f63641272"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Sat Mar 23 15:48:12 2013 +0100"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Sat Mar 23 15:48:12 2013 +0100"
      },
      "message": "Bump used gerrit API to version 2.7-SNAPSHOT\n\nChange-Id: I11d068e42df61ba8a6e1e6ea12d0fd86f8b8c747\n"
    },
    {
      "commit": "8199937a988c80a56e17c1b97d95fd4eaeb6726f",
      "tree": "0240f81726bfe97fcf5e81bba7978529b710878e",
      "parents": [
        "afca8697fcc0d2806e80269c0abe147fc81eb320"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Sat Mar 23 12:52:43 2013 +0100"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Sat Mar 23 13:37:15 2013 +0100"
      },
      "message": "Allow adding ITS comments upon adding changes in gerrit\n\nChange-Id: I56f8f07a48fb0a431b090bfd2c189bb8d03670aa\n"
    },
    {
      "commit": "afca8697fcc0d2806e80269c0abe147fc81eb320",
      "tree": "267236490f0c855360762c90af325ca6b9b16008",
      "parents": [
        "efb6729b7009e7f43775b1b29b3f8493d7244bd4"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Sat Mar 23 13:06:42 2013 +0100"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Sat Mar 23 13:36:12 2013 +0100"
      },
      "message": "Use gerrit\u0027s spelling of \u0027Patch Set\u0027 for ITS comments\n\nITS comments for new patch sets use \u0027Patch-Set\u0027 (with dash), while\nupstream gerrit uses \u0027Patch Set\u0027 (without dash). We also drop the dash\nin ITS comments to match gerrit\u0027s spelling.\n\nChange-Id: I57e53dfccacbcc1885a96663a91dd9dcecac08ee\n"
    },
    {
      "commit": "efb6729b7009e7f43775b1b29b3f8493d7244bd4",
      "tree": "93f70547ba174a41ebe7ccef3be67bd49f69d5cf",
      "parents": [
        "4bc56989ae48fee076f3d592ab640c4f63641272"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Sat Mar 23 12:56:55 2013 +0100"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Sat Mar 23 13:35:47 2013 +0100"
      },
      "message": "Harmonize link text in ITS comments\n\nWhile the link text in ITS comments for gerrit comments started in\n  Gerrit Change [Change-Id]\n(without colon), the link text in ITS comments for added patch sets\nstarted in\n  Gerrit Patch-Set: [Change-Id]/[Patch Set-Id]\n(with colon). We now harmonize those messages and drop the colon.\n\nChange-Id: I535c1186a469e746a65bd7024c0f5c65cedd49b7\n"
    },
    {
      "commit": "25c377f97a4b3b40c41b9a8d33f5f064d9dd528c",
      "tree": "4addb3987a7e58448fdcd12af99e3d4b5c995430",
      "parents": [
        "4bc56989ae48fee076f3d592ab640c4f63641272"
      ],
      "author": {
        "name": "Chad Horohoe",
        "email": "chorohoe@wikimedia.org",
        "time": "Thu Mar 21 16:27:47 2013 -0400"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Fri Mar 22 13:48:26 2013 +0000"
      },
      "message": "Only log missed ChangeListener events in debug mode\n\nThere\u0027s no point in spamming an install\u0027s error_log just\nbecause hooks-its hasn\u0027t handled a specific event type.\n\nChange-Id: I3e67a6e83f0944ae1d53395cd2405f38be775050\n"
    },
    {
      "commit": "4bc56989ae48fee076f3d592ab640c4f63641272",
      "tree": "098ca828b208dbacbbffc33447525b93acd63ee6",
      "parents": [
        "3fe5a5fbce4e6eb56a54a1e5d94a1297a28caace"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Mon Mar 11 01:26:27 2013 +0100"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Mon Mar 11 16:30:44 2013 +0100"
      },
      "message": "Allow to turn off adding ITS comments based on the type of comment\n\nAdded the following configuration options:\n* commentOnChangeAbandoned\n* commentOnChangeMerged\n* commentOnChangeRestored\n* commentOnCommentAdded\n* commentOnPatchSetCreated\n* commentOnRefUpdatedGitWeb\n\nChange-Id: Id4b88ce7047d7390950d8a9918a2d9cc12c4d8a1\n"
    },
    {
      "commit": "3fe5a5fbce4e6eb56a54a1e5d94a1297a28caace",
      "tree": "cadd1897d2fd747e130d2afce0091af298e7a2b9",
      "parents": [
        "034721f82d7a4dddde5dfe691ddd18ae646788c1",
        "456be6d02ddf5e8b2d11159169610f8c33ddbaac"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Mar 02 09:51:32 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Mar 02 09:51:32 2013 +0000"
      },
      "message": "Merge \"Provide hints when logging GitWeb link generation failure\""
    },
    {
      "commit": "456be6d02ddf5e8b2d11159169610f8c33ddbaac",
      "tree": "ff96918ea71161b0b6f6179cb97b207b27ae48a0",
      "parents": [
        "ce5387b26c25c53891dc6fefe90854002a4f19bf"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Sun Jan 27 17:47:40 2013 +0100"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Wed Feb 13 08:45:01 2013 +0100"
      },
      "message": "Provide hints when logging GitWeb link generation failure\n\nIf the configuration does not allow to generate GitWeb links (no GitWeb\nconfigured, canonicalWebUrl missing), a NullPointer exception was\nthrown. We now attempt to properly log the problem and hint the user to\nthe required setting.\n\nChange-Id: I2a00fcbf9a38770b1eae34cbe2c266ae66d445af\n"
    },
    {
      "commit": "034721f82d7a4dddde5dfe691ddd18ae646788c1",
      "tree": "02bc57773d2ed1fb2c2f254dafc79b3f9dbdd617",
      "parents": [
        "ce5387b26c25c53891dc6fefe90854002a4f19bf"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Sun Jan 27 17:09:28 2013 +0100"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Thu Feb 07 14:41:47 2013 +0100"
      },
      "message": "Format user names in created bugzilla comments\n\nAs AccountAttribute does not provide a String conversion method, the\ngenerated bugzilla comments ended in:\n  ... [by com.google.gerrit.server.events.AccountAttribute@5b9b8858]\nNow they end in:\n  ... [by John Doe]\n\nChange-Id: I702b83ba14ec0fd14471420e461de4d26c80baf7\n"
    },
    {
      "commit": "ce5387b26c25c53891dc6fefe90854002a4f19bf",
      "tree": "6b04539f4c94af0952fe36283bf7283c47337219",
      "parents": [
        "ce134af7a0a5f98d4929da9dd97b1c33b53b73e1"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Sun Jan 27 21:28:39 2013 +0100"
      },
      "committer": {
        "name": "Chad Horohoe",
        "email": "chorohoe@wikimedia.org",
        "time": "Wed Feb 06 16:58:20 2013 -0500"
      },
      "message": "Fix error log message for change event dispatcher\n\nChange-Id: Ieffd61a847d0284b85c43c99f3e66eafc3daa8de\n"
    },
    {
      "commit": "ce134af7a0a5f98d4929da9dd97b1c33b53b73e1",
      "tree": "41c1c1f42331fca2bc27e372239993566135971c",
      "parents": [
        "2ef6dbaa1f5352cc70c499e9eda33bc957592ff2"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Sun Jan 27 12:15:05 2013 +0100"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Mon Jan 28 20:38:48 2013 +0100"
      },
      "message": "Fix comments without approvals\n\nCommentAddedEvent\u0027s approvals field is null (see gerrit\u0027s\nChangeHookRunner), if there are no approvals, so checking only for\napprovals.length or iterating over approvals raised a\nNullPointerException if the comment did not provide approvals.\n\nChange-Id: I99153554ced10368556bc9354ab2de3188df764d\n"
    },
    {
      "commit": "2ef6dbaa1f5352cc70c499e9eda33bc957592ff2",
      "tree": "d3d66228d17a58ed525fdde6cda90ee558be116c",
      "parents": [
        "3520ed5a121178162f5bd57311dfb0975a262d45"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu Jan 24 08:32:16 2013 -0500"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Jan 28 17:25:36 2013 +0000"
      },
      "message": "Issue tracking hooks using Gerrit 2.6 commit validation\n\nHas a common reusable infrastructure to build the issue-tracking\nassociation logic to other Issue-Trackers (i.e. BugZilla, JIRA).\nThe generic issue-tracker association plugin is hooks-its and\nprovides the logic for:\n\u003e Insertion of comment links using regex patterns\n\u003e Enforcement of issue-ids in git commits using\n  Gerrit 2.6 commit validation listeners\n\u003e Automation of issue-tracker status transition\n  based on Gerrit code-review status\n\nhooks-its does not make assumption on the underlying issue-tracker\nsystem but provides only an abstract facade interface ItsFacade to\naccess and perform actions on the issue-tracker.\n\nChange-Id: I82ceb9a5eae825e6216121365f15ed4d4d59acc4"
    },
    {
      "commit": "3520ed5a121178162f5bd57311dfb0975a262d45",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [],
      "author": {
        "name": "Martin Fick",
        "email": "mfick@codeaurora.org",
        "time": "Thu Jan 24 02:04:39 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 24 02:04:39 2013 +0000"
      },
      "message": "Initial empty repository\n"
    }
  ]
}
