)]}'
{
  "log": [
    {
      "commit": "13fca408183f14a80e4463d80f47860107dac1ff",
      "tree": "6e3d436f604ee467c03816d75a42b4e4e1bea4d3",
      "parents": [
        "8b10a9d42a1d69190b65f15fbf0515d7a71dff84"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Oct 03 09:42:31 2025 -0700"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Oct 03 09:43:34 2025 -0700"
      },
      "message": "Add deprecation notice\n\nChange-Id: I0d91909225cbd190e7640dbede66a816291b4554\n"
    },
    {
      "commit": "8b10a9d42a1d69190b65f15fbf0515d7a71dff84",
      "tree": "ba5f66a75eb1a98541be1495ffed71502faae42e",
      "parents": [
        "ce0b3aa233fe056a273c5d5b359e94431d3886a1"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Jun 21 23:16:50 2024 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Jun 21 23:19:10 2024 +0100"
      },
      "message": "Bump Gerrit to v3.10.0 and Java 17\n\nChange-Id: I3105a9a0e08f64c7cf74ef112df2fdc4996cbc94\n"
    },
    {
      "commit": "ce0b3aa233fe056a273c5d5b359e94431d3886a1",
      "tree": "11d1e6aa713ca2bf9da654cd2b7a1bb590a9415a",
      "parents": [
        "406c05c7ce1ef708b451439c1fa6d04c04b1a93e",
        "3a25a9da1c1050d830db29f4bdc5478fc65a63e6"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Jun 21 23:15:25 2024 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Jun 21 23:15:25 2024 +0100"
      },
      "message": "Merge branch \u0027stable-3.10\u0027\n\n* stable-3.10:\n  Bump Gerrit to v3.10.0-rc2\n\nChange-Id: I6e1790e0d1f06d100049a9612394b51f8bdf4a62\n"
    },
    {
      "commit": "406c05c7ce1ef708b451439c1fa6d04c04b1a93e",
      "tree": "a1e8ee2dd1248561a97966ee1ed370bd87f7ffac",
      "parents": [
        "1dbd132a4b6af3434b7af020edc4af98ff217467"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Jun 17 23:42:23 2024 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Jun 17 23:42:23 2024 +0100"
      },
      "message": "Add missing @UseLocalDisk annotation in BotLikeExtractorImplSpec\n\nThe BotLikeExtractorImplSpec test was missing the @UseLocalDisk\ntriggering the creation of a Gerrit site with an in-memory repository\nmanager.\n\nThe all analytics plugin assumes the repositories are stored on disk\ntherefore the text execution, if run as first test, was triggering\nthe creation of a static daemon that broke all assertions of having\na FileRepository.\n\nExample of a failure noticed on the CI:\n\njava.lang.IllegalStateException: Expected \u0027FileRepository\u0027, got com.google.gerrit.testing.InMemoryRepositoryManager$Repo\nat com.googlesource.gerrit.plugins.analytics.test.GerritTestDaemon$.getRepository(GerritTestDaemon.scala:166)\nat com.googlesource.gerrit.plugins.analytics.test.GerritTestDaemon.beforeEach(GerritTestDaemon.scala:77)\nat com.googlesource.gerrit.plugins.analytics.test.GerritTestDaemon.beforeEach$(GerritTestDaemon.scala:74)\nat com.googlesource.gerrit.plugins.analytics.test.CommitStatisticsSpec.beforeEach(CommitStatisticsSpec.scala:26)\n\nAdd the missing @UseLocalDisk annotation and make the analytics\ntests more resilient to tests execution order.\n\nChange-Id: Ia8801071b7fabfa17e8036f7b6eb3175d7cf555e\n"
    },
    {
      "commit": "3a25a9da1c1050d830db29f4bdc5478fc65a63e6",
      "tree": "4c400d3131d6851f9ba015503706edaef529bb6d",
      "parents": [
        "1dbd132a4b6af3434b7af020edc4af98ff217467"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Apr 06 22:13:03 2024 -0700"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Apr 15 22:17:25 2024 +0100"
      },
      "message": "Bump Gerrit to v3.10.0-rc2\n\nUpdate Gerrit API and test framework to v3.10.0-rc2\nand amend all the associated dependencies accordingly.\n\nAlso adjust the SshModule due to the new signature\nof the base class constructor and fix test daemon issues\nassociated with the dependency of the config and daemon\nJUnit test rules.\n\nChange-Id: I8438dd2d95472999b2e0d5a4cf4820a37066ca33\n"
    },
    {
      "commit": "1dbd132a4b6af3434b7af020edc4af98ff217467",
      "tree": "5a356ac6f832e3855175c2e0e0a62d75316850af",
      "parents": [
        "a28ba7a1b090ea50e5383a9310bf8990229ff63c",
        "ff7ce9b394189f377ce8f868cbf111f883f53e67"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Oct 28 16:02:57 2023 +0200"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Oct 28 16:02:57 2023 +0200"
      },
      "message": "Merge branch \u0027stable-3.9\u0027\n\n* stable-3.9:\n  Bump Gerrit to v3.9.0-rc2\n\nChange-Id: If66ac96624858d312326769af2ca00357adcc3b6\n"
    },
    {
      "commit": "ff7ce9b394189f377ce8f868cbf111f883f53e67",
      "tree": "5a356ac6f832e3855175c2e0e0a62d75316850af",
      "parents": [
        "a28ba7a1b090ea50e5383a9310bf8990229ff63c"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Oct 28 16:02:28 2023 +0200"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Oct 28 16:02:28 2023 +0200"
      },
      "message": "Bump Gerrit to v3.9.0-rc2\n\nChange-Id: I3fbb5fec28223410e5465e99b32f70ec74ca3a7f\n"
    },
    {
      "commit": "a28ba7a1b090ea50e5383a9310bf8990229ff63c",
      "tree": "87098ae4bffff1262e2e4a8c65eb3987aaceeb99",
      "parents": [
        "257622ca1b59106d0e18735efa9bd84425762f9e",
        "25e19c7bbf922181d29c8b8fb6645ab33e851f25"
      ],
      "author": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Sun Jun 04 14:39:44 2023 +0100"
      },
      "committer": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Sun Jun 04 14:40:30 2023 +0100"
      },
      "message": "Merge branch \u0027stable-3.8\u0027 into master\n\n* stable-3.8:\n  Use orNull instead of explicit null default\n  Fix IterableOnce foreach deprecation warning\n  Fix array splat deprecation warning\n  Fix .toStream deprecation warning\n  Fix deprecated `l` for Longs\n  Remove use of deprecated JavaConverters class\n  Fix TraversableOnce deprecation warnings\n  Fix procedure syntax deprecation warnings\n  Fix reflective structural type access warning\n  Fix unable to check type warnings\n  Fix override without parameter list warning\n  Update Scala to 2.13.10\n  Bump scalatest to 3.2.16\n  Fix feature warnings\n  Bump sbt to 1.8.3\n  Add gitignore entries\n  Use pattern matching over asInstanceOf in test\n  Add `UseLocalDisk` annotation to fix test\n  Bump Gerrit API to 3.8.0-rc4\n  Remove unused test method\n  Set Gerrit to v3.6.0-rc0\n\nChange-Id: I8c0884831ae33838f7f359450c5810efb99a09fc\n"
    },
    {
      "commit": "25e19c7bbf922181d29c8b8fb6645ab33e851f25",
      "tree": "9330d78cd09feef5c3c984074e66233c8e2f21f9",
      "parents": [
        "6a46ef8b3387bc0e6745396bf011bbaf4485361f",
        "9484fba192207e7a088856f7ea56eb43d279a831"
      ],
      "author": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Sun Jun 04 14:37:51 2023 +0100"
      },
      "committer": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Sun Jun 04 14:37:51 2023 +0100"
      },
      "message": "Merge branch \u0027stable-3.7\u0027 into stable-3.8\n\n* stable-3.7:\n  Use orNull instead of explicit null default\n  Fix IterableOnce foreach deprecation warning\n  Fix array splat deprecation warning\n  Fix .toStream deprecation warning\n  Fix deprecated `l` for Longs\n  Remove use of deprecated JavaConverters class\n  Fix TraversableOnce deprecation warnings\n  Fix procedure syntax deprecation warnings\n  Fix reflective structural type access warning\n  Fix unable to check type warnings\n  Fix override without parameter list warning\n  Update Scala to 2.13.10\n  Bump scalatest to 3.2.16\n  Fix feature warnings\n  Bump sbt to 1.8.3\n  Add gitignore entries\n  Set Gerrit API to v3.7.0-rc3\n  Set Gerrit to v3.6.0-rc0\n\nChange-Id: I3d5b19db244e9a15e4372b257c6ea2764271d150\n"
    },
    {
      "commit": "9484fba192207e7a088856f7ea56eb43d279a831",
      "tree": "a43c27e3481927f24a9211094a8bbd06f85a6f0e",
      "parents": [
        "1f30d846680670eefd089d3a60c86ef8b65888c4",
        "fc3fae31741d9cd202dea323358d4606b339659f"
      ],
      "author": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Fri Jun 02 09:24:43 2023 +0100"
      },
      "committer": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto@gmail.com",
        "time": "Sun Jun 04 13:34:20 2023 +0000"
      },
      "message": "Merge branch \u0027stable-3.6\u0027 into stable-3.7\n\n* stable-3.6:\n  Use orNull instead of explicit null default\n  Fix IterableOnce foreach deprecation warning\n  Fix array splat deprecation warning\n  Fix .toStream deprecation warning\n  Fix deprecated `l` for Longs\n  Remove use of deprecated JavaConverters class\n  Fix TraversableOnce deprecation warnings\n  Fix procedure syntax deprecation warnings\n  Fix reflective structural type access warning\n  Fix unable to check type warnings\n  Fix override without parameter list warning\n  Update Scala to 2.13.10\n  Bump scalatest to 3.2.16\n  Fix feature warnings\n  Bump sbt to 1.8.3\n  Add gitignore entries\n  Set Gerrit to v3.6.0-rc0\n\nChange-Id: Ic4b86f5ad214c1cd53bd3bacc949173a769abe3e\n"
    },
    {
      "commit": "fc3fae31741d9cd202dea323358d4606b339659f",
      "tree": "daf3c6f1f55c65117c71dbd2fc2131d9d7ac07cb",
      "parents": [
        "80de7f2dd34a8f59b5bad1be9bdffe7991226bb2"
      ],
      "author": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Fri May 26 13:17:52 2023 +0100"
      },
      "committer": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Fri May 26 13:17:52 2023 +0100"
      },
      "message": "Use orNull instead of explicit null default\n\nChange-Id: I57151b924f9740aaa4d17bd1b0caf2a9ef96278d\n"
    },
    {
      "commit": "80de7f2dd34a8f59b5bad1be9bdffe7991226bb2",
      "tree": "41ef2f9b1b3dbfbef6e86fdbabbae400005e924b",
      "parents": [
        "6218dc1a10b0359a094c949f04aed58bba997398"
      ],
      "author": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Fri May 26 12:09:54 2023 +0100"
      },
      "committer": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Fri May 26 12:09:54 2023 +0100"
      },
      "message": "Fix IterableOnce foreach deprecation warning\n\nFixes following warning:\nmethod foreach in class IterableOnceExtensionMethods is deprecated (since 2.13.0): Use .iterator.foreach(...) instead\n\nChange-Id: I9fad75d232c1620d380cc40c303308abaf5319bf\n"
    },
    {
      "commit": "6218dc1a10b0359a094c949f04aed58bba997398",
      "tree": "b99a6ae0f7ef3e468b8de06d8bf2e0af95f8b71f",
      "parents": [
        "50982acdf5ff83e48edb924fb4b9d7022d3c0738"
      ],
      "author": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Fri May 26 12:08:33 2023 +0100"
      },
      "committer": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Fri May 26 12:08:33 2023 +0100"
      },
      "message": "Fix array splat deprecation warning\n\nFixes following warning:\nPassing an explicit array value to a Scala varargs method is deprecated (since 2.13.0) and will result in a defensive copy; Use the more efficient non-copying ArraySeq.unsafeWrapArray or an explicit toIndexedSeq call\n\nChange-Id: I036e494280f3f3ce8720ef3987d697d8e1f77df7\n"
    },
    {
      "commit": "50982acdf5ff83e48edb924fb4b9d7022d3c0738",
      "tree": "8a6425834a2963c9123a4daade041e09277ea9a8",
      "parents": [
        "b1db900059d5743247440f7ba590194f02708273"
      ],
      "author": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Fri May 26 12:07:03 2023 +0100"
      },
      "committer": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Fri May 26 12:07:03 2023 +0100"
      },
      "message": "Fix .toStream deprecation warning\n\nFixes following warning:\nmethod toStream in trait IterableOnceOps is deprecated (since 2.13.0): Use .to(LazyList) instead of .toStream\n\nChange-Id: I5c1aea873d7a6f08d34a9e4a18e0133150fb8de1\n"
    },
    {
      "commit": "b1db900059d5743247440f7ba590194f02708273",
      "tree": "52a83b90ad656c985bbfa7f49722c8fe73e47dca",
      "parents": [
        "6780ccfa272679281006b09251ab31a5350fbe94"
      ],
      "author": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Fri May 26 12:02:28 2023 +0100"
      },
      "committer": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Fri May 26 12:06:06 2023 +0100"
      },
      "message": "Fix deprecated `l` for Longs\n\nFixes following warning:\nLowercase el for long is not recommended because it is easy to confuse with numeral 1; use uppercase L instead\n\nChange-Id: Ie2f7ffbdfd9ba6652ab2893e0303eaccb2d590f3\n"
    },
    {
      "commit": "6780ccfa272679281006b09251ab31a5350fbe94",
      "tree": "6f352f57a287f479eb07d926cf50f4f833bcfb59",
      "parents": [
        "d1ba854a87c09fb930facbfacd2e5d6bd7638821"
      ],
      "author": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Fri May 26 12:00:34 2023 +0100"
      },
      "committer": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Fri May 26 12:05:49 2023 +0100"
      },
      "message": "Remove use of deprecated JavaConverters class\n\nFixes following warning:\nobject JavaConverters in package collection is deprecated (since 2.13.0): Use `scala.jdk.CollectionConverters` instead\n\nChange-Id: I85b282ddd2414976d5be0f9b62648a83feeed8df\n"
    },
    {
      "commit": "d1ba854a87c09fb930facbfacd2e5d6bd7638821",
      "tree": "561b941852f184f78b210af49220fd83eb2c7d3c",
      "parents": [
        "24a0c67c7ac8dcb3a11950f4f79af213c490ded1"
      ],
      "author": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Fri May 26 11:58:59 2023 +0100"
      },
      "committer": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Fri May 26 12:05:28 2023 +0100"
      },
      "message": "Fix TraversableOnce deprecation warnings\n\nFixes following warning:\ntype TraversableOnce in package scala is deprecated (since 2.13.0): Use IterableOnce instead of TraversableOnce\n\nChange-Id: I641588ee14ea4c52000959eebf6714ae3338b1fd\n"
    },
    {
      "commit": "24a0c67c7ac8dcb3a11950f4f79af213c490ded1",
      "tree": "1d300148deb16c042ed9140ca9ec9cc709ddc459",
      "parents": [
        "1c62a45f9f4aba4bca3a38e258e9b8f4e8ebb3b4"
      ],
      "author": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Fri May 26 11:58:03 2023 +0100"
      },
      "committer": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Fri May 26 12:04:03 2023 +0100"
      },
      "message": "Fix procedure syntax deprecation warnings\n\nFixes following warning:\nprocedure syntax is deprecated: instead, add `: Unit \u003d` to explicitly declare `beforeEach`\u0027s return type\n\nChange-Id: Icad3dce946a563bb0d4913bc40bf29d0b0871bcb\n"
    },
    {
      "commit": "1c62a45f9f4aba4bca3a38e258e9b8f4e8ebb3b4",
      "tree": "781a60b05846206bdaa4bec5a863030c80de32c8",
      "parents": [
        "7eba89da103df5bf95232c2b8699ca7798563c89"
      ],
      "author": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Fri May 26 11:48:28 2023 +0100"
      },
      "committer": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Fri May 26 11:48:28 2023 +0100"
      },
      "message": "Fix reflective structural type access warning\n\n`ManagedResources` re-implemented `Using` [1] that has been in core\nsince 2.13. We can now make use of it as we previously bumped Scala to\n2.13.\n\nFixes the following warning:\n[warn] /home/darius/dev/gerritforge/analytics/src/main/scala/com/googlesource/gerrit/plugins/analytics/common/ManagedResources.scala:22:16: reflective access of structural type member method close should be enabled\n[warn] by making the implicit value scala.language.reflectiveCalls visible.\n[warn] ----\n[warn] This can be achieved by adding the import clause \u0027import scala.language.reflectiveCalls\u0027\n[warn] or by setting the compiler option -language:reflectiveCalls.\n[warn] See the Scaladoc for value scala.language.reflectiveCalls for a discussion\n[warn] why the feature should be explicitly enabled.\n[warn]       resource.close()\n[warn]                ^\n\n[1] https://www.scala-lang.org/api/2.13.10/scala/util/Using$.html\n\nChange-Id: If0ec4d5a47d254a8b51ca0ae324cc352279cf65b\n"
    },
    {
      "commit": "7eba89da103df5bf95232c2b8699ca7798563c89",
      "tree": "9b29c8492c707ebd63eea6e492ae36c188d49fdf",
      "parents": [
        "ced89d96cd5ea27f2c2f292ecbb805550fe9967a"
      ],
      "author": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Fri May 26 11:19:26 2023 +0100"
      },
      "committer": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Fri May 26 11:19:26 2023 +0100"
      },
      "message": "Fix unable to check type warnings\n\n[warn] /home/darius/dev/gerritforge/analytics/src/main/scala/com/googlesource/gerrit/plugins/analytics/common/CommitsStatisticsLoader.scala:107:28: The outer reference in this type test cannot be checked at run time.\n[warn]   final private case class Replacer(pattern: Regex, replaced: String)\n[warn]                            ^\n[warn] /home/darius/dev/gerritforge/analytics/src/main/scala/com/googlesource/gerrit/plugins/analytics/common/CommitsStatisticsLoader.scala:109:28: The outer reference in this type test cannot be checked at run time.\n[warn]   final private case class Lines(deleted: Int, added: Int) {\n[warn]                            ^\n\nChange-Id: I715010f48d74d8caaaf667699efc029cabef66b0\n"
    },
    {
      "commit": "ced89d96cd5ea27f2c2f292ecbb805550fe9967a",
      "tree": "de47dd00766862de059d83474da5ee7d7d688877",
      "parents": [
        "4274cad31abb12cba0c30a3ff2f665a63458301e"
      ],
      "author": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Fri May 26 11:15:28 2023 +0100"
      },
      "committer": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Fri May 26 11:15:28 2023 +0100"
      },
      "message": "Fix override without parameter list warning\n\n[warn] /home/darius/dev/gerritforge/analytics/src/test/scala/com/googlesource/gerrit/plugins/analytics/test/GerritTestDaemon.scala:74:16: method without a parameter list overrides a method with a single empty one\n[warn]   override def beforeEach {\n\nChange-Id: I2c31abc0aee485e5067ef2d59b09a816f897f64c\n"
    },
    {
      "commit": "4274cad31abb12cba0c30a3ff2f665a63458301e",
      "tree": "350ff2215ab87bef252e8b46d952d36e156a91e0",
      "parents": [
        "1e917092a1d03fc6105f49f57256c0906134ecc8"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Tue Jan 24 10:02:55 2023 +0000"
      },
      "committer": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Fri May 26 11:07:34 2023 +0100"
      },
      "message": "Update Scala to 2.13.10\n\nChange-Id: I6e9fd3d045cb2f48d489a4e9d045a3cdcb16fe67\n"
    },
    {
      "commit": "1e917092a1d03fc6105f49f57256c0906134ecc8",
      "tree": "763ddd75075eff1b70b44e4060e245e25cabe1f7",
      "parents": [
        "d6ce1d0ca00a6adf0cbc5c00eec88aa000f99181"
      ],
      "author": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Fri May 26 10:59:19 2023 +0100"
      },
      "committer": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Fri May 26 11:06:41 2023 +0100"
      },
      "message": "Bump scalatest to 3.2.16\n\nChange-Id: Ibc9d97384b2f3e5793e1a2c282bae8c779f03ce2\n"
    },
    {
      "commit": "d6ce1d0ca00a6adf0cbc5c00eec88aa000f99181",
      "tree": "32257ad09da0afd06ed3bef82f19edfcf8e0ba4f",
      "parents": [
        "0f6c86e10a7ea0d3609772e21edbd38e7b4630ae"
      ],
      "author": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Fri May 26 10:43:14 2023 +0100"
      },
      "committer": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Fri May 26 10:47:33 2023 +0100"
      },
      "message": "Fix feature warnings\n\nWe enable the feature flag so sbt displays the warnings.\n\nThe following warnings are fixed:\n\n[warn] /home/darius/dev/gerritforge/analytics/src/main/scala/com/googlesource/gerrit/plugins/analytics/common/AggregatedHistogramFilterByDates.scala:32:36: postfix operator \u003e\u003d should be enabled\n[warn] by making the implicit value scala.language.postfixOps visible.\n[warn] This can be achieved by adding the import clause \u0027import scala.language.postfixOps\u0027\n[warn] or by setting the compiler option -language:postfixOps.\n[warn] See the Scaladoc for value scala.language.postfixOps for a discussion\n[warn] why the feature should be explicitly enabled.\n[warn]     if (from.fold(true)(commitDate \u003e\u003d) \u0026\u0026 to.fold(true)(commitDate \u003c)) {\n[warn]                                    ^\n[warn] /home/darius/dev/gerritforge/analytics/src/main/scala/com/googlesource/gerrit/plugins/analytics/common/AggregatedHistogramFilterByDates.scala:32:68: postfix operator \u003c should be enabled\n[warn] by making the implicit value scala.language.postfixOps visible.\n[warn]     if (from.fold(true)(commitDate \u003e\u003d) \u0026\u0026 to.fold(true)(commitDate \u003c)) {\n[warn]                                                                    ^\n[warn] /home/darius/dev/gerritforge/analytics/src/main/scala/com/googlesource/gerrit/plugins/analytics/common/DateConversions.scala:21:16: implicit conversion method isoStringToLongDate should be enabled\n[warn] by making the implicit value scala.language.implicitConversions visible.\n[warn] This can be achieved by adding the import clause \u0027import scala.language.implicitConversions\u0027\n[warn] or by setting the compiler option -language:implicitConversions.\n[warn] See the Scaladoc for value scala.language.implicitConversions for a discussion\n[warn] why the feature should be explicitly enabled.\n[warn]   implicit def isoStringToLongDate(s: String): Long \u003d JavaSqlTimestampHelper.parseTimestamp(s).getTime\n[warn]                ^\n\nThis warning will be fixed in a subsequent commit once we\u0027ve bumped\nScala to a version containing `Using`.\n[warn] /home/darius/dev/gerritforge/analytics/src/main/scala/com/googlesource/gerrit/plugins/analytics/common/ManagedResources.scala:22:16: reflective access of structural type member method close should be enabled\n[warn] by making the implicit value scala.language.reflectiveCalls visible.\n[warn] This can be achieved by adding the import clause \u0027import scala.language.reflectiveCalls\u0027\n[warn] or by setting the compiler option -language:reflectiveCalls.\n[warn] See the Scaladoc for value scala.language.reflectiveCalls for a discussion\n[warn] why the feature should be explicitly enabled.\n[warn]       resource.close()\n[warn]                ^\n[warn] four warnings found\n\nChange-Id: I0f7ee02cba2cae2878fe4d5299044e15e5aead56\n"
    },
    {
      "commit": "0f6c86e10a7ea0d3609772e21edbd38e7b4630ae",
      "tree": "91b77982a971f51d357c575f901eaf09d506ee91",
      "parents": [
        "550770e047ef0f61e71a3d7bf9c84a9255f37bb6"
      ],
      "author": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Fri May 26 10:30:43 2023 +0100"
      },
      "committer": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Fri May 26 10:30:43 2023 +0100"
      },
      "message": "Bump sbt to 1.8.3\n\nChange-Id: Ic29d8cf1215e954cb2834808a5730113b4bef626\n"
    },
    {
      "commit": "550770e047ef0f61e71a3d7bf9c84a9255f37bb6",
      "tree": "4c2c9bf02a75ecf30e6ceb2e0b01ff889286d7c8",
      "parents": [
        "affb4d79df978053a404b97be30a23a88714525a"
      ],
      "author": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Fri May 26 09:55:56 2023 +0100"
      },
      "committer": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Fri May 26 09:56:05 2023 +0100"
      },
      "message": "Add gitignore entries\n\nChange-Id: Ia8e87768204f6d5bfbde2f447c15a599f0cbc101\n"
    },
    {
      "commit": "6a46ef8b3387bc0e6745396bf011bbaf4485361f",
      "tree": "a9880c46fadf893b08985675cc12145f30ae98f1",
      "parents": [
        "87a33ef83a95d30b3d3548b44655971b970a63f6"
      ],
      "author": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Fri May 19 15:06:59 2023 +0100"
      },
      "committer": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Fri May 19 15:16:36 2023 +0100"
      },
      "message": "Use pattern matching over asInstanceOf in test\n\nA safer alternative (although we still throw in the default case).\n\nChange-Id: I961f02ec82e7b6dc84d24d235be0d2d9111657c6\n"
    },
    {
      "commit": "87a33ef83a95d30b3d3548b44655971b970a63f6",
      "tree": "2b79112ac9bf39d94c66d3594c12a9d3e95de7f2",
      "parents": [
        "0d47141551d15dcf6f6d9aab070a4dfe7c85bd3a"
      ],
      "author": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Fri May 12 10:48:02 2023 +0100"
      },
      "committer": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Fri May 19 15:16:32 2023 +0100"
      },
      "message": "Add `UseLocalDisk` annotation to fix test\n\nSomething changed in the gerrit-plugin-api package between versions 3.7\nand 3.8, so `openRepository` was returning an `InMemoryRepository`\ninstead of a `FileRepository`.\n\nAdding this annotation makes the method return a `FileRepository` and\nfixes this test.\n\nOddly this happened in CI and we couldn\u0027t recreate it locally.\n\nChange-Id: Idf1ef771b07df5febead21cd69bc00d8942b1536\n"
    },
    {
      "commit": "0d47141551d15dcf6f6d9aab070a4dfe7c85bd3a",
      "tree": "8a8882881779c974456d624d4fe55cb050632597",
      "parents": [
        "b0e41816b04c4f1ddf1e74e31c8fa95506d409ac"
      ],
      "author": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Wed May 10 14:59:09 2023 +0100"
      },
      "committer": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Thu May 11 11:58:35 2023 +0100"
      },
      "message": "Bump Gerrit API to 3.8.0-rc4\n\nThe `html` call was dropped from `CommentLinkInfo` due to security\nconcerns [1].\n\nPreviously the code tried to extract `link` from `CommentLinkInfo` and\ndefaulted to `html` if it wasn\u0027t found. The `html` call has been\ndropped, so we\u0027re now excluding elements where `link` returns null.\n\n[1] https://gerrit-review.googlesource.com/c/gerrit/+/351515\n\nChange-Id: I90e1a2ce26cffdc948f9769c49bb15a4efdbaf4e\n"
    },
    {
      "commit": "b0e41816b04c4f1ddf1e74e31c8fa95506d409ac",
      "tree": "c037417bed30e76643403f87796e2c8bb1094dba",
      "parents": [
        "4282d636fd2586529b58e1a0ae6a995420fbc983"
      ],
      "author": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Wed May 10 15:13:20 2023 +0100"
      },
      "committer": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Thu May 11 10:14:24 2023 +0100"
      },
      "message": "Remove unused test method\n\nChange-Id: I654a713ec621d1ca3896d997257a64de526686d8\n"
    },
    {
      "commit": "257622ca1b59106d0e18735efa9bd84425762f9e",
      "tree": "6fc241cefacb042ffd30443238efa751ed8d811d",
      "parents": [
        "1029a473cd32b2872ddd235723b1302f31e97eea"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Fri Jan 27 15:11:41 2023 +0000"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Fri Jan 27 15:11:43 2023 +0000"
      },
      "message": "Remove local resolver\n\nThis is most likely a left over from some previous testing.\nThere is no reason to have a local resolver in production code.\n\nChange-Id: Iec8a89c83f79ffc4ca68ec80876e3d3b49bc7937\n"
    },
    {
      "commit": "1029a473cd32b2872ddd235723b1302f31e97eea",
      "tree": "5a3327ae2b74e7b6ef41d625d3f594d9ad41c8f7",
      "parents": [
        "1f30d846680670eefd089d3a60c86ef8b65888c4"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Thu Jan 26 16:43:13 2023 +0000"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Thu Jan 26 16:43:13 2023 +0000"
      },
      "message": "Use more idiomatic Scala\n\nChange-Id: I0d3f847a65e453fcae759732d91bd3e89d4bc953\n"
    },
    {
      "commit": "1f30d846680670eefd089d3a60c86ef8b65888c4",
      "tree": "8dd479f3c8a68edd15d25d18933e6addff163f0d",
      "parents": [
        "4282d636fd2586529b58e1a0ae6a995420fbc983"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Tue Oct 25 10:43:48 2022 +0200"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Tue Oct 25 10:45:24 2022 +0200"
      },
      "message": "Set Gerrit API to v3.7.0-rc3\n\nChange-Id: I98981b0e4ecfc160471ddd93744e64bbd084e801\n"
    },
    {
      "commit": "4282d636fd2586529b58e1a0ae6a995420fbc983",
      "tree": "41f72cecd59355a96f7c702cb5c8abbe8f903442",
      "parents": [
        "680948fb2b310f46b54adb30889eb63535da347d"
      ],
      "author": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Fri Apr 15 14:48:23 2022 +0200"
      },
      "committer": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Tue Apr 19 15:43:36 2022 +0200"
      },
      "message": "Set Gerrit to v3.6.0-rc0\n\nBug: Issue 15840\nChange-Id: I46588e9f923e29dc41b63280d52f573cdaed3c23\n"
    },
    {
      "commit": "affb4d79df978053a404b97be30a23a88714525a",
      "tree": "41f72cecd59355a96f7c702cb5c8abbe8f903442",
      "parents": [
        "680948fb2b310f46b54adb30889eb63535da347d"
      ],
      "author": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Fri Apr 15 14:48:23 2022 +0200"
      },
      "committer": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto@gmail.com",
        "time": "Fri Apr 15 20:11:50 2022 +0000"
      },
      "message": "Set Gerrit to v3.6.0-rc0\n\nBug: Issue 15840\nChange-Id: I46588e9f923e29dc41b63280d52f573cdaed3c23\n"
    },
    {
      "commit": "680948fb2b310f46b54adb30889eb63535da347d",
      "tree": "6df1d05e0867dd0a00f94d5dae530212755c9e21",
      "parents": [
        "3de879742055ec0b66c24d083dbab57f797afe71"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Thu Nov 18 20:38:05 2021 +0100"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Thu Nov 18 20:38:05 2021 +0100"
      },
      "message": "Set Gerrit to v3.5.0-rc2\n\nChange-Id: Ib6428c8ac006490157bc889fe6c20198b95348de\n"
    },
    {
      "commit": "3de879742055ec0b66c24d083dbab57f797afe71",
      "tree": "9e1919ad3d06c3180425d1e77286fc58e6dfe517",
      "parents": [
        "20ae44d3a71750de87bf70959b6a742d2813fdd4",
        "1048768cae1c66c923cfacc692340f4cf0d1196f"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Thu Nov 18 20:35:41 2021 +0100"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Thu Nov 18 20:35:41 2021 +0100"
      },
      "message": "Merge branch \u0027stable-3.4\u0027\n\n* stable-3.4:\n  Fix broken tests\n  Bump up scala to 2.11.12\n  Bump Guice to v5.0.x as in Gerrit stable-3.4\n  Upgrade Gerrit API to 3.3.3\n  Upgrade Gerrit API to 3.3.2\n  Set Gerrit API to 3.3.1-SNAPSHOT\n\nChange-Id: I2e78a1180666d4a86ec1230b03f43aefc4b5b066\n"
    },
    {
      "commit": "1048768cae1c66c923cfacc692340f4cf0d1196f",
      "tree": "9e1919ad3d06c3180425d1e77286fc58e6dfe517",
      "parents": [
        "d02bc97f8af74e2fcd376a6f99402539ad308548",
        "028e23b9fd51a99ab2d90116513556ecde1804fa"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Thu Nov 18 20:31:08 2021 +0100"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Thu Nov 18 20:31:08 2021 +0100"
      },
      "message": "Merge branch \u0027stable-3.3\u0027 into stable-3.4\n\n* stable-3.3:\n  Upgrade Gerrit API to 3.3.3\n  Upgrade Gerrit API to 3.3.2\n  Set Gerrit API to 3.3.1-SNAPSHOT\n\nChange-Id: I5276ac870378f4f54d787419780ee61ce57a0d73\n"
    },
    {
      "commit": "d02bc97f8af74e2fcd376a6f99402539ad308548",
      "tree": "9e1919ad3d06c3180425d1e77286fc58e6dfe517",
      "parents": [
        "60611123cb2c5b79be7000716c6c4d2a662db998"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Mon Apr 12 19:09:58 2021 +0200"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Mon Apr 12 19:18:11 2021 +0200"
      },
      "message": "Fix broken tests\n\nWith the introduction of the initial branch check introduced in JGIT\n5.11.x[1], some tests started to fail due to the absence of a master\nbranch.\n\nMake tests more adherent to reality by also creating an initial commit\nin the master branch to mimic the behaviour of a real project creation.\n\n[1]https://git.eclipse.org/r/c/jgit/jgit/+/175264\n\nBug: Issue 14368\nChange-Id: I03e0a7e7545d237d1432e6b4f1f4a89d12ee3431\n"
    },
    {
      "commit": "60611123cb2c5b79be7000716c6c4d2a662db998",
      "tree": "3910af415131eb56f9601e8da972a19cd8048b08",
      "parents": [
        "403f318e411e835c8a829eb7396b09f752d41863"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Mon Apr 12 19:08:17 2021 +0200"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Mon Apr 12 19:08:17 2021 +0200"
      },
      "message": "Bump up scala to 2.11.12\n\nScala version 2.11.12 is the recommended version for compatibility to\njava 11.\n\nBug: Issue 14376\nChange-Id: I3733b4d874730954664f0508efa5e6da0dd40117\n"
    },
    {
      "commit": "403f318e411e835c8a829eb7396b09f752d41863",
      "tree": "1d817ac3c6a9877b3277c6b22adaeb95de5e115a",
      "parents": [
        "20ae44d3a71750de87bf70959b6a742d2813fdd4"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Apr 09 01:12:44 2021 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Apr 09 01:13:43 2021 +0100"
      },
      "message": "Bump Guice to v5.0.x as in Gerrit stable-3.4\n\nChange-Id: Ic4ac407ddc2c5e8baca68b3c56a96e39179595df\n"
    },
    {
      "commit": "20ae44d3a71750de87bf70959b6a742d2813fdd4",
      "tree": "03562473b9b9d46dd66fa41b3ff3110bd9ed4d4f",
      "parents": [
        "3cc4fde1663a188f5014d4e659b6bd6897152956"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu Apr 08 20:50:28 2021 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu Apr 08 20:50:28 2021 +0100"
      },
      "message": "Set Gerrit to v3.4.0-rc0\n\nChange-Id: I49888e1845b96a16fbc2f7f4dc30a3365a589d14\n"
    },
    {
      "commit": "028e23b9fd51a99ab2d90116513556ecde1804fa",
      "tree": "7c95180cc96a0b3ceb80f4a601848308f5d9c6c7",
      "parents": [
        "234ab8328d82a018363936b5df9acb53630eb9c7",
        "a04eb9ab46957f4c26998475fb8997b3cda2cf63"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Wed Apr 07 23:46:23 2021 +0200"
      },
      "committer": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Wed Apr 07 23:46:28 2021 +0200"
      },
      "message": "Merge branch \u0027stable-3.2\u0027 into stable-3.3\n\n* stable-3.2:\n  Upgrade Gerrit API to 3.3.3\n  Upgrade Gerrit API to 3.3.2\n\nChange-Id: Ib331022db0508e60c84b6a5ed20ec52832334f84\n"
    },
    {
      "commit": "a04eb9ab46957f4c26998475fb8997b3cda2cf63",
      "tree": "7c95180cc96a0b3ceb80f4a601848308f5d9c6c7",
      "parents": [
        "8a9194eeeab3b847342111cb7122b28e4bb7cd26"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Wed Apr 07 23:45:28 2021 +0200"
      },
      "committer": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Wed Apr 07 23:45:28 2021 +0200"
      },
      "message": "Upgrade Gerrit API to 3.3.3\n\nChange-Id: Ie7fbdfede4d152b276823b4cd1a9e2c17dfb20c1\n"
    },
    {
      "commit": "8a9194eeeab3b847342111cb7122b28e4bb7cd26",
      "tree": "72512e2c63a8dc890b0459564eae0d1dcf71966e",
      "parents": [
        "234ab8328d82a018363936b5df9acb53630eb9c7"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Thu Jan 28 13:17:04 2021 +0100"
      },
      "committer": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Thu Jan 28 13:17:04 2021 +0100"
      },
      "message": "Upgrade Gerrit API to 3.3.2\n\nChange-Id: Ibde9a79e14d15f25e0d32807db0e893a983e7870\n"
    },
    {
      "commit": "234ab8328d82a018363936b5df9acb53630eb9c7",
      "tree": "72d7b481cece150c134790c044dc1c5073695056",
      "parents": [
        "2de653c4ac53d2cf2d02b547ae0fecebfba9e469"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Dec 09 22:43:57 2020 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Dec 09 22:43:57 2020 +0000"
      },
      "message": "Set Gerrit API to 3.3.1-SNAPSHOT\n\nChange-Id: I2d231e2274fd19d95e1290bce4b0498700a4965b\n"
    },
    {
      "commit": "3cc4fde1663a188f5014d4e659b6bd6897152956",
      "tree": "47a321b2f444cda149681e8a0b27e28ade150d75",
      "parents": [
        "2750190635c963046f5637c309f188b4143d2d73"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Nov 28 00:36:36 2020 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Nov 28 00:36:36 2020 +0000"
      },
      "message": "Bump Gerrit API to 3.4.0-SNAPSHOT\n\nChange-Id: I4dca3c8f92ba157baa862ec40766f9180ddfd7f4\n"
    },
    {
      "commit": "2750190635c963046f5637c309f188b4143d2d73",
      "tree": "18d0890c2bd9f119b47497d671243437de6b870c",
      "parents": [
        "d84e6bbac21c3ec92fa42734faaccdc871e4185f",
        "2de653c4ac53d2cf2d02b547ae0fecebfba9e469"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Nov 28 00:36:12 2020 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Nov 28 00:36:12 2020 +0000"
      },
      "message": "Merge branch \u0027stable-3.3\u0027\n\n* stable-3.3:\n  Evict the project cache for reloading the project.config\n\nChange-Id: Iffe20a91b3141b7714723aa3ef2de67db4cc0ebe\n"
    },
    {
      "commit": "2de653c4ac53d2cf2d02b547ae0fecebfba9e469",
      "tree": "18d0890c2bd9f119b47497d671243437de6b870c",
      "parents": [
        "d84e6bbac21c3ec92fa42734faaccdc871e4185f"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Nov 27 22:21:38 2020 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Nov 27 22:23:45 2020 +0000"
      },
      "message": "Evict the project cache for reloading the project.config\n\nUpdate Gerrit API to 3.3.0-SNAPSHOT and allow to reload\nthe project config by evicting the project cache explicitly.\n\nGerrit v3.3 introduces a new project cache and includes\ntha ability to serialize its state to a persistent storage.\n\nThis allows to workaround the Issue 13754 and still being\nable to add commentLink for being used in the tests.\n\nChange-Id: I0404376a778b375d4f607a86068001f49ff391ad\n"
    },
    {
      "commit": "d84e6bbac21c3ec92fa42734faaccdc871e4185f",
      "tree": "f26dda8a6a8fd1cd0e5dc791b12c0d36bb8ab878",
      "parents": [
        "bc04a50df7794e30188cd99cc36f3e53f886829c",
        "3f03006c18844976c88834b5a6651860fc1f2c57"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Nov 20 20:59:32 2020 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Nov 20 20:59:32 2020 +0000"
      },
      "message": "Merge branch \u0027stable-3.2\u0027\n\n* stable-3.2:\n  Upgrade Gerrit API to 3.2.5.1\n  Set Gerrit to v3.2.0-rc1\n\nChange-Id: I11ba40a6f2b08d193d99f576c2d3ab34cd714a45\n"
    },
    {
      "commit": "3f03006c18844976c88834b5a6651860fc1f2c57",
      "tree": "f26dda8a6a8fd1cd0e5dc791b12c0d36bb8ab878",
      "parents": [
        "744c3ed9a349c6676ca38d0e0671da4410e1ddc4"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Nov 20 20:56:25 2020 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Nov 20 20:56:25 2020 +0000"
      },
      "message": "Upgrade Gerrit API to 3.2.5.1\n\nChange-Id: I36e295748258873b36ef9c7e4f1497d9b1e35133\n"
    },
    {
      "commit": "744c3ed9a349c6676ca38d0e0671da4410e1ddc4",
      "tree": "aafe8371bdfbf07fe05419f0df1203a61bae893c",
      "parents": [
        "bc04a50df7794e30188cd99cc36f3e53f886829c"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Apr 28 19:56:55 2020 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat May 02 21:41:42 2020 +0100"
      },
      "message": "Set Gerrit to v3.2.0-rc1\n\nUpdate Gerrit API to v3.2.0-rc1 and align the associated\nlibraries with the ones included in Gerrit.\n\nAlso adapt the changes to the project cache interface\nand the conversion of Java8\u0027s Optional to Scala\u0027s Option.\n\nChange-Id: I00eb9455ad4bb305a3d014e524d0ece5bea8a717\n"
    },
    {
      "commit": "bc04a50df7794e30188cd99cc36f3e53f886829c",
      "tree": "78d97528d3cd37917b90a2a66e1bb5958f8ded2c",
      "parents": [
        "8f1dd2c5f30c6e66d86e33019123ee2eb1a39ee4"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Fri Oct 25 11:23:32 2019 +0200"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Fri Oct 25 12:45:38 2019 +0200"
      },
      "message": "Adapt to gerrit v3.1-rc1\n\nReplace com.google.gerrit.reviewdb.client.Project imports with\ncom.google.gerrit.entities.Project\n\nFeature: Issue 11807\nChange-Id: Ic37c7784fb62462a17618d61531e93d0d2033719\n"
    },
    {
      "commit": "8f1dd2c5f30c6e66d86e33019123ee2eb1a39ee4",
      "tree": "5f85145def227daecd888ba091234bbe6714ab6b",
      "parents": [
        "fcd0876f4917c3ff46d191236e8c97bb0c537c20",
        "b263b63f644cc7244c4df1811137932974abd881"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Tue Sep 17 18:35:28 2019 +0100"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Tue Sep 17 18:35:28 2019 +0100"
      },
      "message": "Merge branch \u0027stable-3.0\u0027\n\n* stable-3.0:\n  Promote aggregation key to case class\n  Add ability to ignore specific files suffixes\n\nChange-Id: Id83be727f627232863b6bc897a597b04adce0b17\n"
    },
    {
      "commit": "b263b63f644cc7244c4df1811137932974abd881",
      "tree": "110d5e2771c2f0464fd78d8b321b83005af26467",
      "parents": [
        "4fc5d79cc355d2f0aed2cc7c8f53a96781e1a4ae",
        "e841d7169fe35138f5187a05692c56202ce1f797"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Tue Sep 17 18:19:55 2019 +0100"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Tue Sep 17 18:19:55 2019 +0100"
      },
      "message": "Merge branch \u0027stable-2.16\u0027 into stable-3.0\n\n* stable-2.16:\n  Promote aggregation key to case class\n  Add ability to ignore specific files suffixes\n\nChange-Id: Ifceb12d03188813db37816fe84ac38ff72f79fb6\n"
    },
    {
      "commit": "fcd0876f4917c3ff46d191236e8c97bb0c537c20",
      "tree": "e4d1a93b4675842ea7d4ab82135486c79c0a6fd8",
      "parents": [
        "831b6543d6185bf894f4e9e2d01df9081cbf8b58"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu May 30 09:30:58 2019 +0100"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Tue Sep 03 10:56:41 2019 +0100"
      },
      "message": "Set version to 3.1.0-SNAPSHOT for Gerrit master\n\nBuild with Gerrit master and consume its SNAPSHOT\nartifact, so that the plugin development can go side-by-side\nwith the Gerrit development.\n\nAdapt to the latest changes on master, including the\nauto value for Project.NameKey.\n\nChange-Id: I98b61de51aabe80528b2dd03e663ad4abeb0af1b\n"
    },
    {
      "commit": "e841d7169fe35138f5187a05692c56202ce1f797",
      "tree": "44c2659a8799834ef540333eb8199a977187a1ad",
      "parents": [
        "d6a4629b9a47b8af79942a92369086c80bd973c3"
      ],
      "author": {
        "name": "Fabio Ponciroli",
        "email": "ponch78@gmail.com",
        "time": "Sun Nov 25 23:48:57 2018 +0100"
      },
      "committer": {
        "name": "Tiago Palma",
        "email": "tiago.f.palma@gmail.com",
        "time": "Thu Jun 20 11:38:55 2019 +0200"
      },
      "message": "Promote aggregation key to case class\n\nUse a case class rather than a string as an aggregation key.\nThis avoids string parsing strings when extracting tokens\nfrom the aggregation key.\n\nIt should simplify the addition of new aggregation strategies\nsince the handling of the tokens of the aggregation key will\nbe handled by the AggregationKey case class.\n\nChange-Id: Ibd91665ea3d126f64aa14f270c3e8a09552b8d23\n"
    },
    {
      "commit": "d6a4629b9a47b8af79942a92369086c80bd973c3",
      "tree": "c588215a1ec161be9f7fb6aa67670672ac88f77f",
      "parents": [
        "39b92969839004abd15372df4d77bbda733a21c4"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Fri Jun 07 13:01:21 2019 +0100"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Thu Jun 13 10:28:56 2019 +0000"
      },
      "message": "Add ability to ignore specific files suffixes\n\nIntroduce a new \u0027ignore-file-suffix\u0027 configuration in the\nanalytics.config file to ignore matching files from the statistics.\n\nA typical case for this would be to ignore binary files and avoid\naccounting for them when extracting contributor statistics.\n\nThis conveniently speeds up performances since skips completely the\nloading and the diffing of binary files, which is a quite an expensive\ncomputation.\n\nFeature: Issue 10756\nChange-Id: I60deb05586b7fd984f3067e3b3df465cd46597a7\n"
    },
    {
      "commit": "831b6543d6185bf894f4e9e2d01df9081cbf8b58",
      "tree": "ff8066d0ba5a0a580c0adc06740ed4b6059e2400",
      "parents": [
        "cca0b0adeb450421694db3c1819e8ba2af2e8ec0",
        "4fc5d79cc355d2f0aed2cc7c8f53a96781e1a4ae"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Jun 11 18:39:14 2019 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Jun 11 18:39:14 2019 +0100"
      },
      "message": "Merge branch \u0027stable-3.0\u0027\n\n* stable-3.0:\n  Adapt to Gerrit v3.0 test API\n  Make year, month, day, hour extraction more resilient\n  Move extract-issues to analytics.config\n  Revert \"Move extract-issues to analytics.config\"\n  Move extract-issues to analytics.config\n\nChange-Id: Ie93b13020f9470b010aefd4b76b9a7681594bd24\n"
    },
    {
      "commit": "4fc5d79cc355d2f0aed2cc7c8f53a96781e1a4ae",
      "tree": "ff8066d0ba5a0a580c0adc06740ed4b6059e2400",
      "parents": [
        "c8e3bb24c64d4314ce5d31e5560bf42c600ddbd5",
        "39b92969839004abd15372df4d77bbda733a21c4"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Jun 11 18:25:55 2019 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Jun 11 18:25:55 2019 +0100"
      },
      "message": "Merge branch \u0027stable-2.16\u0027 into stable-3.0\n\n* stable-2.16:\n  Make year, month, day, hour extraction more resilient\n  Move extract-issues to analytics.config\n  Revert \"Move extract-issues to analytics.config\"\n  Move extract-issues to analytics.config\n\nChange-Id: Ic54c97f744ce67fd953e16ec06619ca42bf84cf1\n"
    },
    {
      "commit": "c8e3bb24c64d4314ce5d31e5560bf42c600ddbd5",
      "tree": "dea40ee6ab254bb9a454bf80f2ab50ce05368458",
      "parents": [
        "cca0b0adeb450421694db3c1819e8ba2af2e8ec0"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Jun 11 16:29:23 2019 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Jun 11 16:29:23 2019 +0100"
      },
      "message": "Adapt to Gerrit v3.0 test API\n\nGerrit v3.0 has different methods for creating a test\nrepository in its test automation framework.\n\nJUnit also has been upgraded to v4 and the class rule\nfor creating the temporary folder needs to be explicitly\ninvoked.\n\nChange-Id: I1584e2842fcdfbebd4ad7f9dfb26feaa84fd384c\n"
    },
    {
      "commit": "39b92969839004abd15372df4d77bbda733a21c4",
      "tree": "94f048c5749c8e97abc96fb59accb2f8e5282dc4",
      "parents": [
        "50263b790ebd785617894b157b9d932f0ee9a56e"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Fri May 17 18:46:56 2019 +0200"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Wed Jun 05 09:48:34 2019 +0000"
      },
      "message": "Make year, month, day, hour extraction more resilient\n\nDo not assume year, month, day, hour is always parsable to an integer.\nAlso, remove dangerous broad implicit conversion from string to integer.\n\nBug: Issue 10904\nChange-Id: I85c7532b218861dba8202088366e0e7c1d155d7d\n"
    },
    {
      "commit": "50263b790ebd785617894b157b9d932f0ee9a56e",
      "tree": "ee1b4387d982ca71327685efb01dc3b83ae4bcf3",
      "parents": [
        "d28e0b7349aa31ac43d62586355c6e3a5687d42a"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Fri May 31 14:26:20 2019 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Jun 04 20:51:45 2019 +0000"
      },
      "message": "Move extract-issues to analytics.config\n\nFix an issue whereby the extract-issue argument was\nignored when passed as parameter of the contributors endpoint.\n\nThe extraction of arguments that are unlikely to change often across\ninvocation is moved to the analytics.config instead, similarly to what\nhas been done for bot-like-commits.\n\nHonors the extract-issue value, by reading it from the config.\n\nBug: Issue 10951\nChange-Id: I065c5592c9a9982d9d623f744a141ca12338aae6\n"
    },
    {
      "commit": "d28e0b7349aa31ac43d62586355c6e3a5687d42a",
      "tree": "55f5b0b5e52714930f71957b7d09f21dcd68675d",
      "parents": [
        "2c6a8d095a23e061249858fc5c907c2e377cd59f"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Fri May 31 14:35:06 2019 +0100"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Fri May 31 14:35:06 2019 +0100"
      },
      "message": "Revert \"Move extract-issues to analytics.config\"\n\nThis reverts commit 2c6a8d095a23e061249858fc5c907c2e377cd59f.\n"
    },
    {
      "commit": "2c6a8d095a23e061249858fc5c907c2e377cd59f",
      "tree": "ee1b4387d982ca71327685efb01dc3b83ae4bcf3",
      "parents": [
        "1522caecce4b02649ee00f802e23cc5b2401a6e9"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Fri May 31 14:26:20 2019 +0100"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Fri May 31 14:33:17 2019 +0100"
      },
      "message": "Move extract-issues to analytics.config\n\nThis commit fixes an issue whereby the extract-issue argument was\nignored when passed as parameter of the contributors endpoint.\n\nextraction arguments that are unlikely to change often across invocation\nare moved to the analytics.config instead, similarly to what has been\ndone for bot-like-commits.\n\nThe code now honours the extract-issue value, by reading it from the\nconfig.\n\nBug: Issue 10951\nChange-Id: I065c5592c9a9982d9d623f744a141ca12338aae6\n"
    },
    {
      "commit": "cca0b0adeb450421694db3c1819e8ba2af2e8ec0",
      "tree": "08a15526a9144bdd53bf0b2098bb9b03b6802e5f",
      "parents": [
        "1522caecce4b02649ee00f802e23cc5b2401a6e9"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Fri Apr 19 07:20:02 2019 -0700"
      },
      "committer": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Thu May 30 11:21:04 2019 +0200"
      },
      "message": "Build analytics plugin against 3.0.0 plugin API\n\nOutputFormat class was moved to its own top level package. gwtjsonrpc\ndependency was removed from gerrit core and thus from the plugin API.\nJavaSqlTimestampHelper was copied in json package in gerrit core.\n\nBug: Issue 10739\nChange-Id: I1f720a924fdb1de39edc608a5d2413638535bb75\n"
    },
    {
      "commit": "1522caecce4b02649ee00f802e23cc5b2401a6e9",
      "tree": "55f5b0b5e52714930f71957b7d09f21dcd68675d",
      "parents": [
        "2024bc96182566bceff1328abc3f9d81052cfcab"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Thu Apr 18 16:36:53 2019 +0300"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Tue May 28 14:52:27 2019 +0100"
      },
      "message": "Improve the performance of branch extraction\n\nImprove the performance of contributors endpoint by using\nan in-memory/on-disk cache to avoid computing file diff for the same\nobjectIds over and over again but for different branches.\n\nRemove also the use of parallel collection because of\ngreatly diminishing the throughput caused by increasing the overhead\nin memory management.\n\nThe performance improvement is higher for larget repositories with\na lot of branches.\n\nExamples:\n\n- Extracting analytics, including branches, since 2000-01-01 from the\nGerrit Code Review repo, which at the time of writing has a size of 130Mb\nand has only 15 branches might save up to 10 seconds. Arguably not that\nmuch.\n\n- Extracting analytics, including branches, since 2017-01-01 from the\nplatform/prebuilts/tools repo (part of AOSP), which at the time of\nwriting has a size of 22Gb and 215 branchea, might help latency to go\ndown from 7minutes to 20 seconds (20 times faster).\n\nExtracting from this very same repo since 2000-01-01, allows to get a\nresponse in a matter of minutes rather several hours.\n\nBug: Issue 10729\nChange-Id: I991a5fc82d7c32c6e035da8b90ba4bebeab50188\n"
    },
    {
      "commit": "2024bc96182566bceff1328abc3f9d81052cfcab",
      "tree": "92c402f6aa4e1485e425bf10ab60dee6b91b5869",
      "parents": [
        "67488aced5695a66f7111c7366adff6bd6162a98"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed May 22 00:52:53 2019 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue May 28 10:59:50 2019 +0100"
      },
      "message": "Use Gerrit repositories for analytics tests\n\nMutate Gerrit bare repositories and use them for the execution\nof the analytics plugin.\nThis makes the use-case scenarios a lot more similar to the real\nruntime of the plugin, which runs inside a Gerrit daemon.\n\nRemove all references to the copy\u0026paste GitTestCase from Gitective\nand replace it with a simple pimping of the current Gerrit TestRepository\nclass.\n\nChange-Id: Ib6f09a5fbd73aafdb1eefc7a2b521f35df7c23e0\n"
    },
    {
      "commit": "67488aced5695a66f7111c7366adff6bd6162a98",
      "tree": "47e5d27d074855f44e12fc853a5a335f643d933a",
      "parents": [
        "da2fb6cf1d25ccca14a2c4bf5e5cd892d2079f51"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sun May 19 23:26:00 2019 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue May 28 10:35:31 2019 +0100"
      },
      "message": "Inject automatically BotLikeExtractorImpl\n\nDo not require to instantiate explicitly the extractor for bot-like\ncomments. Bind the proper implementation in the Guice module and\ninstantiate it automatically with Guice when needed.\n\nChange-Id: Ib88bf8809607ee63b43613b937b0c531dc89b0f8\n"
    },
    {
      "commit": "da2fb6cf1d25ccca14a2c4bf5e5cd892d2079f51",
      "tree": "a9b240b53ae44aa399a13cd73b49b447b2eb8334",
      "parents": [
        "e8df3add8c8498cfa64f691fe07a6875bb627354"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu May 09 22:35:36 2019 +0100"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Fri May 10 15:07:53 2019 +0100"
      },
      "message": "Move botlike-filename-regexp to analytics.config\n\nThe extraction of the analytics from the projects is a very expensive\noperation. While the time-based parameters make sense to be in the API\nthe global options for \"tagging\" the commits as bot-like or not, is\nvery unlikely to change for every single invocation.\n\nMove the botlike-filename-regexp into the new analytics.config so\nthat the results of the analytics extraction can be later on cached\nconsistently and reused as much as possible.\n\nThe actual caching is addressed in a follow-up change.\n\nChange-Id: Ic3ac347fca59d4b8be0c20c32848682a55fdf26c\n"
    },
    {
      "commit": "e8df3add8c8498cfa64f691fe07a6875bb627354",
      "tree": "b429a5faee29530c1b5f1cbde6f616af2350c342",
      "parents": [
        "233de99fb028d3de754e6df979dc1712725e5962"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue May 07 07:22:55 2019 -0700"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue May 07 07:22:55 2019 -0700"
      },
      "message": "Bump to Gerrit v2.16.8 API\n\nChange-Id: Iad6e464b67a1c031b6e632ff3a9414248a3d7b94\n"
    },
    {
      "commit": "233de99fb028d3de754e6df979dc1712725e5962",
      "tree": "7cb24352b3eeef9cc7218c4b738ecfd1be851976",
      "parents": [
        "0352a214906667646eab0aef3e5faecf4d786bbc"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Wed May 01 15:39:09 2019 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sun May 05 10:13:56 2019 +0000"
      },
      "message": "Improve computation of numFiles and numDistinctFiles\n\nOptimize the computation of numFiles and numDistinctFiles:\n- Compute the list of affected files only once\n- Reply on the uniqueness of elements in a set to achieve distinction\nrather than folding over a union\n\nChange-Id: Ic9eb4b06a47d6169cd1584406b5bbb19243f670a\n"
    },
    {
      "commit": "0352a214906667646eab0aef3e5faecf4d786bbc",
      "tree": "873c8c342ce7e5fddafec3aa79e41f21e4280ce5",
      "parents": [
        "7a1fa4755656969ea141dfbf215fd3db6fa2d6bd"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Wed May 01 15:01:15 2019 +0100"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Wed May 01 15:24:44 2019 +0100"
      },
      "message": "Stop expensive conversions from scala to java lists\n\nJava implementation of Gson does not know how to serialize scala\ncollections out of the box.  For this reason CommitsStatistics\nand CommitInfo objects had been modeled with java.util.List and\njava.util.Set instead, just to help gson to serialize them.\n\nThis change avoids unneded conversion from java to scala and vice-versa\nby:\n- Remodeling of CommitsStatistics and CommitInfo to use scala native\ncollections.\n- Registering a scala iterable serializer to Gson so that it knows how\nto serialize scala lists and sets.\n\nThis bumps up the latency of the contributors endpoint of around 50%.\n\nFor example, when extracting the entire history of master branch for\nGerrit repo, latency decreases from 58s to 27s.\n\nChange-Id: I1ba7e81eb81ebcffaa431a4340fb9da09e6a5976\n"
    },
    {
      "commit": "7a1fa4755656969ea141dfbf215fd3db6fa2d6bd",
      "tree": "4c4b4ca8d3b054ff79b4a7329e16e70d466a1d98",
      "parents": [
        "0608dd8080556dd6fa94a6db8091fe0c788a9962",
        "e902ce1eef8e648494c55dae81623db989e73601"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Wed Mar 13 11:49:23 2019 +0000"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Wed Mar 13 11:49:23 2019 +0000"
      },
      "message": "Merge branch \u0027stable-2.15\u0027\n\n* stable-2.15:\n  Flag and aggregate commits by BotLike-ness\n\nChange-Id: If7ca9f69c35c649d37d4119a000a064be508b232\n"
    },
    {
      "commit": "e902ce1eef8e648494c55dae81623db989e73601",
      "tree": "6977e5ce5da95bb7dd1cb6b98c3e4ba0b68a9a4f",
      "parents": [
        "b3c4032785e9b3d9264650698b236a5e533484a1"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Mon Mar 11 18:23:10 2019 +0000"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Wed Mar 13 11:05:48 2019 +0000"
      },
      "message": "Flag and aggregate commits by BotLike-ness\n\nWith this change it is possible to provide a new bot-like-regexps\nparameter which allows to pass a comma separated list of regexps to be\nused in recognizing bot-like commits.\n\nWhen *all* files touched by a commit match those regexps, then the commit\nis flagged as is_bot_like.\n\nChange-Id: I0f3af74dc223e9f12c9e19592c226d784eceb6f7\n"
    },
    {
      "commit": "0608dd8080556dd6fa94a6db8091fe0c788a9962",
      "tree": "46db8d914d6e89c046a473428707f20f30bd694a",
      "parents": [
        "d6e1821d4db3390dd5fc3f83df9ff3e0878afa0b"
      ],
      "author": {
        "name": "Fabio Ponciroli",
        "email": "ponch78@gmail.com",
        "time": "Tue Nov 20 12:51:37 2018 +0100"
      },
      "committer": {
        "name": "Fabio Ponciroli",
        "email": "ponch78@gmail.com",
        "time": "Tue Nov 20 12:51:37 2018 +0100"
      },
      "message": "Build for Gerrit version 2.16\n\nChange-Id: Ib0adfc5774fbe0d4f6c38ed4950d729abd25e465\n"
    },
    {
      "commit": "d6e1821d4db3390dd5fc3f83df9ff3e0878afa0b",
      "tree": "5a91d99bf7f80d02e1734e9af097b924716bf640",
      "parents": [
        "06af4e6d2e1863f17ae118dd127db756dfdef182",
        "b3c4032785e9b3d9264650698b236a5e533484a1"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Nov 13 16:55:01 2018 -0800"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Nov 13 16:55:01 2018 -0800"
      },
      "message": "Merge branch \u0027stable-2.15\u0027\n\n* stable-2.15:\n  Allow analytics to aggregate by branch\n\nChange-Id: Icac860297cb3c3e534f1f48a4fa76a876d87e751\n"
    },
    {
      "commit": "b3c4032785e9b3d9264650698b236a5e533484a1",
      "tree": "73877608b70d3d86740e32f503bba3fc547d2653",
      "parents": [
        "775971cd5fbedd4fc251e9fb490f69b650b33587"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Fri Oct 26 18:21:44 2018 +0300"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Nov 13 16:51:40 2018 -0800"
      },
      "message": "Allow analytics to aggregate by branch\n\nWhen extract-branches is set, the analytics plugin aggregates commits\nalso by branch name within the aggregation strategy established by the\n`aggregation` argument. The aggregated branch is also exposed as a value\nvia the `branches` field of the response payload.\n\nAlso, Improve extraction of branches performance by computing a lookup\ntable only once rather than for every objectId.\n\nThis code is now dependent on gerrit-api version 2.16-rc1.\n\nFeature: Issue 9863\nFeature: Issue 9864\nBug: Issue 9924\nBug: Issue 9950\n\nChange-Id: Ib2d58f8dda397af476a7307e90dc7466a7edff2c\n"
    },
    {
      "commit": "06af4e6d2e1863f17ae118dd127db756dfdef182",
      "tree": "5a91d99bf7f80d02e1734e9af097b924716bf640",
      "parents": [
        "be832f1ae26fbb2bb163c0aab10f59674f07d2a3"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Fri Oct 26 18:21:44 2018 +0300"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Wed Oct 31 10:41:02 2018 +0000"
      },
      "message": "Allow analytics to aggregate by branch\n\nWhen extract-branches is set, the analytics plugin aggregates commits\nalso by branch name within the aggregation strategy established by the\n`aggregation` argument. The aggregated branch is also exposed as a value\nvia the `branches` field of the response payload.\n\nAlso, Improve extraction of branches performance by computing a lookup\ntable only once rather than for every objectId.\n\nThis code is now dependent on gerrit-api version 2.16-rc1.\n\nFeature: Issue 9863\nFeature: Issue 9864\nBug: Issue 9924\nBug: Issue 9950\n\nChange-Id: Ib2d58f8dda397af476a7307e90dc7466a7edff2c\n"
    },
    {
      "commit": "be832f1ae26fbb2bb163c0aab10f59674f07d2a3",
      "tree": "802c6377842d3c99872c0e9215c8b4297d5eaeca",
      "parents": [
        "25df1ae84f94e79d658a18e1db40b62a6687ff20"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sun Sep 16 00:25:47 2018 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sun Sep 16 00:25:47 2018 +0100"
      },
      "message": "Bump gitective to v0.9.54\n\nUpgrade gitective to align the underlying JGit library to the same\nv5.0.3 used in Gerrit 2.16-SNAPSHOT\n\nChange-Id: I956d8994a61777bf83d31564c411cd2a787ccc56\n"
    },
    {
      "commit": "25df1ae84f94e79d658a18e1db40b62a6687ff20",
      "tree": "4a70cec32453f83aa71989811e4454c1434bf26a",
      "parents": [
        "da7fa8c48121803d41571bc4fb53d1682e25aca0"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sun Sep 16 00:00:44 2018 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sun Sep 16 00:00:44 2018 +0100"
      },
      "message": "Import ProjectsCollection from restapi\n\nProjectCollection is now part of the restapi.project package\nand needs to be imported from there.\n\nChange-Id: I177367737ce28f7545f346bcb799f90eff7d2555\n"
    },
    {
      "commit": "da7fa8c48121803d41571bc4fb53d1682e25aca0",
      "tree": "3027213a02ddcb6436e0d2c155c267cce97e7b2e",
      "parents": [
        "1f2d18d212d6825adede47796cd49553b779467b"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Sep 15 23:39:08 2018 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Sep 15 23:59:18 2018 +0100"
      },
      "message": "Bump to Gerrit 2.16 API and associated deps\n\nUpdate Gerrit 2.16 API and the other libraries versions that\nare included in runtime.\n\nNOTE: joda-time isn\u0027t used anymore in Gerrit. However, it is\nstill used in the analytics plugin and thus needs to be preserved.\n\nChange-Id: Ic8bc4bd31f2d9e56c6944134ea0ff49965c47ec7\n"
    },
    {
      "commit": "1f2d18d212d6825adede47796cd49553b779467b",
      "tree": "3b69a9cc0c91bcebf3d1ebdcb5f847d38ffaaa1d",
      "parents": [
        "5a0cc4ad2ff1404bfa7dff514385fb3581e7b6cb",
        "775971cd5fbedd4fc251e9fb490f69b650b33587"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Sep 15 23:33:45 2018 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Sep 15 23:34:01 2018 +0100"
      },
      "message": "Merge branch \u0027stable-2.15\u0027\n\n* stable-2.15:\n  Bump sbt to 1.2.3\n  Bump Gerrit API version to 2.15.3\n  Align Gerrit API version to 2.14.12\n  Upgrade sbt plugins\n\nChange-Id: If0c6d97d076ce2261ffffafd3cd0e17db89e21e8\n"
    },
    {
      "commit": "775971cd5fbedd4fc251e9fb490f69b650b33587",
      "tree": "3b69a9cc0c91bcebf3d1ebdcb5f847d38ffaaa1d",
      "parents": [
        "ea8d607a9588db1585b39fa3bcdc2f46307a34ca"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Sep 15 23:31:13 2018 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Sep 15 23:31:13 2018 +0100"
      },
      "message": "Bump sbt to 1.2.3\n\nChange-Id: Ia51946f779c2c2147fa4008fd5e153c07e224a63\n"
    },
    {
      "commit": "ea8d607a9588db1585b39fa3bcdc2f46307a34ca",
      "tree": "4cd364ddae91f4b9a4283c517e1457c2524e9548",
      "parents": [
        "b32470c56b8873d12a0d908c8fc52efc78010fd4"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Sep 15 23:28:55 2018 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Sep 15 23:28:55 2018 +0100"
      },
      "message": "Bump Gerrit API version to 2.15.3\n\nUpdate Gerrit API version and the associated Joda time level\nused in stable-2.15\n\nChange-Id: I64ae3b881a0c51e601a2a7416e3e78abbcca2187\n"
    },
    {
      "commit": "b32470c56b8873d12a0d908c8fc52efc78010fd4",
      "tree": "87b961156b37f3cfe8faca943ec73fbd8cf070e4",
      "parents": [
        "5a0cc4ad2ff1404bfa7dff514385fb3581e7b6cb",
        "c3cd3427a44015dda3c1e165090c9b7c44875adb"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Sep 15 23:25:01 2018 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Sep 15 23:26:59 2018 +0100"
      },
      "message": "Merge branch \u0027stable-2.14\u0027 into stable-2.15\n\n* stable-2.14:\n  Align Gerrit API version to 2.14.12\n  Upgrade sbt plugins\n\nChange-Id: Ib0f2d009a244727c650057bdb108e564b8f59c38\n"
    },
    {
      "commit": "c3cd3427a44015dda3c1e165090c9b7c44875adb",
      "tree": "ab0f866e8bc9f151670b827b5ed80b1955e6da41",
      "parents": [
        "38b5e384ddb53cc7755a9070454a45b658517574"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Sep 15 23:06:43 2018 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Sep 15 23:16:58 2018 +0100"
      },
      "message": "Align Gerrit API version to 2.14.12\n\nSet the Gerrit API artifact version to 2.14.12 and the\nassociated 3rd party libraries.\n\nChange-Id: I806905cb2a731778c69fa67d72b13385e21867c2\n"
    },
    {
      "commit": "38b5e384ddb53cc7755a9070454a45b658517574",
      "tree": "8a72144b7328c1ab42174e4eacecf4f5061a7926",
      "parents": [
        "e801bbde817b3d6c5bc543e235f27c19636b5b19"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Sep 15 23:15:45 2018 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Sep 15 23:16:58 2018 +0100"
      },
      "message": "Upgrade sbt plugins\n\nUpgrade sbt-assembly and sbteclipse plugins to the latest\nreleased fix level: old releases are not accessible anymore\nand the sbt build failed.\n\nChange-Id: Id0745f5f0ed26fde4bd318e3e140c9eecff69b9e\n"
    },
    {
      "commit": "5a0cc4ad2ff1404bfa7dff514385fb3581e7b6cb",
      "tree": "98a3815337714d38ee0dbf60731edf4348297bac",
      "parents": [
        "5b65cc40eb502faa01cf6366bc7024f16bac42a8"
      ],
      "author": {
        "name": "Claudio Pacchiega",
        "email": "claudio.pacchiega@gmail.com",
        "time": "Sat Jan 27 15:07:18 2018 +0100"
      },
      "committer": {
        "name": "Claudio Pacchiega",
        "email": "claudio.pacchiega@gmail.com",
        "time": "Mon Jan 29 22:36:54 2018 +0000"
      },
      "message": "Add Issues info for enabling ETL aggregation\n\nExtract issues_codes and issues_links arrays from\nthe commit message description and add to Statistics.\n\nSee:\nhttps://gerrit-review.googlesource.com/Documentation/config-gerrit.html#commentlink\n\nChange-Id: Ibc0d3a4b26297281f56ccecd81c9c953dc335472\nJira-Id: GERICS-628\n"
    },
    {
      "commit": "5b65cc40eb502faa01cf6366bc7024f16bac42a8",
      "tree": "a541853a97a8cfacf907c3e98910286550071992",
      "parents": [
        "676f9de0fb432b5cf44c1246ceddbd0e912cb8a9"
      ],
      "author": {
        "name": "Stefano Galarraga",
        "email": "galarragas@gmail.com",
        "time": "Sat Jan 20 19:02:52 2018 +0000"
      },
      "committer": {
        "name": "Stefano Galarraga",
        "email": "galarragas@gmail.com",
        "time": "Sat Jan 20 20:17:03 2018 +0000"
      },
      "message": "Using GIT to define the plugin version number\n\nChange-Id: I9d66f18514bc2f597ea75ea80768520cf54692db\n"
    },
    {
      "commit": "676f9de0fb432b5cf44c1246ceddbd0e912cb8a9",
      "tree": "aa154abb2e337071935617659e668d40425bbc36",
      "parents": [
        "01e2a73fdd9ad0d90ea440f79a6700d8c014c3d4"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Jan 15 17:04:29 2018 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Jan 19 16:24:37 2018 +0000"
      },
      "message": "Make test-directory multi-threaded proof\n\nWhen running tests using sbt from CLI, all the test\nsuites are running in parallel threads. Test directories\nneed to include the thread name so to make sure they do\nnot randomly fail for conflicting directory names.\n\nChange-Id: Ie37ab60e8d620565b091fc9d3979a3df6a46e50c\n"
    },
    {
      "commit": "01e2a73fdd9ad0d90ea440f79a6700d8c014c3d4",
      "tree": "778d6780cab02abbfe3f81b9ea2c7b70d4f2ca02",
      "parents": [
        "3e74b22d301304ec3cbc2d44cc5989dea48671dc"
      ],
      "author": {
        "name": "Stefano Galarraga",
        "email": "galarragas@gmail.com",
        "time": "Fri Jan 12 18:49:57 2018 +0000"
      },
      "committer": {
        "name": "Stefano Galarraga",
        "email": "galarragas@gmail.com",
        "time": "Tue Jan 16 15:25:04 2018 +0000"
      },
      "message": "Adding extra field num_distinct_files field to track number of different files aggregated.\nAdding also list of files included in every commit\n\nChange-Id: I91ee6397bc44374deaf6ab80484e1391a118346b\nJira-Id: GERICS-619\n"
    },
    {
      "commit": "3e74b22d301304ec3cbc2d44cc5989dea48671dc",
      "tree": "8658ff22219a62f050d780347a16b72c8b757825",
      "parents": [
        "65103ba5c339addbcf1ab44532a52bfd2fdf74be"
      ],
      "author": {
        "name": "Claudio Pacchiega",
        "email": "claudio.pacchiega@gmail.com",
        "time": "Wed Jan 10 01:44:00 2018 +0100"
      },
      "committer": {
        "name": "Claudio Pacchiega",
        "email": "claudio.pacchiega@gmail.com",
        "time": "Tue Jan 16 14:01:41 2018 +0100"
      },
      "message": "Aggregate contributors by branch\n\nIf using the --extract-branches or -r flag then for each output line it is\noptionally added the set of branches to which the commits belong.\n\nJira-Id: GERICS-513\nChange-Id: I434497b9b6610ce68891465be5e7aac6147834b6\n"
    },
    {
      "commit": "65103ba5c339addbcf1ab44532a52bfd2fdf74be",
      "tree": "8c58a83f4e1e8fadf8967becd5522ead6c0f7b1f",
      "parents": [
        "5e2156e2a0c1edcd4f47ddb166331ca7bb7f2e6a"
      ],
      "author": {
        "name": "Stefano Galarraga",
        "email": "galarragas@gmail.com",
        "time": "Mon Jan 08 18:04:24 2018 +0000"
      },
      "committer": {
        "name": "Stefano Galarraga",
        "email": "galarragas@gmail.com",
        "time": "Thu Jan 11 10:26:39 2018 +0000"
      },
      "message": "Split merge commits related stats from the ones about non-merge commits.\n\nDid some small code refactoring to better support the separation\nPost review changes, refactored some of the test library code to streamline postconditions using ensuring statement\n\nJira-Id: GERICS-610\nChange-Id: Iaeda01475dd4616cf64ec8e4c28c26e49f019be3\n"
    },
    {
      "commit": "5e2156e2a0c1edcd4f47ddb166331ca7bb7f2e6a",
      "tree": "bf7ddc959763a852657771b7902dea27aa1396b5",
      "parents": [
        "7c714f82d88d75e29bbec8c7d870948812dc1be7"
      ],
      "author": {
        "name": "Fabio Ponciroli",
        "email": "ponch78@gmail.com",
        "time": "Fri Dec 29 12:15:26 2017 +0000"
      },
      "committer": {
        "name": "Fabio Ponciroli",
        "email": "ponch78@gmail.com",
        "time": "Fri Dec 29 15:34:35 2017 +0000"
      },
      "message": "Handle repos without commits\n\nCatch and handle exception raised when a repo\ndoesn\u0027t have any commit.\n\nLatest versions of gitective-core have a better handling of this case,\nhence the version bump up.\n\nChange-Id: I2743b5dbed46875e20cea56c828b07ee869a5dcf\n"
    },
    {
      "commit": "7c714f82d88d75e29bbec8c7d870948812dc1be7",
      "tree": "eff04b1c1a877ffba94d7b4bf01e1d4b61344e58",
      "parents": [
        "58c7e8411a792653ecb183ef76aff26b79d649c0"
      ],
      "author": {
        "name": "Claudio Pacchiega",
        "email": "claudio.pacchiega@gmail.com",
        "time": "Fri Nov 03 17:17:51 2017 +0100"
      },
      "committer": {
        "name": "Claudio Pacchiega",
        "email": "claudio.pacchiega@gmail.com",
        "time": "Fri Nov 10 14:14:34 2017 +0000"
      },
      "message": "Added documentation for aggregation parameter.\n\nChange-Id: I42596941d96f0cdb25496b56e30801fb7e98fdc9\n"
    },
    {
      "commit": "58c7e8411a792653ecb183ef76aff26b79d649c0",
      "tree": "ae4577b0e676ffeba8b07f4bd164db901023459c",
      "parents": [
        "1b54502f2a5e33e1c6e8f6c709a86075633f0959"
      ],
      "author": {
        "name": "Claudio Pacchiega",
        "email": "claudio.pacchiega@gmail.com",
        "time": "Fri Nov 03 17:19:37 2017 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu Nov 09 07:20:03 2017 +0000"
      },
      "message": "Allow statistics of empty commits without files\n\nGit allows creating a commit with simply a message and no file\nchanges associated. To avoid our commit statistics to blow up\nit is needed to protect against reduction of empty files stats.\n\nChange-Id: If491eb37e21a0e5d4540a39914943f77177c0f14"
    },
    {
      "commit": "1b54502f2a5e33e1c6e8f6c709a86075633f0959",
      "tree": "85e1e9c72503c721d8d78227177bfe7707113831",
      "parents": [
        "67ccb263571307c9f379b5393328fe087c4c2124"
      ],
      "author": {
        "name": "Claudio Pacchiega",
        "email": "claudio.pacchiega@gmail.com",
        "time": "Wed Sep 06 00:44:51 2017 +0200"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Oct 27 22:40:08 2017 +0100"
      },
      "message": "Extract statistics for each commit\n\nReturn additional aggregated statistics such as\nnum_files, added_lines, delete_lines for each row returned.\n\nChange-Id: Ib2ba0a905cf905a53dc102a867272c0d093647bb"
    },
    {
      "commit": "67ccb263571307c9f379b5393328fe087c4c2124",
      "tree": "8480d877d59294bc1da8b208a18cfae9346eadec",
      "parents": [
        "2468c3b4961784d7603ee9d1326cd9501d1b76ec"
      ],
      "author": {
        "name": "Claudio Pacchiega",
        "email": "claudio.pacchiega@gmail.com",
        "time": "Thu Aug 24 19:20:29 2017 +0200"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sun Aug 27 22:03:49 2017 +0000"
      },
      "message": "Pin sbt version to prevent failures due to sbt upgrades\n\nThe build.properties specifying sbt version 0.13.x is needed to be sure\nthat the plugin is compiled via legacy  sbt assembly even after the\nsbt 1.0 upgrade preventing sbt errors to appear.\n\nChange-Id: I71a9d03dc0c8546dadfd1096f96db846cfc99f38\n"
    },
    {
      "commit": "2468c3b4961784d7603ee9d1326cd9501d1b76ec",
      "tree": "427b7459e0f9cbc005a426e61ea9a6ff728c7f80",
      "parents": [
        "a06c4631b74cf6b954e50be6d545fd82654d4108"
      ],
      "author": {
        "name": "Claudio Pacchiega",
        "email": "claudio.pacchiega@gmail.com",
        "time": "Wed Aug 16 03:08:26 2017 +0200"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Aug 19 15:54:22 2017 +0100"
      },
      "message": "Aggregate contributors stats by day/month/year\n\nAdapt CommitHistogram to take care of various levels\nof aggregations, including HOUR, DAY, MONTH, YEAR.\n\nOutput records include the key field holding\n\u003cuseremail\u003e[/\u003cyear\u003e[/\u003cmonth\u003e[/\u003cday\u003e[/\u003chour\u003e]]]]\nso that consumers can understand which aggregation level has been used.\n\nAggregation is enabled with --aggregate --g aliases\nOmitting --aggregate will default to aggregation by email which is\nalmost identical to previous version (except for the added field key).\n\nChange-Id: I047a4d11e695afff56dd28a0b9c8d73e001b7782"
    }
  ],
  "next": "a06c4631b74cf6b954e50be6d545fd82654d4108"
}
