)]}'
{
  "log": [
    {
      "commit": "7090927136857b5abaa22604e538813989f2559d",
      "tree": "c772cb96fb308fe3209260743e220c4d2631bfe9",
      "parents": [
        "baedbddad71a24ae2c564b22ad38cd1994826a4d"
      ],
      "author": {
        "name": "Thomas Dräbing",
        "email": "thomas.draebing@sap.com",
        "time": "Tue Nov 25 10:12:34 2025 +0100"
      },
      "committer": {
        "name": "Thomas Dräbing",
        "email": "thomas.draebing@sap.com",
        "time": "Wed Feb 25 00:28:52 2026 -0800"
      },
      "message": "Lint with buildifier 4.0\n\nChange-Id: I26bac7e37facbc7d4ad7407d1b254aca0275f0b8\n"
    },
    {
      "commit": "baedbddad71a24ae2c564b22ad38cd1994826a4d",
      "tree": "c16ef58f32dc03ce4c95b2b6f6d5de019bf57837",
      "parents": [
        "b762447de5adb661436ea924713bf4e6bc786d13"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Wed Feb 11 21:50:09 2026 +0100"
      },
      "committer": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Wed Feb 11 22:04:59 2026 +0100"
      },
      "message": "BUILD: delete-project: Remove redundant Mockito dependency\n\nMockito is already reachable transitively from\nplugins/delete-project:delete-project_tests, e.g.:\n\n  bazel query \u0027somepath(plugins/delete-project:delete-project_tests,\n                        //lib/mockito)\u0027\n\nRemove the explicit dependency to avoid duplication and keep the\nBUILD file minimal.\n\nChange-Id: I7a305da2e3feaa9537f15127433bd86068e79b0f\n"
    },
    {
      "commit": "b762447de5adb661436ea924713bf4e6bc786d13",
      "tree": "416da5c4c041b7f0465594e24130b4a2a2bab829",
      "parents": [
        "93bfd1cf9d0426c69b9e2b01d71f2b63e3356d9e"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Mon Feb 09 15:43:57 2026 +0100"
      },
      "committer": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Mon Feb 09 13:17:10 2026 -0800"
      },
      "message": "Use commons-io from Gerrit plugin API\n\ncommons-io is now provided by Gerrit itself and included in\nrelease.war. Consume it from the Gerrit plugin API and stop shading it\ninto the delete-project plugin.\n\nDepends-On: https://gerrit-review.googlesource.com/c/gerrit/+/549767\nChange-Id: I6f8bad63d5cbaab21bc731b8ba6929c35ba6992c\n"
    },
    {
      "commit": "93bfd1cf9d0426c69b9e2b01d71f2b63e3356d9e",
      "tree": "e5c2d8bbc46fbd329654ee34d280a252039e4cea",
      "parents": [
        "47e8409f12479b17647271f3b1ba04d9cfb147aa"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Thu Dec 18 09:43:49 2025 +0000"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Thu Dec 18 09:43:49 2025 +0000"
      },
      "message": "Run GJF on project\n\nChange-Id: I64ba43d4701ee646f487e1fa316abc8fbcc920b5\n"
    },
    {
      "commit": "47e8409f12479b17647271f3b1ba04d9cfb147aa",
      "tree": "996bc740ba142f759ae6d944bf2196cb82f3c250",
      "parents": [
        "626a1b239a6a44185a1bb72b94015e6b73fa7017"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Wed Dec 10 14:29:43 2025 +0000"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Thu Dec 18 09:43:19 2025 +0000"
      },
      "message": "Extract deletion logic\n\nTake advantage of the already extracted logic between archiving and\ndeletion and further extract common logic.\n\nBug: Issue 461332435\nChange-Id: I750c57cbbf300fee6f48ed7eae1d38da6a6a6964\n"
    },
    {
      "commit": "626a1b239a6a44185a1bb72b94015e6b73fa7017",
      "tree": "00ce4fe5178155628d6bdb02021a002675e11e8a",
      "parents": [
        "ce9fda30683b5b6f4bb5bf503e5a72001e708801"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Tue Dec 09 18:44:51 2025 +0000"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Thu Dec 18 09:42:33 2025 +0000"
      },
      "message": "Refactor common logic between Archiving and Deletion flows\n\nAs archiving of repositories and deletion of trash folders share a lot\nof common logic, extract common parts in a super class in order to\nfacilitate readability and maintainability.\n\nBug: Issue 461332435\nChange-Id: I27deb855b095d8e73d5b09701b67c27fe8c759e5\n"
    },
    {
      "commit": "ce9fda30683b5b6f4bb5bf503e5a72001e708801",
      "tree": "5c0a7833b101cf5bc357b1627e702bd0ae72edc7",
      "parents": [
        "9084b1406aba2f1d16fc934c2dc4eb2649e9571d"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Thu Dec 04 09:32:33 2025 +0000"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Wed Dec 17 17:03:38 2025 +0000"
      },
      "message": "Allow scheduling archiving in the same way as deletion\n\nCurrently it\u0027s possible to schedule the deletion of trash folders, but\nnot the archiving of repositories, which operates on its own, non\nconfigurable, schedule. This creates confusions as to why there are two\nseparate schedules for two very similar tasks.\n\nAlign scheduling of repositories archiving to that of trash folder\ndeletion.\n\nBug: Issue 461332435\nChange-Id: I27595912142693143b1352fee0e13b6321e385de\n"
    },
    {
      "commit": "9084b1406aba2f1d16fc934c2dc4eb2649e9571d",
      "tree": "dfee35c0fd67700f056bde61e9224cbc5df0a60b",
      "parents": [
        "33bcbf447ef158d57905f6b0cd124f4829190dbc"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Tue Dec 16 11:27:07 2025 +0000"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Wed Dec 17 13:58:49 2025 +0000"
      },
      "message": "Delete trash folders on a regular interval\n\nCurrently if no schedule is configured, deletion of trash folders only\nhappens at start-up. This means that long running Gerrit instances would\nnot delete projects until Gerrit was restarted. As we\u0027ve now moved the\ntrash folders to their own separate directory, this operation should no\nlonger take extended period of times and we can therefore run this\nperiodically.\n\nThis should be considered a breaking change, as we\u0027re now deleting\nprojects at a regular interval if no schedule is defined rather than\njust once at Gerrit startup.\n\nBug: Issue 461332435\nChange-Id: Ifaa9d08c72278dd50a75db19f6a1eb1304d3ccc8\n"
    },
    {
      "commit": "33bcbf447ef158d57905f6b0cd124f4829190dbc",
      "tree": "c6f88dedba7b426f9c9217d45197f5482c2af238",
      "parents": [
        "ff4179a04cc291e2f6fd3168af9bbca2064f4829"
      ],
      "author": {
        "name": "Thomas Dräbing",
        "email": "thomas.draebing@sap.com",
        "time": "Fri Dec 05 09:09:44 2025 +0100"
      },
      "committer": {
        "name": "Thomas Dräbing",
        "email": "thomas.draebing@sap.com",
        "time": "Fri Dec 05 09:09:44 2025 +0100"
      },
      "message": "Fix Styles type reference in tests\n\nChange-Id: If0f3a38f9b7601fda3c275fe973f8e2601330bdf\n"
    },
    {
      "commit": "ff4179a04cc291e2f6fd3168af9bbca2064f4829",
      "tree": "3bf59a15ce7fa8efdc419a39a6b73d8e045906aa",
      "parents": [
        "673bbb7bd59acdf4eec4986e70b560dd6f162178"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Wed Dec 03 13:36:17 2025 +0000"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Wed Dec 03 08:35:27 2025 -0800"
      },
      "message": "Simplify calculation of overdue files list\n\nThe casting to FileTime is needless and the compareTo method is not as\nclear to read as a simple great than operator.\n\nChange-Id: Ib736a7e92324e165635c5271fe24bdc4bc977e0f\n"
    },
    {
      "commit": "673bbb7bd59acdf4eec4986e70b560dd6f162178",
      "tree": "18b03f59b3ebdd8938cd15e1b3bd9fad54bf9738",
      "parents": [
        "64c6d5642bb1b225c570857d436d4f0edd0d55c8"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Fri Nov 21 18:54:35 2025 +0000"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Fri Nov 28 11:10:34 2025 +0000"
      },
      "message": "Move projects to delete into separate folder\n\nCurrently when projects are deleted they sometimes leave behind spurious\nfiles, that, for one reason or another(i.e. File Handle still in use)\ncould not be deleted at the time the command run.\n\nThis is expected, so much so that, on a regular, configurable interval,\nwe scan for left over repositories to delete in Gerrit\u0027s git data folder\nfor any of these leftover folders.\n\nIf the installation has thousands of repositories, scanning the whole\ngit data folder can become very I/O intensive occupying precious\nresources.\n\nMove folders to be deleted to a configurable directory within the git\ndata folder, so that we only need to scan this, rather than the whole\ngit data folder.\n\nBug: Issue 461414275\nChange-Id: Iefdd54f1e2a8f2c97477a1ab4b9d87779c0255b9\n"
    },
    {
      "commit": "64c6d5642bb1b225c570857d436d4f0edd0d55c8",
      "tree": "e5ee01af714e1e008f51d92fc6128a42d6ceeaff",
      "parents": [
        "a7e3a09c15725128945259e6a8e2244be66e3893"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sun Nov 23 20:59:50 2025 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sun Nov 23 21:00:49 2025 +0000"
      },
      "message": "Add missing curly brackets in break condition\n\nGerrit uses curly brackets as code style for all blocks.\n\nRelease-Notes: skip\nChange-Id: I74509dbdb402432ce8b5da6103f4df7fcc82d07b\n"
    },
    {
      "commit": "a7e3a09c15725128945259e6a8e2244be66e3893",
      "tree": "049a3c6010206c54be1786bddc9ea6a74e9838bb",
      "parents": [
        "c727c4a9f1314c3dcd32a824109dacce933d2ce8"
      ],
      "author": {
        "name": "Fabio Ponciroli",
        "email": "ponch78@gmail.com",
        "time": "Wed Nov 19 16:01:57 2025 +0100"
      },
      "committer": {
        "name": "Fabio Ponciroli",
        "email": "ponch78@gmail.com",
        "time": "Wed Nov 19 16:01:57 2025 +0100"
      },
      "message": "Add start and stop logs for DeleteTrashFolder task\n\nChange-Id: I75ea953269a489f70a2ca44d959c10d01da8e1c1\n"
    },
    {
      "commit": "c727c4a9f1314c3dcd32a824109dacce933d2ce8",
      "tree": "3ab48ad6c9e3431c3630205115ceececa6fc3526",
      "parents": [
        "6c444c83eb809236a994558166f5a59fe945d25b"
      ],
      "author": {
        "name": "Fabio Ponciroli",
        "email": "ponch78@gmail.com",
        "time": "Wed Nov 19 15:46:03 2025 +0100"
      },
      "committer": {
        "name": "Fabio Ponciroli",
        "email": "ponch78@gmail.com",
        "time": "Wed Nov 19 16:00:26 2025 +0100"
      },
      "message": "Fix reading of deleteTrashFoldersMaxAllowedTime\n\nThe configuration value deleteTrashFoldersMaxAllowedTime was previously\nlooked up by passing the config key name into\ngetTrashFoldersMaxAllowedTimeFromConfig(), which caused the method to\nre-read configuration instead of using the already available plugin\nconfig. This leads to the value not being interpreted correctly.\n\nUpdate the call site to pass the resolved config string from the plugin\nConfig instance, ensuring the duration is parsed from the expected\nsource. Expose the default trash folder timeout constant so tests can\nverify fallback behavior.\n\nChange-Id: I7f39eb50a79423211dd99231f4859f775a0c2628\n"
    },
    {
      "commit": "6c444c83eb809236a994558166f5a59fe945d25b",
      "tree": "17be9ac12934b577988c633063f7df8559a9d989",
      "parents": [
        "cd7f488a7954fd6e68a7c8b5153b8fc615c25d3a"
      ],
      "author": {
        "name": "Fabio Ponciroli",
        "email": "ponch78@gmail.com",
        "time": "Wed Nov 12 18:35:58 2025 +0100"
      },
      "committer": {
        "name": "Fabio Ponciroli",
        "email": "ponch78@gmail.com",
        "time": "Tue Nov 18 04:19:29 2025 -0800"
      },
      "message": "Bound trash folder deletion with configurable timeout\n\nLarge sites could spend too long scanning and deleting trash folders,\nleading to prolonged intensive I/O and increased system load. This\nchange introduces a time cap for the deletion.\n\nA new configuration key, `deleteTrashFoldersMaxAllowedTime` (default: 10\nmin), bounds the execution time of the trash-folder sweep.\n\nThis keeps long runs from monopolizing the worker while preserving the\nexisting behavior within the allotted time window. Subsequent runs\nhandle any remaining trash folders.\n\nChange-Id: I964c52ff74da7dba268128063a68d57cdf39a8df\n"
    },
    {
      "commit": "cd7f488a7954fd6e68a7c8b5153b8fc615c25d3a",
      "tree": "fbf99173f4cc94d979e6ba0ebfdfe50ab4e4f925",
      "parents": [
        "f48d57b81da0e00c7fc84174989d01f107881740"
      ],
      "author": {
        "name": "Fabio Ponciroli",
        "email": "ponch78@gmail.com",
        "time": "Wed Nov 05 09:32:29 2025 +0100"
      },
      "committer": {
        "name": "Fabio Ponciroli",
        "email": "ponch78@gmail.com",
        "time": "Tue Nov 18 13:13:11 2025 +0100"
      },
      "message": "Make trash cleanup schedulable, keep startup default\n\nRun deletion of repository trash folders on a configurable schedule to\navoid high load at startup on large sites and to treat the cleanup as\nregular maintenance.\n\nThis reduces startup impact and ensures trash directories are cleaned\nperiodically without manual intervention.\n\nThis change preserves prior behavior by executing once at startup when\nno schedule is configured.\n\nBug: Issue 457866789\nChange-Id: I12e7f6e383e8040327c40c8294209bf8565b50c7\n"
    },
    {
      "commit": "f48d57b81da0e00c7fc84174989d01f107881740",
      "tree": "120d1e9de63f237a68c8dbac189505e382171122",
      "parents": [
        "e8fb93fdae664baea65a1eba3231dd437eaa9f01"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Oct 29 20:50:20 2025 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Nov 11 14:52:08 2025 -0800"
      },
      "message": "Use Gerrit\u0027s WorkQueue for running the DeleteTrashFolder task\n\nThe deletion of the trash folders was executed using an unmanaged thread\nwhich was not visible to the Gerrit admins in the list of tasks.\n\nRely on the standard Gerrit\u0027s WorkQueue so that the deletion of trash\nfolders are visible in the tasks and can also be easily managed with\nGerrit commands, without having to go to a lower level in digging on the\nJVM threads.\n\nBug: Issue 456214601\nChange-Id: I0e6b80f8bfd5e1283070e4afe93fa048fc4d71ad\n"
    },
    {
      "commit": "e8fb93fdae664baea65a1eba3231dd437eaa9f01",
      "tree": "2b3d21c1ce9a92771b6043a7a62b38d631fd4323",
      "parents": [
        "035235ffd463ef52ccd7a40e5821ac24d2be076c",
        "b1a05c0c2ef2d5fe60f0c4c5863576707540dbbf"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Thu Sep 11 11:15:03 2025 +0200"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Thu Sep 11 11:15:03 2025 +0200"
      },
      "message": "Merge branch \u0027stable-3.12\u0027\n\n* stable-3.12:\n  Use ChangeIndexer.deleteAllForProject on project deletion\n  Revert \"Introduce all-project-changes-deleted-from-index event\"\n\nChange-Id: I99da02728c2baa7182c5383396a991712627ca86\n"
    },
    {
      "commit": "b1a05c0c2ef2d5fe60f0c4c5863576707540dbbf",
      "tree": "ac26020672a60c0090c44e1efb09f1e2bef1063f",
      "parents": [
        "7bd06ec479cf7a48c2af62b76cc8dd51ce014721"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Tue Sep 02 21:39:32 2025 +0200"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Wed Sep 03 11:22:11 2025 +0200"
      },
      "message": "Use ChangeIndexer.deleteAllForProject on project deletion\n\nWhen a project is deleted, all its changes must be removed from the\nindex. The plugin previously iterated over write indexes and called\nChangeIndex.deleteAllForProject() directly. This bypassed the higher-\nlevel API and duplicated index selection logic.\n\nRoute the deletion through ChangeIndexer.deleteAllForProject(), which:\n- Centralizes index handling across backends and shards.\n- Emits the onAllChangesDeletedForProject notification for listeners.\n- Simplifies the code by removing the local iteration helper.\n\nThis aligns the plugin with the API introduced in I4c8a53629 and avoids\nthe pitfalls of calling low-level ChangeIndex operations directly.\n\nNote: this partially re-applies reverted I7a171837bca, without the\nprovided notification via stream events, which was not correct.\n\nBug: Issue 440670678\nChange-Id: I7a171837bca5103094caa9c302afb6409f075195\n"
    },
    {
      "commit": "7bd06ec479cf7a48c2af62b76cc8dd51ce014721",
      "tree": "37cb42b3614e673c46dff4af4e58e828feeb7cc3",
      "parents": [
        "24b43c077c857f020c39fcfb06f83da90399a390"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Sep 02 08:20:16 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 02 08:20:16 2025 -0700"
      },
      "message": "Revert \"Introduce all-project-changes-deleted-from-index event\"\n\nRevert submission 501406-bulk-change-index-notification\n\nReason for revert: Gerrit stream events are not for notifying reindexing operations. The reindexing is done through the ChangeIndexedListener and notified through the Gerrit\u0027s EventBus, not the stream events.\n\nReverted changes: /q/submissionid:501406-bulk-change-index-notification\n\nChange-Id: Ia9bbcf8d49a3fa57a0596206a2752d5d2667183e\n"
    },
    {
      "commit": "035235ffd463ef52ccd7a40e5821ac24d2be076c",
      "tree": "ef63f0a73a2ce90015066b1820318f509026a84b",
      "parents": [
        "fc206bd03f34d18b7a305132cc30c656168e25b9",
        "24b43c077c857f020c39fcfb06f83da90399a390"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Aug 29 22:31:58 2025 +0200"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Aug 29 13:48:20 2025 -0700"
      },
      "message": "Merge branch \u0027stable-3.12\u0027\n\n* stable-3.12:\n  Introduce all-project-changes-deleted-from-index event\n  Rename eslint config file.\n  Fix typo\n  Migrate from karma to web-test-runner\n  Format with GJF 1.24.0\n\nRelease-Notes: skip\nDepends-On: https://gerrit-review.googlesource.com/c/gerrit/+/502822\nChange-Id: I2ab3d28ce4f83220ec8e3a426e1b26692ef97a21\n"
    },
    {
      "commit": "24b43c077c857f020c39fcfb06f83da90399a390",
      "tree": "a4f7b46be48f51dd5fcad01c1ccdd125813c2de8",
      "parents": [
        "63ab9df62303b49ecf007b61efef9fb462a8b27a"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Tue Aug 26 17:14:32 2025 +0200"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Fri Aug 29 13:24:11 2025 +0200"
      },
      "message": "Introduce all-project-changes-deleted-from-index event\n\nWhen deleting a project, its related changes are also removed from the\nindex. This used to be notified via single change-index events, for each\nchange deleted from the index.\n\nThis however was potentially causing a large number of events to be\npublished and consumed, making it impractical and inefficient to process\none-by-one.\n\nLeverage a new hook introduced at I4c8a53629 to trigger a new dedicated\nevent that can be processed by consumers to delete changes in bulk from\ntheir index.\n\nDepends-On: I4c8a536290800d7b93b9f62d2e7ed959fceebb6b\nBug: Issue 440670678\nChange-Id: I7a171837bca5103094caa9c302afb6409f075094\n"
    },
    {
      "commit": "63ab9df62303b49ecf007b61efef9fb462a8b27a",
      "tree": "37cb42b3614e673c46dff4af4e58e828feeb7cc3",
      "parents": [
        "a60138653b1a505512f74075dc3696630a7b0625"
      ],
      "author": {
        "name": "Kamil Musin",
        "email": "kamilm@google.com",
        "time": "Thu Aug 07 16:59:50 2025 +0200"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Tue Aug 26 17:03:06 2025 +0200"
      },
      "message": "Rename eslint config file.\n\nThe name required by the plugin_eslint bazel rule got changed in\nchange I6b504664e1\n\nAlso fix outdated command in the README and remove lines in\ntest-setup.ts that cause TypeScript compiler to complain and do not seem\nto be needed anymore.\n\nRelease-Notes: skip\nChange-Id: I2f57a2dabbb9771f97b42d32a993758fdac44369\n"
    },
    {
      "commit": "a60138653b1a505512f74075dc3696630a7b0625",
      "tree": "f659c679d4dcddb022214487a0ac51bacb37aade",
      "parents": [
        "7ba1ff395aad4d9d9b2b36f887c997b2568e9430"
      ],
      "author": {
        "name": "Paladox none",
        "email": "thomasmulhall410@yahoo.com",
        "time": "Thu Apr 24 08:19:16 2025 -0700"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Tue Aug 26 17:02:34 2025 +0200"
      },
      "message": "Fix typo\n\nChange-Id: If4cbd44aee7bea703eac3b514f3dcbe8b04937f6\n"
    },
    {
      "commit": "7ba1ff395aad4d9d9b2b36f887c997b2568e9430",
      "tree": "1879076882f6cacc37f6286a25249ecda422f918",
      "parents": [
        "f276e789a073c4869662d2635444a5a862d0bd3f"
      ],
      "author": {
        "name": "Paladox none",
        "email": "thomasmulhall410@yahoo.com",
        "time": "Thu Apr 24 04:36:16 2025 -0700"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Tue Aug 26 17:02:09 2025 +0200"
      },
      "message": "Migrate from karma to web-test-runner\n\nWe want to get rid of the final remnants of karma from gerrit core.\nThe recommended way to run tests is with web-test-runner.\n\nDepends-On: I4e9134e04475d7375d7a09d618892edbe0b555bc\nChange-Id: I2da2603951304361ba9e47ca968316c5fb29c8b1\n"
    },
    {
      "commit": "f276e789a073c4869662d2635444a5a862d0bd3f",
      "tree": "80d17ad9680a1870d25d53e0e6ed09d16b0eb89a",
      "parents": [
        "08035f1ef90258629346ab033af27c454a7fcc2d"
      ],
      "author": {
        "name": "Thomas Dräbing",
        "email": "thomas.draebing@sap.com",
        "time": "Fri Feb 07 15:30:30 2025 +0100"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Tue Aug 26 07:58:29 2025 -0700"
      },
      "message": "Format with GJF 1.24.0\n\nChange-Id: If5e8d401ae78ddb7d80c621bdabd8aa1ddb36c17\n(cherry picked from commit e437f9a1cdb7bddb343993cf9910519e070f06b5)\n"
    },
    {
      "commit": "fc206bd03f34d18b7a305132cc30c656168e25b9",
      "tree": "6c627cda08c44f8fb5a245b3b737da7f3e41430b",
      "parents": [
        "8cc650c6fb1348c827334dc3d78833685a78b8c1"
      ],
      "author": {
        "name": "Kamil Musin",
        "email": "kamilm@google.com",
        "time": "Thu Aug 07 16:59:50 2025 +0200"
      },
      "committer": {
        "name": "Kamil Musin",
        "email": "kamilm@google.com",
        "time": "Mon Aug 11 13:40:11 2025 +0200"
      },
      "message": "Rename eslint config file.\n\nThe name required by the plugin_eslint bazel rule got changed in\nchange I6b504664e1\n\nAlso fix outdated command in the README and remove lines in\ntest-setup.ts that cause TypeScript compiler to complain and do not seem\nto be needed anymore.\n\nRelease-Notes: skip\nChange-Id: I2f57a2dabbb9771f97b42d32a993758fdac44369\n"
    },
    {
      "commit": "8cc650c6fb1348c827334dc3d78833685a78b8c1",
      "tree": "6c11b311f8e72da4d570cc4b2c1cfc67cf8fec4f",
      "parents": [
        "e2e885fed0c989f713965b7bf9461507c0918d6a",
        "e437f9a1cdb7bddb343993cf9910519e070f06b5"
      ],
      "author": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@gmail.com",
        "time": "Tue May 20 04:26:38 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 20 04:26:38 2025 -0700"
      },
      "message": "Merge \"Format with GJF 1.24.0\""
    },
    {
      "commit": "e2e885fed0c989f713965b7bf9461507c0918d6a",
      "tree": "5517639a3b3867d57f0dde5fc6da6e3cb83e2d8c",
      "parents": [
        "c1e4b0fb27aaaaa06bb4ec4cdd80ebfe72e9615a",
        "bd10e1cff86dbe55b363dac684de01323c086228"
      ],
      "author": {
        "name": "Thomas Dräbing",
        "email": "thomas.draebing@sap.com",
        "time": "Mon May 05 01:07:57 2025 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon May 05 01:07:57 2025 -0700"
      },
      "message": "Merge \"Add support for JSON-formatted delete_log\""
    },
    {
      "commit": "c1e4b0fb27aaaaa06bb4ec4cdd80ebfe72e9615a",
      "tree": "d9e48cc5a667aab9ed1622188b5a274ce8603414",
      "parents": [
        "1f4550ecf4aec38ac1328fb6b58b80b25dd8e024"
      ],
      "author": {
        "name": "Paladox none",
        "email": "thomasmulhall410@yahoo.com",
        "time": "Thu Apr 24 08:19:16 2025 -0700"
      },
      "committer": {
        "name": "Paladox none",
        "email": "thomasmulhall410@yahoo.com",
        "time": "Thu Apr 24 08:19:24 2025 -0700"
      },
      "message": "Fix typo\n\nChange-Id: If4cbd44aee7bea703eac3b514f3dcbe8b04937f6\n"
    },
    {
      "commit": "1f4550ecf4aec38ac1328fb6b58b80b25dd8e024",
      "tree": "77b4b8c05209ff12c34d6ae055692373d82b6997",
      "parents": [
        "08035f1ef90258629346ab033af27c454a7fcc2d"
      ],
      "author": {
        "name": "Paladox none",
        "email": "thomasmulhall410@yahoo.com",
        "time": "Thu Apr 24 04:36:16 2025 -0700"
      },
      "committer": {
        "name": "Paladox none",
        "email": "thomasmulhall410@yahoo.com",
        "time": "Thu Apr 24 05:29:39 2025 -0700"
      },
      "message": "Migrate from karma to web-test-runner\n\nWe want to get rid of the final remnants of karma from gerrit core.\nThe recommended way to run tests is with web-test-runner.\n\nDepends-On: I4e9134e04475d7375d7a09d618892edbe0b555bc\nChange-Id: I2da2603951304361ba9e47ca968316c5fb29c8b1\n"
    },
    {
      "commit": "e437f9a1cdb7bddb343993cf9910519e070f06b5",
      "tree": "f23142a0c34bbdd1f1d81723c5bd361eb14dc5ee",
      "parents": [
        "bd10e1cff86dbe55b363dac684de01323c086228"
      ],
      "author": {
        "name": "Thomas Dräbing",
        "email": "thomas.draebing@sap.com",
        "time": "Fri Feb 07 15:30:30 2025 +0100"
      },
      "committer": {
        "name": "Thomas Dräbing",
        "email": "thomas.draebing@sap.com",
        "time": "Tue Apr 15 04:52:09 2025 -0700"
      },
      "message": "Format with GJF 1.24.0\n\nChange-Id: If5e8d401ae78ddb7d80c621bdabd8aa1ddb36c17\n"
    },
    {
      "commit": "bd10e1cff86dbe55b363dac684de01323c086228",
      "tree": "b92e11044b03e1d43d8550569811c9b316b940df",
      "parents": [
        "08035f1ef90258629346ab033af27c454a7fcc2d"
      ],
      "author": {
        "name": "Thomas Dräbing",
        "email": "thomas.draebing@sap.com",
        "time": "Fri Feb 07 15:29:58 2025 +0100"
      },
      "committer": {
        "name": "Thomas Dräbing",
        "email": "thomas.draebing@sap.com",
        "time": "Tue Apr 15 04:51:28 2025 -0700"
      },
      "message": "Add support for JSON-formatted delete_log\n\nChange-Id: I7b63ea82197a864fcf44f01db86459ef0120f1ad\n"
    },
    {
      "commit": "08035f1ef90258629346ab033af27c454a7fcc2d",
      "tree": "20906a36864aba4925c4b4cdeee353b46d968f3f",
      "parents": [
        "437c4ddafd2fcde1b56ba0e387d2ef16aec45b6d"
      ],
      "author": {
        "name": "Nitzan Gur-Furman",
        "email": "nitzan@google.com",
        "time": "Tue Mar 04 00:58:15 2025 -0800"
      },
      "committer": {
        "name": "Nitzan Gur-Furman",
        "email": "nitzan@google.com",
        "time": "Tue Mar 04 00:58:15 2025 -0800"
      },
      "message": "DeleteProject plugin: changes for moving ProjectWatchKey\n\nMain change: I70f40dc1a2515f07de751f1fabbb39eb18161eb9\n\nRelease-Notes: skip\nGoogle-Bug-Id: b/400396714\nChange-Id: If70be7ff725c26b7100eaa4f03d091f9abeb80cd\n"
    },
    {
      "commit": "437c4ddafd2fcde1b56ba0e387d2ef16aec45b6d",
      "tree": "2f831311c3e29d96d03bba82f06462d4d8b91537",
      "parents": [
        "39f2681d891ba38c68cc4d3fa81757d3c612da05"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sun Feb 02 15:34:26 2025 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sun Feb 02 15:35:29 2025 +0000"
      },
      "message": "Close Repository object when fetching changes from NoteDb\n\nAvoiding leaking an open Repository object when\nfetching the list of changes to delete from NoteDb.\nUse the try-with-resource pattern for opening the repository\nand then close it automatically when done.\n\nRelease-Notes: skip\nChange-Id: I7c67e3ae47a1afe261eaccea1ed3a8a89cf297f4\n"
    },
    {
      "commit": "39f2681d891ba38c68cc4d3fa81757d3c612da05",
      "tree": "ae42a2084e8d3b634963fb1aa37c0d1b5002b1c1",
      "parents": [
        "8851ed4bf55476fe9997de03693b2561ef6f6f15",
        "e1328bd6cc11542ec909e0537c74b47ae8edecf8"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Wed Nov 20 18:41:52 2024 +0000"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Wed Nov 20 18:41:52 2024 +0000"
      },
      "message": "Merge branch \u0027stable-3.11\u0027\n\n* stable-3.11:\n  Handle 204 response in delete-project\n\nChange-Id: I8d85c97b3d096ebd5156ee358beb124693af47b0\n"
    },
    {
      "commit": "e1328bd6cc11542ec909e0537c74b47ae8edecf8",
      "tree": "f84c531822d71046fd62db71418a34a5b3eb0b67",
      "parents": [
        "bd49c1bf4212a166d1246774cb8c70d54ead31ba"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Tue Nov 19 19:03:09 2024 +0000"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Wed Nov 20 18:27:18 2024 +0000"
      },
      "message": "Handle 204 response in delete-project\n\nThis change causes calls that fail without throwing an exception\nto no longer display a message below the \"Delete Project\" itself, but\nrather shows a new modal window with the details of the error.\n\nIf a call fails, throwing an exception, the error will be displayed as\nbefore.\n\nBug: Issue 379762004\nChange-Id: I779361a1f912a7618c26d154cad08adbb53ca2fd\n"
    },
    {
      "commit": "8851ed4bf55476fe9997de03693b2561ef6f6f15",
      "tree": "ae42a2084e8d3b634963fb1aa37c0d1b5002b1c1",
      "parents": [
        "08bc142c829aed843b1145b27fab5bb1d973cb51",
        "48c7e4711c93dea683d7094c1dea2333fe6febe5"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Nov 20 17:55:27 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 20 17:55:27 2024 +0000"
      },
      "message": "Merge \"Handle 204 response in delete-project\""
    },
    {
      "commit": "48c7e4711c93dea683d7094c1dea2333fe6febe5",
      "tree": "f84c531822d71046fd62db71418a34a5b3eb0b67",
      "parents": [
        "bd49c1bf4212a166d1246774cb8c70d54ead31ba"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Tue Nov 19 19:03:09 2024 +0000"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Wed Nov 20 17:54:07 2024 +0000"
      },
      "message": "Handle 204 response in delete-project\n\nThis change causes calls that fail without throwing an exception\nto no longer display a message below the \"Delete Project\" itself, but\nrather shows a new modal window with the details of the error.\n\nIf a call fails, throwing an exception, the error will be displayed as\nbefore.\n\nBug: Issue 379762004\nChange-Id: I779361a1f912a7618c26d154cad08adbb53ca2fd\n"
    },
    {
      "commit": "08bc142c829aed843b1145b27fab5bb1d973cb51",
      "tree": "83c6fbb2c5dcb1c94188b2589694fea47ad93d0d",
      "parents": [
        "bd49c1bf4212a166d1246774cb8c70d54ead31ba"
      ],
      "author": {
        "name": "Saša Živkov",
        "email": "sasa.zivkov@sap.com",
        "time": "Mon Nov 04 13:55:59 2024 +0100"
      },
      "committer": {
        "name": "Saša Živkov",
        "email": "sasa.zivkov@sap.com",
        "time": "Mon Nov 04 16:28:09 2024 +0100"
      },
      "message": "Use ChangeIndex.deleteAllForProject to delete efficiently from index\n\nInstead of deleting changes on-by-one, use the deleteAllForProject which\ndeletes all changes of a project in one Lucene method call.\n\nIn addition, improve names of some methods to reflect their purpose\nbetter.\n\nChange-Id: I1bf173e5feadd4bc1183b77a2e3edd3141b91e13\n"
    },
    {
      "commit": "bd49c1bf4212a166d1246774cb8c70d54ead31ba",
      "tree": "0311429385b0557b01b221db8e91bde4784c2ca8",
      "parents": [
        "ea78b4b817151f47f6e3aca7bf1e90f14518caa1"
      ],
      "author": {
        "name": "Paladox none",
        "email": "thomasmulhall410@yahoo.com",
        "time": "Mon Jun 10 14:26:55 2024 +0000"
      },
      "committer": {
        "name": "Paladox none",
        "email": "thomasmulhall410@yahoo.com",
        "time": "Mon Jun 10 14:31:43 2024 +0000"
      },
      "message": "Change from h2 to h3\n\nChange-Id: I21f606f1b96f80a1250426c834c41fbb3d8d2615\n"
    },
    {
      "commit": "ea78b4b817151f47f6e3aca7bf1e90f14518caa1",
      "tree": "fd77cb49dd226ca5f748fd6a055a05156c2c8b5e",
      "parents": [
        "e2c70ab914716f3441d06a7b4ab4320eaf667c42",
        "ecd8f3a0da68476e455ae00986b213681ecd1f95"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Fri Mar 01 22:08:49 2024 +0000"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Fri Mar 01 22:08:49 2024 +0000"
      },
      "message": "Merge branch \u0027stable-3.9\u0027\n\n* stable-3.9:\n  Add support for newer plugin-node-resolve versions\n\nChange-Id: I203162ccb9013b401ea9ab6b8086e266a52725b5\n"
    },
    {
      "commit": "ecd8f3a0da68476e455ae00986b213681ecd1f95",
      "tree": "90f28aa9361ac54da48ae0a27d4f9a89b53ecea7",
      "parents": [
        "38b4cb16483045557ffbe7dec8c3d971b95ebc82",
        "9378a0e55daf9e24b8863a2605e6a1f1828f73a1"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Fri Mar 01 18:17:26 2024 +0000"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Fri Mar 01 18:17:26 2024 +0000"
      },
      "message": "Merge branch \u0027stable-3.8\u0027 into stable-3.9\n\n* stable-3.8:\n  Add support for newer plugin-node-resolve versions\n  ConfigurationTest: Remove flaky invalidTargetArchiveFolder test\n  Send project-deleted event after project deletion\n\nChange-Id: Ib88d322b93bc306458c9cc6872312da11a06bfc2\n"
    },
    {
      "commit": "9378a0e55daf9e24b8863a2605e6a1f1828f73a1",
      "tree": "90f28aa9361ac54da48ae0a27d4f9a89b53ecea7",
      "parents": [
        "825dcb41a9abfc5892ef3b0f8e89b7ca25c8dfe1",
        "8f6ea7eeb22f8b8487d3b433d367272172ea32d1"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Fri Mar 01 15:03:53 2024 +0000"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Fri Mar 01 15:03:53 2024 +0000"
      },
      "message": "Merge branch \u0027stable-3.7\u0027 into stable-3.8\n\n* stable-3.7:\n  Add support for newer plugin-node-resolve versions\n\nChange-Id: Ie731df59db447bd619a2151b7ffbd371cff1bf31\n"
    },
    {
      "commit": "8f6ea7eeb22f8b8487d3b433d367272172ea32d1",
      "tree": "3cdca4dc0bfc7edf8abfbad32fa15d6d4ffc10c0",
      "parents": [
        "9c4db6de1e3a00d3f3834ffe0114bd1683f57fb6"
      ],
      "author": {
        "name": "Paladox none",
        "email": "thomasmulhall410@yahoo.com",
        "time": "Thu Jun 09 15:33:48 2022 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Feb 27 17:31:30 2024 +0000"
      },
      "message": "Add support for newer plugin-node-resolve versions\n\nDue to [0] in plugin-node-resolve, it changes the way modules are\nresolved. It now looks at package.json and figures it out from\nthere although if the stuff it is looking for is not found\nit falls back to how it did the resolving in older versions.\nUnfortunately there is no config to force the behaviour\nso we have to use the new behaviour.\n\nThis is what it looks like:\n\n```\n  \"exports\": {\n    \".\": {\n      \"development\": \"./development/reactive-element.js\",\n      \"default\": \"./reactive-element.js\"\n    },\n    ....\n    \"./decorators.js\": {\n      \"development\": \"./development/decorators.js\",\n      \"default\": \"./decorators.js\"\n    },\n    ....\n  },\n```\n\nThus \"./decorators\" fails to match \"./decorators.js\" and so it fails\nto resolve.\n\n\n[0] https://github.com/rollup/plugins/commit/3d60158f21e0b6a5a8a53d9977928e2e148cb885\n\nChange-Id: I7829591e45662ee6028182beb57396b327823275\n"
    },
    {
      "commit": "e2c70ab914716f3441d06a7b4ab4320eaf667c42",
      "tree": "fd77cb49dd226ca5f748fd6a055a05156c2c8b5e",
      "parents": [
        "75b79c115ba3dd03aa56a3165e6c319fa30c6c4a"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Fri Feb 16 12:46:22 2024 +0000"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Fri Feb 16 12:46:22 2024 +0000"
      },
      "message": "Fix PreferredInterfaceType ErrorProne warnings\n\nhttps://errorprone.info/bugpattern/PreferredInterfaceType\n\nWe intent to set PreferredInterfaceType to ERROR in Gerrit core.\n\nChange-Id: I9de6ced5136561f4ac5fa5a8be05a896996f0578\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "75b79c115ba3dd03aa56a3165e6c319fa30c6c4a",
      "tree": "69d81eb96ef298e11467ff879b1df752efd91e13",
      "parents": [
        "f046ac6773ea1c6e10b5e95b763ae685c24ec7f1",
        "825dcb41a9abfc5892ef3b0f8e89b7ca25c8dfe1"
      ],
      "author": {
        "name": "Alvaro Vilaplana Garcia",
        "email": "alvaro.vilaplana@gmail.com",
        "time": "Mon Feb 12 13:45:06 2024 +0000"
      },
      "committer": {
        "name": "Alvaro Vilaplana Garcia",
        "email": "alvaro.vilaplana@gmail.com",
        "time": "Mon Feb 12 14:27:27 2024 +0000"
      },
      "message": "Merge branch \u0027stable-3.8\u0027\n\n* stable-3.8:\n  ConfigurationTest: Remove flaky invalidTargetArchiveFolder test\n  Send Project Deleted Events also when archiving\n\nChange-Id: Ic64ac7317f430f520ef0350c0bbdb63846823086\n"
    },
    {
      "commit": "825dcb41a9abfc5892ef3b0f8e89b7ca25c8dfe1",
      "tree": "90f28aa9361ac54da48ae0a27d4f9a89b53ecea7",
      "parents": [
        "38b4cb16483045557ffbe7dec8c3d971b95ebc82",
        "9c4db6de1e3a00d3f3834ffe0114bd1683f57fb6"
      ],
      "author": {
        "name": "Alvaro Vilaplana Garcia",
        "email": "alvaro.vilaplana@gmail.com",
        "time": "Mon Feb 12 10:58:55 2024 +0000"
      },
      "committer": {
        "name": "Alvaro Vilaplana Garcia",
        "email": "alvaro.vilaplana@gmail.com",
        "time": "Mon Feb 12 10:58:55 2024 +0000"
      },
      "message": "Merge branch \u0027stable-3.7\u0027 into stable-3.8\n\n* stable-3.7:\n  ConfigurationTest: Remove flaky invalidTargetArchiveFolder test\n  Send project-deleted event after project deletion\n\nChange-Id: I2ac01b00d7ce442b96a032d90b4037670e65d79a\n"
    },
    {
      "commit": "9c4db6de1e3a00d3f3834ffe0114bd1683f57fb6",
      "tree": "c6083157c76ac8a105c28202017cdc8a4e686a5c",
      "parents": [
        "306cacedebb61c9ae0afd133d6cb48f8533e751e"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Tue Dec 12 21:02:28 2023 +0100"
      },
      "committer": {
        "name": "Álvaro Vilaplana García",
        "email": "alvaro.vilaplana@gmail.com",
        "time": "Mon Feb 12 10:15:52 2024 +0000"
      },
      "message": "ConfigurationTest: Remove flaky invalidTargetArchiveFolder test\n\nThis test is failing when running gerrit test in docker image with root\nuser. It\u0027s also failing when remote build execution is used (BuildBuddy\nprovider).\n\nIt seems to rely on the fact that the exception is thrown:\n\njava.nio.file.FileSystemException: /\\\\\\: Operation not permitted\n\nHowever when the test is executed with BuildBuddy RBE that exception is\nnot raised and as a consequence of that the test ends up failing. It\nlooks that the folder /\\\\\\ is created in the remote executor.\n\nWhile it could be fixed with:\n\nexec_properties \u003d {\n    \"dockerUser\": \"nobody\",\n},\n\nwe prefer not to complicate our build toolchain and rather remove the\ntest.\n\nChange-Id: I51bccdf2cb19559690d3d88bd92cf60bc28f5fcd\n"
    },
    {
      "commit": "f046ac6773ea1c6e10b5e95b763ae685c24ec7f1",
      "tree": "53e51e93a210c34112aee85a738c812a7da48dd4",
      "parents": [
        "01a35c85680bda3bb724f9bf0b266ad36c6dd0e9"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Thu Feb 01 14:21:35 2024 +0000"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Thu Feb 01 14:21:35 2024 +0000"
      },
      "message": "Use Path.of() instead of Paths.get()\n\nPath.of() makes Paths.get() obsolete in Java 11\n\nChange-Id: Ifeafe5bdd9cbd3bbe13f86955bb888734ca5984d\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "38b4cb16483045557ffbe7dec8c3d971b95ebc82",
      "tree": "8b635529b78c8f8f2b8e578a3a768f21b0c0f2bf",
      "parents": [
        "b080ed4630104cee0078f6be3561600ed1c3647a"
      ],
      "author": {
        "name": "Rikard Almgren",
        "email": "rikardal@axis.com",
        "time": "Mon Jan 15 11:50:41 2024 +0100"
      },
      "committer": {
        "name": "Rikard Almgren",
        "email": "rikardal@axis.com",
        "time": "Thu Jan 25 12:11:33 2024 +0000"
      },
      "message": "Send Project Deleted Events also when archiving\n\nWhen projects are either deleted fully, or preserved by setting as\nhidden and moving to f.i. Deleted-Projects, we send a Project Deleted\nEvent. We do not do the same if we archive the repository, even though\nthis is effectively also a deleted project (more so than hidden is) from\na Gerrit perspective.\n\nNot sending this event means that archived repositories are not properly\nremoved from replicas when replicateRepositoryDeletions is set.\n\nThis makes sure that we still send the projectDeletionEvent while\narchiving is set.\n\nRelease-Notes: Plugin Delete-Project archiveDeletedRepos option now also emits a Project Deletion event.\nChange-Id: I0829a1a2016d67ac789b92f67d1d7c6a13b65c65\n"
    },
    {
      "commit": "01a35c85680bda3bb724f9bf0b266ad36c6dd0e9",
      "tree": "369d5fd95f59efd90d005542eeba75caf48affd6",
      "parents": [
        "c9894f60c6fa55bf4a93f6aaf9ea35f1e08f7486"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Jan 03 15:21:24 2024 +0000"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Jan 03 15:21:24 2024 +0000"
      },
      "message": "Adapt to enabling the MutableGuiceModule errorprone pattern in Gerrit core\n\nChange-Id: I58b832207c7f8973968e460878572c0af0676230\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "c9894f60c6fa55bf4a93f6aaf9ea35f1e08f7486",
      "tree": "0dd49c623c8696f53110abaab5ca610597f6389d",
      "parents": [
        "308c272a09bc4dce8a0a4308b4b484a074e16f01"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Tue Dec 12 21:02:28 2023 +0100"
      },
      "committer": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Mon Dec 18 21:43:29 2023 +0000"
      },
      "message": "ConfigurationTest: Remove flaky invalidTargetArchiveFolder test\n\nThis test is failing when running gerrit test in docker image with root\nuser. It\u0027s also failing when remote build execution is used (BuildBuddy\nprovider).\n\nIt seems to rely on the fact that the exception is thrown:\n\njava.nio.file.FileSystemException: /\\\\\\: Operation not permitted\n\nHowever when the test is executed with BuildBuddy RBE that exception is\nnot raised and as a consequence of that the test ends up failing. It\nlooks that the folder /\\\\\\ is created in the remote executor.\n\nWhile it could be fixed with:\n\nexec_properties \u003d {\n    \"dockerUser\": \"nobody\",\n},\n\nwe prefer not to complicate our build toolchain and rather remove the\ntest.\n\nChange-Id: I51bccdf2cb19559690d3d88bd92cf60bc28f5fcd\n"
    },
    {
      "commit": "308c272a09bc4dce8a0a4308b4b484a074e16f01",
      "tree": "6b31cdc26821be14718271f4e735f5fc2429c097",
      "parents": [
        "723264be4256494c45f5ba056e81be2ad25bbe7c"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Mon Dec 18 10:23:01 2023 +0000"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Mon Dec 18 10:23:01 2023 +0000"
      },
      "message": "Adapt to enabling CheckReturnValue in gerrit core.\n\nBug: Google b/312699566\nChange-Id: I72baf8ef263fc7476a8b4823f3a3d5af3d35257b\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\n"
    },
    {
      "commit": "723264be4256494c45f5ba056e81be2ad25bbe7c",
      "tree": "ad394b3f666b7d47b6bd4e95851099b50ae24dc8",
      "parents": [
        "69e29ba7ec1387d2bb0977c97842daf4bd00288b"
      ],
      "author": {
        "name": "Nitzan Gur-Furman",
        "email": "nitzan@google.com",
        "time": "Thu Nov 02 14:18:31 2023 +0100"
      },
      "committer": {
        "name": "Nitzan Gur-Furman",
        "email": "nitzan@google.com",
        "time": "Thu Nov 02 13:20:52 2023 +0000"
      },
      "message": "Update delete-project plugin following I479588df\n\nBug: Google b/289357382\nRelease-Notes: skip\nChange-Id: Ia047b6a5a66ff605c2e229f26928d7722a155645\n"
    },
    {
      "commit": "69e29ba7ec1387d2bb0977c97842daf4bd00288b",
      "tree": "537a5989695055d68ccf4ba4170a37e8f6afb031",
      "parents": [
        "415f4d95237ee8c776f22199635139595b7a129f",
        "b080ed4630104cee0078f6be3561600ed1c3647a"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Jun 28 10:48:36 2023 +0000"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Wed Jun 28 10:50:30 2023 +0000"
      },
      "message": "Merge branch \u0027stable-3.8\u0027\n\n* stable-3.8:\n  Move gr-overlay to dialog element for delete-project plugin\n\nChange-Id: I8f11ac208695ee3cac8812d6e472059225f47b98\n"
    },
    {
      "commit": "b080ed4630104cee0078f6be3561600ed1c3647a",
      "tree": "308989fdf39a44c32f210b5a4105fd378a4aa6dd",
      "parents": [
        "b183ee5230273670f3235cc5b3cf32562ccfb7ee"
      ],
      "author": {
        "name": "Paladox none",
        "email": "thomasmulhall410@yahoo.com",
        "time": "Wed Jun 14 13:21:49 2023 +0000"
      },
      "committer": {
        "name": "Paladox none",
        "email": "thomasmulhall410@yahoo.com",
        "time": "Wed Jun 14 20:24:37 2023 +0000"
      },
      "message": "Move gr-overlay to dialog element for delete-project plugin\n\nChange-Id: I2936af2ae7f663291e91d867898597946ee619fe\n(cherry picked from commit 415f4d95237ee8c776f22199635139595b7a129f)\n"
    },
    {
      "commit": "415f4d95237ee8c776f22199635139595b7a129f",
      "tree": "537a5989695055d68ccf4ba4170a37e8f6afb031",
      "parents": [
        "0322a37009071da525bfd8569e98538c2e8891d5"
      ],
      "author": {
        "name": "Paladox none",
        "email": "thomasmulhall410@yahoo.com",
        "time": "Wed Jun 14 13:21:49 2023 +0000"
      },
      "committer": {
        "name": "Paladox none",
        "email": "thomasmulhall410@yahoo.com",
        "time": "Wed Jun 14 13:27:52 2023 +0000"
      },
      "message": "Move gr-overlay to dialog element for delete-project plugin\n\nChange-Id: I2936af2ae7f663291e91d867898597946ee619fe\n"
    },
    {
      "commit": "0322a37009071da525bfd8569e98538c2e8891d5",
      "tree": "aaba6c498823772dcfbdf7636bb1f9fb3e795830",
      "parents": [
        "4b173665d13703332a941d9c347c3adddd45fb54"
      ],
      "author": {
        "name": "Christoforos Miliotis",
        "email": "christoforos.miliotis.dev@gmail.com",
        "time": "Thu May 11 12:28:12 2023 +0100"
      },
      "committer": {
        "name": "Christoforos Miliotis",
        "email": "christoforos.miliotis.dev@gmail.com",
        "time": "Mon May 15 12:11:40 2023 +0100"
      },
      "message": "Provide less verbose repo delete method\n\nCurrently, the repo delete method exposed is too verbose, and forces\nthe client to provide parameters for preserving and archiving the repo.\n\nProvide a less verbose method with sensible defaults.\nAnnotate the method so its clear it will be used by the pull-\nreplication plugin, this will also prevent accidental removal of the\nmethod impacting the pull-replication plugin.\n\nBug: Issue 16730\nChange-Id: I50dbcb9a91bf3697b8c7d66db646020d29dae83a\n"
    },
    {
      "commit": "4b173665d13703332a941d9c347c3adddd45fb54",
      "tree": "313b1e98b75e87251a114559ea083bce0d333ead",
      "parents": [
        "79674d9e00f8458a2f4f6d3a91bd032579c3f25c"
      ],
      "author": {
        "name": "Christoforos Miliotis",
        "email": "christoforos.miliotis.dev@gmail.com",
        "time": "Thu May 11 12:12:44 2023 +0100"
      },
      "committer": {
        "name": "Christoforos Miliotis",
        "email": "christoforos.miliotis.dev@gmail.com",
        "time": "Thu May 11 12:12:44 2023 +0100"
      },
      "message": "Add IntelliJ files to gitignore\n\nChange-Id: I7600680cf559314356fc9478e7100918f334b9dd\n"
    },
    {
      "commit": "79674d9e00f8458a2f4f6d3a91bd032579c3f25c",
      "tree": "7827534424dbf5b4e89b952391795513626460f9",
      "parents": [
        "ae4ee2acf4a72c508d079ccd9666a64e8bcf6dae"
      ],
      "author": {
        "name": "Christoforos Miliotis",
        "email": "christoforos.miliotis.dev@gmail.com",
        "time": "Thu Apr 27 17:57:35 2023 +0100"
      },
      "committer": {
        "name": "Christoforos Miliotis",
        "email": "christoforos.miliotis.dev@gmail.com",
        "time": "Wed May 03 14:43:12 2023 +0100"
      },
      "message": "Extract the repository deletion logic so it becomes reusable\n\nThe code that deletes a repository is generally quite robust and\nas such it will be very useful for the pull-replication plugin.\nHowever, the logic is heavily baked into the plugin itself;\nit requires archiving settings read from the plugin config, and\ndeletion listeners to notify downstream systems - both are not\nrelevant to the pull-replication plugin (or anything else that\nmight want to just delete a repo).\n\nExtract the repo deletion logic into a `RepositoryDelete` class,\nfree from any nuances of the delete-project plugin itself, so it\ncan be reused. The `FilesystemDeleteHandler` is now essentially\ndelegating everything into that class. I\u0027ve also taken the\nliberty to add a couple of missing tests for the notifying of\ndownstream systems through the deletion listeners.\n\nBug: Issue 16730\nChange-Id: Ib28dbed344ef8a419cf7c318d0e87aadd7dadd5e\n"
    },
    {
      "commit": "ae4ee2acf4a72c508d079ccd9666a64e8bcf6dae",
      "tree": "d644a961b63dcb19f1704d3b94d4df0ab5d575e2",
      "parents": [
        "b183ee5230273670f3235cc5b3cf32562ccfb7ee",
        "306cacedebb61c9ae0afd133d6cb48f8533e751e"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Jun 28 07:53:59 2022 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 28 07:53:59 2022 +0000"
      },
      "message": "Merge \"Send project-deleted event after project deletion\""
    },
    {
      "commit": "306cacedebb61c9ae0afd133d6cb48f8533e751e",
      "tree": "c6ff47e93d02ae2e83bc4942b9ccc9158b5888bb",
      "parents": [
        "5717badf4250dfe900c05fc00d0758a09ba77297"
      ],
      "author": {
        "name": "Marcin Czech",
        "email": "maczech@gmail.com",
        "time": "Thu May 12 15:26:15 2022 +0200"
      },
      "committer": {
        "name": "Marcin Czech",
        "email": "maczech@gmail.com",
        "time": "Mon Jun 27 11:17:09 2022 +0000"
      },
      "message": "Send project-deleted event after project deletion\n\nGerrit EventDispatcher has two types of listeners: user restricted or\nunrestricted. For the restricted listeners before sending the event\nGerrit checks if user has permission to access the project. This means\nthat `project-deleted` event will not be delivered to the restricted\nlisteners because when we send the event project is already removed\nso we cannot check permissions anymore.\n\nBug: Issue 15778\nChange-Id: I86386cf8b321a2dcc8a4a8ee6f36815e5c9228a2\n"
    },
    {
      "commit": "b183ee5230273670f3235cc5b3cf32562ccfb7ee",
      "tree": "c4d297c9123d60932fa77fc564f9a03993515eb2",
      "parents": [
        "5717badf4250dfe900c05fc00d0758a09ba77297"
      ],
      "author": {
        "name": "Paladox none",
        "email": "thomasmulhall410@yahoo.com",
        "time": "Thu Jun 09 15:33:48 2022 +0000"
      },
      "committer": {
        "name": "Paladox none",
        "email": "thomasmulhall410@yahoo.com",
        "time": "Thu Jun 09 15:49:16 2022 +0000"
      },
      "message": "Add support for newer plugin-node-resolve versions\n\nDue to [0] in plugin-node-resolve, it changes the way modules are\nresolved. It now looks at package.json and figures it out from\nthere although if the stuff it is looking for is not found\nit falls back to how it did the resolving in older versions.\nUnfortunately there is no config to force the behaviour\nso we have to use the new behaviour.\n\nThis is what it looks like:\n\n```\n  \"exports\": {\n    \".\": {\n      \"development\": \"./development/reactive-element.js\",\n      \"default\": \"./reactive-element.js\"\n    },\n    ....\n    \"./decorators.js\": {\n      \"development\": \"./development/decorators.js\",\n      \"default\": \"./decorators.js\"\n    },\n    ....\n  },\n```\n\nThus \"./decorators\" fails to match \"./decorators.js\" and so it fails\nto resolve.\n\n\n[0] https://github.com/rollup/plugins/commit/3d60158f21e0b6a5a8a53d9977928e2e148cb885\n\nChange-Id: I7829591e45662ee6028182beb57396b327823275\n"
    },
    {
      "commit": "5717badf4250dfe900c05fc00d0758a09ba77297",
      "tree": "b97ef7b8a7a80b4b4b3872c78daffcacba2ad0d4",
      "parents": [
        "fac8815949114d58b65dceda355bf80f7ec2adee"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Tue Jan 04 16:04:22 2022 +0100"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Tue Jan 04 16:04:22 2022 +0100"
      },
      "message": "Fix JdkObsolete issues with StringBuffer\n\nUse StringBuilder instead of StringBuffer.\n\nBug: Issue 15070\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\nChange-Id: I43a161fb6117c46117828d423000ec4c004873dc\n"
    },
    {
      "commit": "fac8815949114d58b65dceda355bf80f7ec2adee",
      "tree": "37ada182f8f6bef7b43c6656eb696bd8f598523e",
      "parents": [
        "fed529c129169d21fef98d1209b68b3bc3d10246",
        "612f143792652d571ecfcb19915ad5754a3ba1a7"
      ],
      "author": {
        "name": "Nasser Grainawi",
        "email": "nasser@codeaurora.org",
        "time": "Mon Dec 06 13:02:45 2021 -0700"
      },
      "committer": {
        "name": "Nasser Grainawi",
        "email": "nasser@codeaurora.org",
        "time": "Mon Dec 06 21:27:13 2021 +0000"
      },
      "message": "Merge branch \u0027stable-3.5\u0027\n\n* stable-3.5:\n  Adapt to new ProjectCache interface\n\nDepends-on: https://gerrit-review.googlesource.com/c/gerrit/+/324075\nChange-Id: I4a81e47e1bcae476da5ba345bfbba2eaa02181a3\n"
    },
    {
      "commit": "fed529c129169d21fef98d1209b68b3bc3d10246",
      "tree": "f1eb8e62e3a2bfc6ba64f0ca5b7b3e2df30771bb",
      "parents": [
        "5dcb1a64e779def0309354dd0e9886189845b020"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Fri Dec 03 13:52:19 2021 +0100"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Fri Dec 03 13:52:48 2021 +0100"
      },
      "message": "Adapt to enabling InlineFormatString bug pattern in Gerrit core\n\nFix the current issues so that the build continues to work.\n\nBug: Issue 15065\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\nChange-Id: Ib321f203e2c72d1468e6b39c938272d2bca475df\n"
    },
    {
      "commit": "612f143792652d571ecfcb19915ad5754a3ba1a7",
      "tree": "cc73633b750499096d1b67e67399b67d25d6d627",
      "parents": [
        "5dcb1a64e779def0309354dd0e9886189845b020",
        "142875ae29b728e4fbad5bc22dc132df37cc4de7"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Nov 22 21:35:16 2021 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Nov 22 22:08:20 2021 +0000"
      },
      "message": "Merge branch \u0027stable-3.4\u0027 into stable-3.5\n\n* stable-3.4:\n  Adapt to new ProjectCache interface\n\nDepends-On: https://gerrit-review.googlesource.com/c/gerrit/+/324619\nChange-Id: Ie236754fc3d3412b68a7e291752f71920d6d4ff2\n"
    },
    {
      "commit": "142875ae29b728e4fbad5bc22dc132df37cc4de7",
      "tree": "4697eec2c6de37dfbdd7c619b3f4cb2b3eef63e6",
      "parents": [
        "549de033d60b13aaeef45ce5c4bf42be39506268",
        "7d060dab5f311ec498f9a3b0aa58ce797b8c4d28"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Nov 22 13:33:43 2021 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Nov 22 19:22:13 2021 +0000"
      },
      "message": "Merge branch \u0027stable-3.3\u0027 into stable-3.4\n\n* stable-3.3:\n  Adapt to new ProjectCache interface\n\nDepends-On: https://gerrit-review.googlesource.com/c/gerrit/+/324372\nChange-Id: Ie23dcdfa8f90f57ebe21154b763bd36788da5e83\n"
    },
    {
      "commit": "7d060dab5f311ec498f9a3b0aa58ce797b8c4d28",
      "tree": "b955bedb23564623c40621e7f5f562c397d2b007",
      "parents": [
        "60ce67dd53ad64c33a2c34aae31e9ee823979109",
        "407c15e7949ad5a086ba5c8998be68964ff17de5"
      ],
      "author": {
        "name": "Adithya Chakilam",
        "email": "achakila@codeaurora.org",
        "time": "Thu Nov 18 11:15:17 2021 -0800"
      },
      "committer": {
        "name": "Adithya Chakilam",
        "email": "achakila@codeaurora.org",
        "time": "Thu Nov 18 22:28:02 2021 -0800"
      },
      "message": "Merge branch \u0027stable-3.2\u0027 into stable-3.3\n\n* stable-3.2:\n  Adapt to new ProjectCache interface\n\nChange-Id: I80ff7572e5dd90551f1386a16fc2d7734962225b\nDepends-on: https://gerrit-review.googlesource.com/c/gerrit/+/324315\n"
    },
    {
      "commit": "407c15e7949ad5a086ba5c8998be68964ff17de5",
      "tree": "c426997db892b8a6e5161ed9c0fb3e9ac58dabab",
      "parents": [
        "76f5b2573343d1b565477678a58641697003248a"
      ],
      "author": {
        "name": "Adithya Chakilam",
        "email": "achakila@codeaurora.org",
        "time": "Tue Nov 16 09:38:27 2021 -0800"
      },
      "committer": {
        "name": "Adithya Chakilam",
        "email": "achakila@codeaurora.org",
        "time": "Tue Nov 16 09:43:12 2021 -0800"
      },
      "message": "Adapt to new ProjectCache interface\n\nChange-Id: I866fc3fa005fbf0654b5ac8e5179b99e2e1bbdbc\nDepends-on: https://gerrit-review.googlesource.com/c/gerrit/+/323855\n"
    },
    {
      "commit": "5dcb1a64e779def0309354dd0e9886189845b020",
      "tree": "c829d447e94f34a4e59b6c7aa991eb5d882c105b",
      "parents": [
        "8fe544ac569efa357ee054257143d8e1d4aa6afd"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Tue Oct 19 15:25:04 2021 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Tue Oct 19 16:03:34 2021 +0200"
      },
      "message": "Fix ErrorProne issues for JavaLangClash bug pattern\n\nThis requires renaming Module classes that clash with java.lang.Module.\n\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\nChange-Id: I752eba0ada55da62734bfd964c289289047664c5\n"
    },
    {
      "commit": "8fe544ac569efa357ee054257143d8e1d4aa6afd",
      "tree": "9f22520580795fa9db719a79e2eb85c6b89e5830",
      "parents": [
        "3481845462f86959ff4ae4efb726e2bc3e494c3d"
      ],
      "author": {
        "name": "Paladox none",
        "email": "thomasmulhall410@yahoo.com",
        "time": "Tue Sep 28 20:17:38 2021 +0000"
      },
      "committer": {
        "name": "Paladox none",
        "email": "thomasmulhall410@yahoo.com",
        "time": "Wed Sep 29 10:11:33 2021 +0000"
      },
      "message": "Use base url for return url after deleting a repo\n\nChange-Id: I1d1a9b6a7744b8427297d57a7684d207436570cd\n"
    },
    {
      "commit": "3481845462f86959ff4ae4efb726e2bc3e494c3d",
      "tree": "64ca3226188a1bf5613c50f886e7e352e8e5e076",
      "parents": [
        "0b5bcbfc26d9c0559312ced40bb36a37f517b793"
      ],
      "author": {
        "name": "Ben Rohlfs",
        "email": "brohlfs@google.com",
        "time": "Tue Sep 28 12:26:10 2021 +0200"
      },
      "committer": {
        "name": "Ben Rohlfs",
        "email": "brohlfs@google.com",
        "time": "Tue Sep 28 12:26:10 2021 +0200"
      },
      "message": "Add override to comply with new noImplicitOverride ts compiler option\n\nGoogle-Bug-Id: b/201385514\nChange-Id: I0b40385e0a4b1a9f67349dd0d674cb9202edd84c\n"
    },
    {
      "commit": "0b5bcbfc26d9c0559312ced40bb36a37f517b793",
      "tree": "0d0c4ba54380c7676b9f862c0893e5ad26bb30a9",
      "parents": [
        "6202327fe2ac6a86c838e624468ab30ee31a4bee",
        "303fc7c8eb4f26f99fec543cd85079ecca2c2390"
      ],
      "author": {
        "name": "Ben Rohlfs",
        "email": "brohlfs@google.com",
        "time": "Fri Sep 24 05:28:59 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 24 05:28:59 2021 +0000"
      },
      "message": "Merge \"Apply new web plugin code layout to delete-project\""
    },
    {
      "commit": "6202327fe2ac6a86c838e624468ab30ee31a4bee",
      "tree": "8d8206f89d1444f59e7651a125a6df3da5631e97",
      "parents": [
        "7dce6f70611cd8dbf1d38628698155258ee8ef82",
        "9547580dcafb514d28cc1a81d172139b93522d26"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Sep 21 15:09:26 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 21 15:09:26 2021 +0000"
      },
      "message": "Merge \"Use .git in bare repository names in delete and archive test\""
    },
    {
      "commit": "303fc7c8eb4f26f99fec543cd85079ecca2c2390",
      "tree": "36cc013215142a5d6686b4e7fa3b2462ddb65e6f",
      "parents": [
        "7dce6f70611cd8dbf1d38628698155258ee8ef82"
      ],
      "author": {
        "name": "Ben Rohlfs",
        "email": "brohlfs@google.com",
        "time": "Mon Sep 20 15:21:47 2021 +0200"
      },
      "committer": {
        "name": "Ben Rohlfs",
        "email": "brohlfs@google.com",
        "time": "Tue Sep 21 11:46:39 2021 +0200"
      },
      "message": "Apply new web plugin code layout to delete-project\n\nAnd add basic karma testing capabilities.\n\nChange-Id: Ib9742c79da68cc9426afd3d2947b9f6ce8be9631\n"
    },
    {
      "commit": "9547580dcafb514d28cc1a81d172139b93522d26",
      "tree": "23673f4955776aa908389250293bf576507ebbb2",
      "parents": [
        "60ce67dd53ad64c33a2c34aae31e9ee823979109"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Sep 21 00:41:42 2021 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Sep 21 00:43:15 2021 +0100"
      },
      "message": "Use .git in bare repository names in delete and archive test\n\nThe delete and archive test needs to preserve the bare repository\nnaming convention by adding the .git extension to the archived\nrepository path name.\n\nChange-Id: Ic1e4c78cd89d85d09d35d2220ecb8879661f850b\n"
    },
    {
      "commit": "7dce6f70611cd8dbf1d38628698155258ee8ef82",
      "tree": "0c0fd9b29de439ff8ce42d21d154e8a25472fc2c",
      "parents": [
        "7f2f1c5961f89c7f44ac4a26bf8e035db5e70e0c"
      ],
      "author": {
        "name": "Ben Rohlfs",
        "email": "brohlfs@google.com",
        "time": "Tue Jul 13 13:27:22 2021 +0200"
      },
      "committer": {
        "name": "Ben Rohlfs",
        "email": "brohlfs@google.com",
        "time": "Tue Aug 17 15:00:39 2021 +0200"
      },
      "message": "Convert the delete-project plugin to TypeScript\n\nThis is the first upstream plugin to be converted to TypeScript. So\nthis is also going to be used as a blueprint for other conversions.\n\nThe plugin now depends on the new npm package\n@gerritcodereview/typescript-api.\n\nThe tsconfig, rollup.config, eslint configs, and npm modules are defined\nin the top-level plugins/ directory. It should be possible for most of\nthe TypeScript plugins to use the same configs and npm modules.\n\nAlso converts from Polymer to Lit. Note that Lit is compiled into the\nplugin, so it does not depend on Polymer or Lit being present in the\nGerrit core bundle. The compresssed size of the plugin is still just 8k.\n\nLinting works.\n\nThere are not TypeScript tests yet, so this is not a blueprint for\nwriting and executing tests in a TypeScript based plugin.\n\nChange-Id: I919edd722befedf3d24db2760ababa7b25dcbddb\n"
    },
    {
      "commit": "7f2f1c5961f89c7f44ac4a26bf8e035db5e70e0c",
      "tree": "8eba80a6b0246bfbe286e44ef9d263f40fef4a73",
      "parents": [
        "549de033d60b13aaeef45ce5c4bf42be39506268"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Mon Apr 26 14:16:01 2021 +0200"
      },
      "committer": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Mon Apr 26 14:17:16 2021 +0200"
      },
      "message": "Bazel: Migrate to gerrit_js_bundle rule\n\nDepends-On: https://gerrit-review.googlesource.com/c/gerrit/+/304193\nChange-Id: Ic1d7b800abacb5a9e21f815baaed532ceb6c5f4c\n"
    },
    {
      "commit": "549de033d60b13aaeef45ce5c4bf42be39506268",
      "tree": "6438afec3810f5ebeabe1d873ccce65c3ee4268d",
      "parents": [
        "bfe159d3007db0f07e967473b53f679ba8f432df"
      ],
      "author": {
        "name": "Paladox none",
        "email": "thomasmulhall410@yahoo.com",
        "time": "Tue Apr 06 17:23:25 2021 +0000"
      },
      "committer": {
        "name": "Paladox none",
        "email": "thomasmulhall410@yahoo.com",
        "time": "Tue Apr 06 17:27:27 2021 +0000"
      },
      "message": "Switch over to loading .js file\n\nGerrit no longer supports html plugins so we have\nto use the .js version.\n\nBug: Issue 14335\nChange-Id: I284647480d0cac76f3afde0aa566b47121ff9511\n"
    },
    {
      "commit": "bfe159d3007db0f07e967473b53f679ba8f432df",
      "tree": "a61fa9f953bc874c8d80b1fe1c73c12f93c75212",
      "parents": [
        "60ce67dd53ad64c33a2c34aae31e9ee823979109"
      ],
      "author": {
        "name": "Marco Miller",
        "email": "marco.miller@ericsson.com",
        "time": "Mon Nov 23 12:43:53 2020 -0500"
      },
      "committer": {
        "name": "Marco Miller",
        "email": "marco.miller@ericsson.com",
        "time": "Mon Nov 23 12:44:25 2020 -0500"
      },
      "message": "DeletePreconditionsTest: Fix google-java formatting\n\nChange-Id: I19e3d583940d94846f1ec2aa10b7220e55d3e43b\n"
    },
    {
      "commit": "60ce67dd53ad64c33a2c34aae31e9ee823979109",
      "tree": "2eafbea5a2673699a4418e5eec1743a3b4ce5f20",
      "parents": [
        "2dc456a6891f1bc55a9d637cf2553f27ceae6c49",
        "4d2c956a645228fa1647da3017e01ebafb9b6ec0"
      ],
      "author": {
        "name": "Alice Kober-Sotzek",
        "email": "aliceks@google.com",
        "time": "Tue Sep 29 10:14:15 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 29 10:14:15 2020 +0000"
      },
      "message": "Merge \"DeletePreconditions: Use directly SubscriptionGraph\""
    },
    {
      "commit": "4d2c956a645228fa1647da3017e01ebafb9b6ec0",
      "tree": "d5b4a91e0faa713cb93c8597b59ba002054f1dbc",
      "parents": [
        "516fbd8aebfcc49b278b0eb985add293d753bb3f"
      ],
      "author": {
        "name": "Ivan Frade",
        "email": "ifrade@google.com",
        "time": "Sun Sep 27 22:14:06 2020 -0700"
      },
      "committer": {
        "name": "Ivan Frade",
        "email": "ifrade@google.com",
        "time": "Mon Sep 28 13:04:50 2020 -0700"
      },
      "message": "DeletePreconditions: Use directly SubscriptionGraph\n\nNow SubscriptionGraph can be injected on its own, no need to use\nSubmoduleOp.\n\nChange-Id: I8a5d4ca4df5515bafcd33bce088f41851cd6059d\n"
    },
    {
      "commit": "2dc456a6891f1bc55a9d637cf2553f27ceae6c49",
      "tree": "1fa070841a73b3301a5de8b10e50025b51c2aee2",
      "parents": [
        "516fbd8aebfcc49b278b0eb985add293d753bb3f",
        "76f5b2573343d1b565477678a58641697003248a"
      ],
      "author": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Tue Sep 15 10:07:48 2020 +0200"
      },
      "committer": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Tue Sep 15 10:07:48 2020 +0200"
      },
      "message": "Merge branch \u0027stable-3.2\u0027 into master\n\n* stable-3.2:\n  Fix event handling on error\n\nChange-Id: I1ca0d89a1e5245360bf00039fc2abb33fee18f91\n"
    },
    {
      "commit": "76f5b2573343d1b565477678a58641697003248a",
      "tree": "6243248bafff9453e200be4c94a96778679e266f",
      "parents": [
        "e345e6e79900a72981e4ad19d37c7fbdcae4818b"
      ],
      "author": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Mon Sep 14 16:10:12 2020 +0200"
      },
      "committer": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Tue Sep 15 09:48:12 2020 +0200"
      },
      "message": "Fix event handling on error\n\nThe delete-project UI component did not use the legacy mixin anymore,\nbut still used the this.fire() method provided by the mixin.\n\nBug: Issue 13402\nChange-Id: Iac7779d2206e9ac8aa14ba4400c4c46eb04aba50\n"
    },
    {
      "commit": "516fbd8aebfcc49b278b0eb985add293d753bb3f",
      "tree": "d15b2ce0e480b219f5f4c24d906152a48f434158",
      "parents": [
        "1fd1202f98382b1cef986b9510c0425230061673"
      ],
      "author": {
        "name": "Patrick Hiesel",
        "email": "hiesel@google.com",
        "time": "Wed Jul 22 09:23:36 2020 +0200"
      },
      "committer": {
        "name": "Patrick Hiesel",
        "email": "hiesel@google.com",
        "time": "Thu Jul 30 16:05:00 2020 +0200"
      },
      "message": "Adjust to changes in Gerrit core\n\nChange-Id: Ic4a3717877679cf7acc9b4160c058e965789391b\n"
    },
    {
      "commit": "1fd1202f98382b1cef986b9510c0425230061673",
      "tree": "fc053232348d80f1ccf4c797b4b9ad27b1917bc7",
      "parents": [
        "a9976d071ddae916865d5bad1d66507caffe3057"
      ],
      "author": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Thu Jul 23 15:18:38 2020 +0200"
      },
      "committer": {
        "name": "Edwin Kempin",
        "email": "ekempin@google.com",
        "time": "Thu Jul 23 15:19:27 2020 +0200"
      },
      "message": "HideProject: Close MetaDataUpdate after use\n\nMetaDataUpdate is an AutoCloseable.\n\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\nChange-Id: I4016ccb31563d7af5c453d6d8b0f7a0c4bd54924\n"
    },
    {
      "commit": "a9976d071ddae916865d5bad1d66507caffe3057",
      "tree": "74c242f14bc2fe7841d8dafce07036af0faa9b60",
      "parents": [
        "64db8df08e855d8367c146bc5071f68f70df5171"
      ],
      "author": {
        "name": "Patrick Hiesel",
        "email": "hiesel@google.com",
        "time": "Mon Jul 20 11:36:17 2020 +0200"
      },
      "committer": {
        "name": "Patrick Hiesel",
        "email": "hiesel@google.com",
        "time": "Thu Jul 23 13:08:39 2020 +0200"
      },
      "message": "Adjust to changes in Gerrit core\n\nChange-Id: I82e9db4ec73551dda4af0c0beb3f02e5b9cf2879\n"
    },
    {
      "commit": "64db8df08e855d8367c146bc5071f68f70df5171",
      "tree": "bcbee9592d5f20925fdec652f2baf5361584d36c",
      "parents": [
        "7cb59ecacbbe7bc995873ae112e48cf0ff521d2a"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Sat Jun 27 10:41:18 2020 +0200"
      },
      "committer": {
        "name": "David Ostrovsky",
        "email": "david.ostrovsky@gmail.com",
        "time": "Thu Jul 09 13:17:29 2020 +0000"
      },
      "message": "Update rules_nodejs to 2.0.0\n\nDepends-On: https://gerrit-review.googlesource.com/273256\nChange-Id: Id5166d8b6de6539afa22a281e67ec300cebce2ca\n"
    },
    {
      "commit": "7cb59ecacbbe7bc995873ae112e48cf0ff521d2a",
      "tree": "134551a3c99b54c0e1708ac126fec4a9d3858d7c",
      "parents": [
        "f420d06562b97eab26a627baa7722c7f84d95763"
      ],
      "author": {
        "name": "Patrick Hiesel",
        "email": "hiesel@google.com",
        "time": "Tue Jun 30 13:29:09 2020 +0200"
      },
      "committer": {
        "name": "David Ostrovsky",
        "email": "david.ostrovsky@gmail.com",
        "time": "Sun Jul 05 12:48:56 2020 +0000"
      },
      "message": "Adjust to changes in Gerrit core\n\nDepends-On: https://gerrit-review.googlesource.com/273833\nChange-Id: I3dcad7b600213edcb2a079bef9c6a1da7304937e\n"
    },
    {
      "commit": "f420d06562b97eab26a627baa7722c7f84d95763",
      "tree": "6ea6bcde2f7a5fdffb4fc1400941d9814c9acaf3",
      "parents": [
        "7671def07882aab89b19eb7496418588ea7375d9"
      ],
      "author": {
        "name": "Patrick Hiesel",
        "email": "hiesel@google.com",
        "time": "Wed Jun 24 16:22:42 2020 +0200"
      },
      "committer": {
        "name": "Patrick Hiesel",
        "email": "hiesel@google.com",
        "time": "Wed Jun 24 16:22:42 2020 +0200"
      },
      "message": "Adjust to changes in Gerrit core\n\nChange-Id: Ib03ad58339ec6cfe4fb9bd15d048d3af7685d49c\n"
    },
    {
      "commit": "7671def07882aab89b19eb7496418588ea7375d9",
      "tree": "2c69290681c4c632f374ce7179f868be3d4614f3",
      "parents": [
        "f46ebcc535a4a92b6f84df6c83df1153d7f6c0b2"
      ],
      "author": {
        "name": "Tao Zhou",
        "email": "taoalpha@google.com",
        "time": "Fri Jun 05 14:49:35 2020 +0200"
      },
      "committer": {
        "name": "Tao Zhou",
        "email": "taoalpha@google.com",
        "time": "Fri Jun 05 14:49:35 2020 +0200"
      },
      "message": "Remove gr-repo-command\n\nScreenshot[disabled]: https://imgur.com/mLiYQtr\nScreenshot[enabled]: https://imgur.com/VXP1lO1\n\nChange-Id: Iebfaf0f7c69e926a36870fa9990066dd9a87e8d8\n"
    },
    {
      "commit": "f46ebcc535a4a92b6f84df6c83df1153d7f6c0b2",
      "tree": "dbcae6ea7434294af79bd3e5f3d6943818ae3d6d",
      "parents": [
        "02cced37fd755a1123b1ec18af96503683d88f50"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Thu Jun 04 07:04:30 2020 +0200"
      },
      "committer": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Thu Jun 04 07:04:30 2020 +0200"
      },
      "message": "Bazel: Format build file with buildifier\n\nChange-Id: I9ed851adeb12df18eb730e7290f8bf6f891126f0\n"
    },
    {
      "commit": "02cced37fd755a1123b1ec18af96503683d88f50",
      "tree": "4fdba5f512e6dfd8aca9a3adbdc8c26caca8f4d9",
      "parents": [
        "e345e6e79900a72981e4ad19d37c7fbdcae4818b",
        "a6aadaf81c048a15b9c84f1740b90feb986d23ac"
      ],
      "author": {
        "name": "Alice Kober-Sotzek",
        "email": "aliceks@google.com",
        "time": "Tue Jun 02 12:34:22 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 02 12:34:22 2020 +0000"
      },
      "message": "Merge \"Delete: Use hasSuperproject to check\""
    },
    {
      "commit": "e345e6e79900a72981e4ad19d37c7fbdcae4818b",
      "tree": "2f3d5393e9f32148e868dcc6085dc95127d6b066",
      "parents": [
        "ea75463210b821d0b41c4a15a902c600bdf50285"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Thu May 21 14:56:00 2020 +0200"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@digital.ai",
        "time": "Thu May 21 14:30:55 2020 +0000"
      },
      "message": "Fix ProtectedMembersInFinalClass error flagged by error prone\n\nRunning recent error prone version complaining on that code:\n\nDeleteCommand.java:53: error: [ProtectedMembersInFinalClass] Make members\nof final classes package-private: \u003cinit\u003e\n  protected DeleteCommand(DeleteProject deleteProject, DeletePreconditions preConditions) {\n            ^\n    (see https://errorprone.info/bugpattern/ProtectedMembersInFinalClass)\n\nBug: Issue 12677\nChange-Id: I3ef90ac3106240403dc88178262edf2447f30cb8\n"
    },
    {
      "commit": "ea75463210b821d0b41c4a15a902c600bdf50285",
      "tree": "bf5d525cc916d486631396cf3256efba5d55d032",
      "parents": [
        "d6ad8e7de90331a317a8eaaf353f7cb7bd31d1a1"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Thu May 21 14:53:22 2020 +0200"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@digital.ai",
        "time": "Thu May 21 14:30:30 2020 +0000"
      },
      "message": "Fix JavaTimeDefaultTimeZone error flagged by error prone\n\nRunning recent error prone version complaining on that code:\n\nTimeMachine.java:54: error: [JavaTimeDefaultTimeZone] Clock.systemDefaultZone()\nis not allowed because it silently uses the system default time-zone.\nYou must pass an explicit time-zone (e.g., ZoneId.of(\"America/Los_Angeles\")\n to this method.\n    clock \u003d Clock.systemDefaultZone();\n                                   ^\n    (see https://errorprone.info/bugpattern/JavaTimeDefaultTimeZone)\n\nBug: Issue 12677\nChange-Id: I10e34bf90d1903aeb40810509b87b0519971ade1\n"
    },
    {
      "commit": "a6aadaf81c048a15b9c84f1740b90feb986d23ac",
      "tree": "f0fd9bc47067f526b3f273da4af35f51e5cb721e",
      "parents": [
        "d6ad8e7de90331a317a8eaaf353f7cb7bd31d1a1"
      ],
      "author": {
        "name": "Yunjie Li",
        "email": "yunjieli@google.com",
        "time": "Mon May 18 14:21:40 2020 -0700"
      },
      "committer": {
        "name": "Yunjie Li",
        "email": "yunjieli@google.com",
        "time": "Tue May 19 09:44:09 2020 -0700"
      },
      "message": "Delete: Use hasSuperproject to check\n\nUse hasSuperproject to check if a branch is subscribed by other projects\nto avoid recalculation.\n\nChange-Id: I30d7796e48b09b48f2cfafc42a7bca2141db283e\n"
    },
    {
      "commit": "d6ad8e7de90331a317a8eaaf353f7cb7bd31d1a1",
      "tree": "33e8c5dbb6be7fdc1cb0b7112a080b9ff4ea0a11",
      "parents": [
        "b81916e175fb485b504b01aa7bf7f3a8e4ff54d0"
      ],
      "author": {
        "name": "Tao Zhou",
        "email": "taoalpha@google.com",
        "time": "Thu May 14 09:53:01 2020 +0200"
      },
      "committer": {
        "name": "Tao Zhou",
        "email": "taoalpha@google.com",
        "time": "Thu May 14 07:53:39 2020 +0000"
      },
      "message": "Use iife format when bundling assets to avoid naming collision\n\nBug: Issue 12744\nChange-Id: If6a53d58228e34f724a59980443a9bdcf8ec5dc9\n"
    },
    {
      "commit": "b81916e175fb485b504b01aa7bf7f3a8e4ff54d0",
      "tree": "ce42acfdfa4e928ab7fc9139a441d3d41883676c",
      "parents": [
        "041b0559a8a68f51e0f34221e8d3903995b0cc9c",
        "debaa2c6d66b5a3c1bc95bc09283344c88407d40"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@digital.ai",
        "time": "Wed May 13 14:44:46 2020 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@digital.ai",
        "time": "Wed May 13 14:44:46 2020 +0900"
      },
      "message": "Merge branch \u0027stable-3.1\u0027\n\n* stable-3.1:\n  Format Java files with google-java-format\n\nChange-Id: I131e4e8b407fbb6dc2953380fcf3170974aeb87b\n"
    }
  ],
  "next": "debaa2c6d66b5a3c1bc95bc09283344c88407d40"
}
