)]}'
{
  "log": [
    {
      "commit": "78b218a8d4485adec0cc4ea1283127d8913930bd",
      "tree": "539d6a9385258a4cba557b7422fe934fac666dac",
      "parents": [
        "9b39178b03772711546413cfe2cb0d0f9600bcba"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Oct 03 09:46:19 2025 -0700"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Oct 03 09:47:22 2025 -0700"
      },
      "message": "Add deprecation notice\n\nChange-Id: Iefd364fcaa740415938aeabc7af777555a43f1e3\n"
    },
    {
      "commit": "9b39178b03772711546413cfe2cb0d0f9600bcba",
      "tree": "73c80ef62637dcff55d02b30b8ecde0517e4c225",
      "parents": [
        "40f998091d97bae7447bda6863bca17d537537ee"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Jun 17 22:34:15 2024 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Jun 17 21:43:36 2024 +0000"
      },
      "message": "Reformat with GJF 1.7\n\nChange-Id: If8954e87809df2876cd95ac4b6fffd41f0f287dd\n"
    },
    {
      "commit": "40f998091d97bae7447bda6863bca17d537537ee",
      "tree": "c33970be468b5b5b7ecbef1681fe79425c07ab28",
      "parents": [
        "bc9823c1e276922e55e401275714850920edac96"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Jun 17 22:30:30 2024 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Jun 17 21:43:28 2024 +0000"
      },
      "message": "Expose package-protected registerRepoConnection as registerAndGetRepoConnection\n\ngit-refs-filter plugin tests need to access registerRepoConnection\nwhich isn\u0027t available anymore outside the com.google.gerrit.acceptance\npackage.\n\nDefine a new registerAndGetRepoConnection that allows to access the\nprotected method also outside the com.google.gerrit.acceptance package.\n\nChange-Id: I5732de229e99a6234f7dde2bdac4b10ab023a572\n"
    },
    {
      "commit": "bc9823c1e276922e55e401275714850920edac96",
      "tree": "060eb156e7db98e7f9ca5b9abb9b2c1bb702da36",
      "parents": [
        "55d1d426efd64d55e058f2b50a0c68821ad5c648"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Jun 15 23:03:28 2024 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Jun 15 23:03:31 2024 +0100"
      },
      "message": "Move AbstractGitDaemonTest to com.google.gerrit.acceptance\n\nI0214fc8ed made the registerRepoConnection() package-protected\ntherefore it isn\u0027t possible anymore for the AbstractGitDaemonTest\nto access it.\n\nMoving the AbstractGitDaemonTest to com.google.gerrit.acceptance\nas a workaroun, waiting to understand the rationale behind restricting\nthe access to registerRepoConnection().\n\nChange-Id: I2c2e8ed6f8822d960db471df44c4d79245e4a59e\n"
    },
    {
      "commit": "55d1d426efd64d55e058f2b50a0c68821ad5c648",
      "tree": "c447f68c49c04a93c03044d9383869fe18234eb0",
      "parents": [
        "9d8b1f67e5dd1ddf5fe4af168f92f4420fb38ad3",
        "a63edc5316a044604652fb1c5b338045deb3b6db"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Sep 11 21:53:14 2023 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Sep 11 21:53:22 2023 +0100"
      },
      "message": "Merge branch \u0027stable-3.5\u0027\n\n* stable-3.5:\n  Fetch change version from refdb on Git protocol v2\n  Do not cache negative results from open changes / timestamp lookups\n  Fix \u0027illegal format conversion\u0027 compilation error\n  follow-up to \"Exclude repo from ChangeCacheKey...\"\n  Exclude repo from ChangeCacheKey equals/hash code calculation\n\nChange-Id: If2e339ebb82cfb850ce98431e4324449c706b185\n"
    },
    {
      "commit": "a63edc5316a044604652fb1c5b338045deb3b6db",
      "tree": "72c9a055226d61728e8d32b24e2b82a67a1aee55",
      "parents": [
        "3784a929b70d30ba598326a9e19bb03fa6abc772",
        "3c4d4716169d291fce6b78f6ef3c7d2467845485"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Sep 11 21:47:37 2023 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Sep 11 21:51:12 2023 +0100"
      },
      "message": "Merge branch \u0027stable-3.4\u0027 into stable-3.5\n\n* stable-3.4:\n  Fetch change version from refdb on Git protocol v2\n  Do not cache negative results from open changes / timestamp lookups\n  follow-up to \"Exclude repo from ChangeCacheKey...\"\n  Exclude repo from ChangeCacheKey equals/hash code calculation\n\nChange-Id: I7be400b2c2584504e3b7f750387bafb946025616\n"
    },
    {
      "commit": "3c4d4716169d291fce6b78f6ef3c7d2467845485",
      "tree": "e1f5906c6eb971e7bbc666dfc82aff6432c4ac4f",
      "parents": [
        "28f3e8b7bab9126b0ac5a30176fa7fc9ead1aa8d"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Sep 09 03:20:10 2023 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Sep 11 21:41:55 2023 +0100"
      },
      "message": "Fetch change version from refdb on Git protocol v2\n\nThe Git protocol v2 has a reduced refs advertisement\nphase which is limited to the sole refs requested by\nthe client. The implications are that the change /meta\nrevision cannot be extracted anymore from the list of refs\npassed to the filter.\n\nUse a secondary lookup table based on the refdb, in order\nto avoid caching a status or timestamp using only\nthe change-id.\n\nBefore this change, the Git protocol v1 was working as\nexpected, however, requests made using protocol v2 and\nthe only ref pointing to the patch-set were resulting\nin serving stale data from the cache.\n\nThe cache key for the change open status and its\ntimestamp has the following three components:\n- project\n- change id\n- change /meta revision\n\nWhen the change /meta revision was not found in the\nincoming list of refs to filter, the cache lookup\nwas made by simply project and change id.\nThe consequence were disastrous because an open change\nwas cached as being open and never invalidated, even\nif later on it was abandoned or merged.\n\nThe fallback to a direct lookup into the refdb\nwould solve the problem, even though it may add an extra\nlookup with a small performance penalty.\n\nAdd IT test with Git protocol v2 for verifing that the fix works\nwhen the client would request a single patch-set ref to fetch.\n\nBug: Issue 299602346\nChange-Id: I9018dee8de0570857d214935f8f4a32b47960ae0\n"
    },
    {
      "commit": "28f3e8b7bab9126b0ac5a30176fa7fc9ead1aa8d",
      "tree": "ae3e4096a5aaf5bf472dd16aaae61c93e521744a",
      "parents": [
        "441d1ae37b3fd6394efee4b50ab56f3525d55201"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Sep 09 03:23:30 2023 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Sep 11 00:42:19 2023 +0100"
      },
      "message": "Do not cache negative results from open changes / timestamp lookups\n\nWhen the open changes and ts caches are failing to load their\nrespective data from the repository, the caching of the failure\nmay have disruptive consequences.\n\nIf the failure was just the result of an intermediate replication\nevent (e.g. a new patch-set has been been replicated but its associated\n/meta is still pending) the negative caching would result in making\nthe ref not discoverable.\n\nThe management of the loading failures from the cache is already\ncoded in the ForProjectWrapper and therefore there is no need to\nduplicate a similar logic in the caches as well.\n\nBug: Issue 299486879\nChange-Id: Ic8015238d1f61ad6c47ebdbf6519533dbfa7ec04\n"
    },
    {
      "commit": "3784a929b70d30ba598326a9e19bb03fa6abc772",
      "tree": "8db1d37d9fc2548b7d17ff3c8969f5174f50c274",
      "parents": [
        "11373a8b0a989c86230892af464a64870f0fb59f"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Wed Apr 13 19:04:09 2022 +0200"
      },
      "committer": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Fri Jun 02 10:11:12 2023 +0100"
      },
      "message": "Fix \u0027illegal format conversion\u0027 compilation error\n\nUsing \u0027%d\u0027 to format `Change.Id` objects causes a compilation error.\nLog the underlying change number instead.\n\nBug: Issue 15833\nChange-Id: I14505a96f8952faad041afb027b0bc5a3e29c431\n"
    },
    {
      "commit": "441d1ae37b3fd6394efee4b50ab56f3525d55201",
      "tree": "0040688a76de6764f0c93588147b73d488447d36",
      "parents": [
        "b5a62f24fc36e6e1cc6eb7bb3f8c3a5d7166e8b8"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Tue Jan 24 21:03:42 2023 +0100"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Tue Jan 24 21:06:13 2023 +0100"
      },
      "message": "follow-up to \"Exclude repo from ChangeCacheKey...\"\n\nSimplify the unit tests by using repository mock instead of\ninstantiation of the \u0027InMemoryRepository\u0027 repository.\n\nChange-Id: Ib2a53ad06e882d7bde6e63a1826a68aad9971104\n"
    },
    {
      "commit": "b5a62f24fc36e6e1cc6eb7bb3f8c3a5d7166e8b8",
      "tree": "ad01e49eb29c4a6d8b3514fbf02237be4e8f4bd3",
      "parents": [
        "11373a8b0a989c86230892af464a64870f0fb59f"
      ],
      "author": {
        "name": "Marcin Czech",
        "email": "maczech@gmail.com",
        "time": "Mon Jan 23 21:24:15 2023 +0100"
      },
      "committer": {
        "name": "Marcin Czech",
        "email": "maczech@gmail.com",
        "time": "Tue Jan 24 18:13:24 2023 +0100"
      },
      "message": "Exclude repo from ChangeCacheKey equals/hash code calculation\n\nWithout this change ChangeCacheKey.repo field is a part\nof the equals/hash code calculation. Other Gerrit libraries can\nprovide wrappers around repository instance(for example global-refdb\nwraps repository with SharedRefDbRepository). This means that we\ncannot guarantee that repo object is the same instance for all\nChangeCacheKey entries. This will cause the constant cache entries\nreloading.\n\nBug: Issue 16638\nChange-Id: Ie86d249741cb1770b6ca22f2f7ed30655a142ed4\n"
    },
    {
      "commit": "9d8b1f67e5dd1ddf5fe4af168f92f4420fb38ad3",
      "tree": "7a25307c7e373815372c04c98d497059027dba05",
      "parents": [
        "7d0b1345005aa28d1d0c87a78b95e2cb5e5af27f"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Wed Apr 13 19:04:09 2022 +0200"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Sat Apr 16 12:50:46 2022 +0000"
      },
      "message": "Fix \u0027illegal format conversion\u0027 compilation error\n\nUsing \u0027%d\u0027 to format `Change.Id` objects causes a compilation error.\nLog the underlying change number instead.\n\nBug: Issue 15833\nChange-Id: I14505a96f8952faad041afb027b0bc5a3e29c431\n"
    },
    {
      "commit": "7d0b1345005aa28d1d0c87a78b95e2cb5e5af27f",
      "tree": "9eb7490beca44f7494d9740db58bf370bdbb650b",
      "parents": [
        "11373a8b0a989c86230892af464a64870f0fb59f"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Wed Apr 13 17:07:07 2022 +0200"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Wed Apr 13 17:10:16 2022 +0200"
      },
      "message": "Fix compilation issue by using Instant API\n\nCalling `getLastUpdatedOn()` on a `Change` object now returns an\n`Instant` rather than a `JavaUtilDate`.\n\nUsing .getTime() on it fails compilation for a `cannot find symbol`\nerror.\n\nUse instead the `toEpochMilli()` to return the number of milliseconds\nelapsed since epoch.\n\nBug: Issue 15833\nChange-Id: I84f53a89e67c295ec13051b3f5e6e4252efa54fd\n"
    },
    {
      "commit": "11373a8b0a989c86230892af464a64870f0fb59f",
      "tree": "9a65cfbb3e8eb84a292b7f75aff58290f2fcd2d3",
      "parents": [
        "dac4ac8ae9b6bf8e7f844fdfb5ff22dc3454dade",
        "a93eff7224da3d3d453bdd946c9fb077980972c3"
      ],
      "author": {
        "name": "Marcin Czech",
        "email": "maczech@gmail.com",
        "time": "Tue Feb 08 21:38:31 2022 +0100"
      },
      "committer": {
        "name": "Marcin Czech",
        "email": "maczech@gmail.com",
        "time": "Tue Feb 08 21:38:31 2022 +0100"
      },
      "message": "Merge branch \u0027stable-3.3\u0027\n\n* stable-3.3:\n  Add the configuration for the merge changes grace time\n  Introduce change-ts cache for showing changes just merged\n  Extract the change cache key to a separate class\n  Align open changes cache class name with its name\n  Introduce cache for open changes\n  Reduce spamming by lowering to debug the invalid changes\n\nChange-Id: I4c5ebf3a3d854cc25bdb91115b751433443655b6\n"
    },
    {
      "commit": "a93eff7224da3d3d453bdd946c9fb077980972c3",
      "tree": "9a65cfbb3e8eb84a292b7f75aff58290f2fcd2d3",
      "parents": [
        "d9d89939fb1783744b3315500231d0dd85223a73"
      ],
      "author": {
        "name": "Marcin Czech",
        "email": "maczech@gmail.com",
        "time": "Tue Jan 11 22:58:18 2022 +0100"
      },
      "committer": {
        "name": "Marcin Czech",
        "email": "maczech@gmail.com",
        "time": "Wed Jan 12 22:54:43 2022 +0100"
      },
      "message": "Add the configuration for the merge changes grace time\n\nAllow per project configuration of the merge changes grace time (by\ndefault 24h).\n\nChange-Id: Icf28a3cf274b771e1992e694d284df4ee1166a03\n"
    },
    {
      "commit": "d9d89939fb1783744b3315500231d0dd85223a73",
      "tree": "b916476adab41ddb7990e2108a857a0f4189e0f4",
      "parents": [
        "f4bbb0caed91f84b8b0b3febfd95dd8200b9490d"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Jan 11 01:04:46 2022 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Jan 12 00:47:35 2022 +0000"
      },
      "message": "Introduce change-ts cache for showing changes just merged\n\nMany CI/CD systems perform validation also on changes just\nmerged as post-merge build. Keep the refs of the changes\nstill visible for a grace time for allowing them to be\nfetched by builders.\n\nThe grace time is fixed to 24h: the configurability\nis addressed on the follow-up change.\n\nChange-Id: I478c6f287a90cad2acc32187316789cd5463513c\n"
    },
    {
      "commit": "f4bbb0caed91f84b8b0b3febfd95dd8200b9490d",
      "tree": "921e32e84d2135e3f9b625afe028a7361447a320",
      "parents": [
        "db6cf74f578147cc39d8aaba8fe80017454e2e43"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Jan 11 00:01:50 2022 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Jan 11 20:15:43 2022 +0000"
      },
      "message": "Extract the change cache key to a separate class\n\nThis is a preparation change for reusing the cache key\nin the next forthcoming cache last update timestamp\ncache.\n\nChange-Id: I3db3b6e7fb6d9e24424cd4e1d9ab228ee8b5cd25\n"
    },
    {
      "commit": "db6cf74f578147cc39d8aaba8fe80017454e2e43",
      "tree": "a909816d87b61ed96afe92c23138cc07f3ebbd36",
      "parents": [
        "546b777103303f89792cae27a7de2b5f07f20574"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Jan 10 23:42:55 2022 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Jan 10 23:42:55 2022 +0000"
      },
      "message": "Align open changes cache class name with its name\n\nDuring the review of I36467dbd7c1c the name of the cache\nwas changed to OPEN_CHANGES_CACHE but the class name\npreserved the old original name.\n\nAlign the class name with the agreed name of the\ncache.\n\nChange-Id: Id16064dd760fcf33b1215c629a95e2784c6f682e\n"
    },
    {
      "commit": "546b777103303f89792cae27a7de2b5f07f20574",
      "tree": "3e4cf00411631cb4651b2525be0dd1e2a76fe180",
      "parents": [
        "ec6956dac5c5ebcc9212ad1a54c777e737a2baf5"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Mon Jan 03 15:09:09 2022 +0100"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Tue Jan 04 15:07:47 2022 +0100"
      },
      "message": "Introduce cache for open changes\n\nGit-refs-filter plugin relies on change_notes when filtering for open\nchanges.\n\nIn order to speed up access to them, it is advised to enable caching for\nchange_notes, as documented in the README.md.\n\nWhilst this improves the _accessing_ of the change note, it does nothing\nto speed up the parsing of the change itself, in order to gather the\nchange status information, needed to assess whether the change is\nactually open.\n\nIntroduce an additional in-memory cache to store previously computed\nopen/close change statuses to avoid processing them over and over\nagain.\n\nExplicit cache invalidation is not necessary, since the change revision\nis part of the cache key, so that previous entries automatically become\nobsolete once a change status is updated.\n\nBug: Issue 15484\nChange-Id: I36467dbd7c1ce646d97be410acbae564fa4a675f\n"
    },
    {
      "commit": "ec6956dac5c5ebcc9212ad1a54c777e737a2baf5",
      "tree": "8113e6bc029ae0b2ebcf7598d5fdc616c6508040",
      "parents": [
        "dac4ac8ae9b6bf8e7f844fdfb5ff22dc3454dade"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Dec 22 22:49:27 2021 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Dec 22 22:49:27 2021 +0000"
      },
      "message": "Reduce spamming by lowering to debug the invalid changes\n\nWhen a repository contains invalid change refs, the notification\nwould help only the Gerrit admin interested in that information\nand does not make sense to trace as warning the same warning\nover and over again.\n\nChange-Id: I2d7c62aeb1e827c2f3346d004737dc172caa290c\n"
    },
    {
      "commit": "dac4ac8ae9b6bf8e7f844fdfb5ff22dc3454dade",
      "tree": "0202c220e535ca3261b636ff9d1f7bde16bbf14b",
      "parents": [
        "2c9edca37a6bfc57df76fff5f5ec692165429246"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Oct 02 00:31:16 2021 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu Oct 14 20:35:19 2021 +0100"
      },
      "message": "Avoid looking up refs for all filtered changes\n\nWhen filtering a huge list of refs all the closed\nchanges need to be identified and hidden; however, the mere\nlookup of the changes\u0027 SHA1s from the repository\u0027s ref-database\ncan cause a considerable system load because of the high\nnumber of change refs.\n\nThe initial list of refs to be filtered contains already\nall the \u0027/meta\u0027 refs and their associated SHA1s hence it can\nbe reused for looking up the change-id to their latest version\ninstead of re-reading the same information from the repository\non disk.\n\nDepends-On: https://gerrit-review.googlesource.com/c/gerrit/+/319756\nChange-Id: I164addd6abc7c1dff1cfeedcec27415e6b88f3b3\n"
    },
    {
      "commit": "2c9edca37a6bfc57df76fff5f5ec692165429246",
      "tree": "4566c2cea97afd0125c9c4c8c11917d2e2ba5040",
      "parents": [
        "2c9f2375bdc9147737ecf5d9367bcf707fd394f7"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Sep 24 21:52:13 2021 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Sep 27 21:25:28 2021 +0000"
      },
      "message": "Allow to configure hideRefs for extra refs prefix to hide/show\n\nIntroduce the \u0027git-refs-filter\u0027 configuration settings\nin gerrit.config which allows to specify `hideRefs\u0027 configs\nsimilarly to what Git does, see [1]\n\n[1] https://git-scm.com/docs/git-config/2.17.0#Documentation/git-config.txt-receivehideRefs\n\nChange-Id: Ib6a703ecf2c977b49689743826b95b8b985cf734\n"
    },
    {
      "commit": "2c9f2375bdc9147737ecf5d9367bcf707fd394f7",
      "tree": "aa3a8b1b1b5296383c0fc5ab82fa386c62941145",
      "parents": [
        "47145d86482aa41eeda67c7033a1092c5dfe6c85"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Sep 24 21:53:25 2021 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Sep 27 19:40:17 2021 +0000"
      },
      "message": "Clarify the scope of use for git-refs-filter\n\nChange-Id: I98612d5f3a26f45ebcb897527eebc2e9408622a9\n"
    },
    {
      "commit": "47145d86482aa41eeda67c7033a1092c5dfe6c85",
      "tree": "9e44f712df5611938e641d19e7b187d28eb27e8e",
      "parents": [
        "62e0be5127a2dd33e15dc954974ce95768498719"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu Sep 16 01:28:04 2021 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu Sep 23 18:59:45 2021 +0000"
      },
      "message": "Do not expose cache-automerge refs\n\nChange-Id: I0dc28f7f73034b0198da304284b12a0469f63cb2\n"
    },
    {
      "commit": "62e0be5127a2dd33e15dc954974ce95768498719",
      "tree": "ce230eb97097ab9da3b3e9c303386e4d244dc15e",
      "parents": [
        "59e701d960f7cce36522230b994bb19169081146"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu Sep 16 00:09:15 2021 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu Sep 23 00:35:08 2021 +0100"
      },
      "message": "Filter out edit refs\n\nUser\u0027s private edits are not part of an open change\nand should not be served or advertised.\n\nThe refs could be in theory made invisible by playing\nwith the ACLs. However, having a complex ACL would have\na detrimental impact on the overall performance of\nthe security evaluation. It does not make sense to\nexpose the user\u0027s private edits and they would risk\nto make a clone failing with a wants-not-valid error.\n\nChange-Id: Idbae7ed339515daa44df3f0093a51f6343b4e8d5\n"
    },
    {
      "commit": "59e701d960f7cce36522230b994bb19169081146",
      "tree": "f5e2cd03df863ddefae89fe58e4f0652dc18bde7",
      "parents": [
        "770f3a53fe8a980d39af5aceafd3dbb3ac41c81a"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Sep 15 21:35:53 2021 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Sep 22 22:18:46 2021 +0000"
      },
      "message": "Reuse existing Repository for refs filtering\n\nThe git-refs-filter plugin is meant to be used\nfor repositories that may have millions of refs\nassociated with hundreds of thousands of changes.\n\nOpening and closing the repository for every change\nto be filtered has a significant performance degradation\nwhich could also bring the entire clone to fail for\ntimeout.\n\nThe Repository object is always the same for the filtering\nof all changes and therefore it makes sense to reuse it\ninstead of wasting CPU cycles in the open/close of the same\nrepository million of times.\n\nChange-Id: I0e15c6ce53db56486a29a3c009f724f5a92ff300\n"
    },
    {
      "commit": "770f3a53fe8a980d39af5aceafd3dbb3ac41c81a",
      "tree": "61ca7c6d4aa4b5da5862937b01c6b32f812c8a30",
      "parents": [
        "e8972220200f8abab76825a84c5c9bb339939bf8"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Sep 15 01:13:16 2021 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Sep 22 23:14:26 2021 +0100"
      },
      "message": "Filter out non-existent changes from advertised refs\n\nThe project may contain refs that are not associated to\nany change, possibly because of corruption issues or errors\nin migrating them to NoteDb.\n\nConsider any non-existent changes as non-existent refs and\navoid serving them in the advertised refs list.\n\nChange-Id: I8df20d299f753fdbf206503f8ca02bff99d8b7e6\n"
    },
    {
      "commit": "e8972220200f8abab76825a84c5c9bb339939bf8",
      "tree": "9e9670c77d090176d399e551caad8102cbe7e89e",
      "parents": [
        "23cc86cdeffcdc8907fdfce3dcd2a1afe8bee099"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Sep 15 00:11:46 2021 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Sep 15 22:52:37 2021 +0100"
      },
      "message": "Rely on Gerrit change_notes cache for filtering\n\nThe git-refs-filter makes sense only when it provides\na significant performance improvement from a network\nand CPU perspective.\n\nDo not scan for all refs on the repository because it\nwould consume too much CPU and I/O. Rely on Gerrit\u0027s\npre-defined caching abilities on change notes.\n\nChange-Id: I2ad7496e2f8f5a1860245de6460fc64bfe8c0905\n"
    },
    {
      "commit": "23cc86cdeffcdc8907fdfce3dcd2a1afe8bee099",
      "tree": "0bfce067dc562cdb627aece75e62355abf52556f",
      "parents": [
        "f7e73ec0bbf0f4d36ba61c8a008f051d918189f5"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Fri Jan 31 19:13:05 2020 +0100"
      },
      "committer": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Sat Feb 01 08:46:42 2020 +0100"
      },
      "message": "Adjust to core moving to List interface for ref filtering\n\nChange I1f60c3ca0 changed the API to List interface for ref filtering.\n\nChange-Id: I90e73625bd8276e13cf373ad9360b5658cb61516\n"
    },
    {
      "commit": "f7e73ec0bbf0f4d36ba61c8a008f051d918189f5",
      "tree": "abbab73312c75f7a690e462acc5e727dc4cc48d9",
      "parents": [
        "2de57f9c71d4273391e7751041f20b8b17090f15"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Jun 01 01:59:10 2019 +0100"
      },
      "committer": {
        "name": "David Ostrovsky",
        "email": "david.ostrovsky@gmail.com",
        "time": "Sat Feb 01 07:45:36 2020 +0000"
      },
      "message": "Adapt to the latest allowCapability API change on master.\n\nGerrit master refactored the way integration tests should configure\nglobal capabilities.\n\nChange-Id: Ia3ef6151cbb489da2aba09849cb1e3f2cf330784\n"
    },
    {
      "commit": "2de57f9c71d4273391e7751041f20b8b17090f15",
      "tree": "13cbda0e316e3b24f55525a82df04832bd0d724c",
      "parents": [
        "0d35f594e4f0b085dad2f461e95b728df93fbec6"
      ],
      "author": {
        "name": "John Viklund",
        "email": "john.viklund@effnet.com",
        "time": "Mon Dec 16 08:06:07 2019 +0100"
      },
      "committer": {
        "name": "John Viklund",
        "email": "john.viklund@effnet.com",
        "time": "Mon Dec 16 08:06:07 2019 +0100"
      },
      "message": "Remove explicit Project.NameKey import\n\nChange-Id: I9d381251b66c4ed77d54780033ef309724e66734\n"
    },
    {
      "commit": "0d35f594e4f0b085dad2f461e95b728df93fbec6",
      "tree": "4a3b2eda617a41cc36c3e712b7fad8f7c4cfae5a",
      "parents": [
        "5078bbb61e0de639130ec3652fe5b1f04b5e2666"
      ],
      "author": {
        "name": "John Viklund",
        "email": "john.viklund@effnet.com",
        "time": "Fri Dec 13 10:56:00 2019 +0100"
      },
      "committer": {
        "name": "John Viklund",
        "email": "john.viklund@effnet.com",
        "time": "Fri Dec 13 11:10:30 2019 +0100"
      },
      "message": "Rename reviewdb package to entities\n\nChange-Id: I62d54c020be6b81388fc2c84005146f76d068b69\n"
    },
    {
      "commit": "5078bbb61e0de639130ec3652fe5b1f04b5e2666",
      "tree": "cb050656f706f436d5177dc64953aa9743ecfb3f",
      "parents": [
        "f681b01839e5a80ba6ac3d1d0da4cf3163a439a2"
      ],
      "author": {
        "name": "James Hartig",
        "email": "fastest963@gmail.com",
        "time": "Wed May 29 15:09:39 2019 -0400"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sat Jun 01 01:42:18 2019 +0100"
      },
      "message": "Adapt to Gerrit v3.0 backend and test APIs\n\nRestore the module functionality by adapting to the new\npermission backend APIs and acceptance test framework\nin Gerrit v3.0.\n\nChange-Id: I823e1b399fb4a3daacd639068fb212355f774a55\n"
    },
    {
      "commit": "f681b01839e5a80ba6ac3d1d0da4cf3163a439a2",
      "tree": "1f090f838837253a1bed083fe511541b3f750a6e",
      "parents": [
        "b2097c5cf114940a932d6b68e29ba7d20309d3b2"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Dec 11 16:26:45 2018 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Dec 17 09:22:07 2018 +0000"
      },
      "message": "Initial commit of the closed refs filtering module\n\nThe new refsfilter Gerrit module allows to reduce the footprint\nof the Git refs advertizing phase by hiding all the refs associated\nto non-live changes.\n\nTypical scenario is a CI build system: as closed changes (merged, abandoned)\nare not live anymore and would never be built, they are filtered out of\nthe Git advertizing phase, saving a lot of processing from both client\nand server side.\n\nAnother typical scenario is Gerrit slave replication for development\npurposes. Typically you do not work anymore on closed changes and\nthere is little or even no value in getting those refs advertized\nand replicated to remote sites.\n\nChange-Id: I4636bc79bfc7b3290c4d491a638cacc8318d43a7\n"
    },
    {
      "commit": "b2097c5cf114940a932d6b68e29ba7d20309d3b2",
      "tree": "07599a39555268b27c55b09d5e17cd18b80dc554",
      "parents": [],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Aug 18 14:31:55 2017 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Dec 11 16:16:07 2018 +0000"
      },
      "message": "Repository created for an Apache 2.0 project"
    }
  ]
}
