)]}'
{
  "log": [
    {
      "commit": "dd147c1955c28bd57a33121c5d3b96bdb5550b42",
      "tree": "f7b79cb7d234170e4a335b724c42375d65ba8d4c",
      "parents": [
        "ac53f6ed8d1e43fc16784ad7c3c9626d4ea4ce84"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Thu Apr 04 06:53:50 2024 +0200"
      },
      "committer": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Thu Apr 04 07:08:09 2024 +0200"
      },
      "message": "Format build files using buildifier\n\nRelease-Notes: skip\nChange-Id: I67afcff877e2f14574c15e7d60d7bf2a70c59d1e\n"
    },
    {
      "commit": "ac53f6ed8d1e43fc16784ad7c3c9626d4ea4ce84",
      "tree": "3948c5e204b859b9858328f07bea106dee46ecab",
      "parents": [
        "c72c1316a06c00f2de6d8d715bda2eaa3c14675e"
      ],
      "author": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Mon Mar 11 17:18:31 2024 -0600"
      },
      "committer": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Thu Mar 14 16:36:03 2024 +0000"
      },
      "message": "Use VersionedConfigFile from core\n\nThis new class in core replaces the custom AbstractVersionedMetaData\nclass that has been maintained in the task plugin.\n\nRelease-Notes: skip\nChange-Id: Id55e658ec3735a59a8241e50a7654f8d1a9e5195\n"
    },
    {
      "commit": "c72c1316a06c00f2de6d8d715bda2eaa3c14675e",
      "tree": "2edfd4f849a17ff2c83763a0f7f15e20e89b328d",
      "parents": [
        "f4a234426e0604f7f02673be2f602c182c0a0328"
      ],
      "author": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Tue Mar 12 21:37:54 2024 -0600"
      },
      "committer": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Thu Mar 14 16:14:03 2024 +0000"
      },
      "message": "test: Fix docker-tests for in-tree/master\n\nWhen running the docker tests against master we need to depend on the\nin-tree WAR so that the runtime APIs match what we compiled against. In\norder to depend on the WAR we need to add the polymer-bridges project\n(core submodule) as a required project so that the core build is\nsuccessful.\n\nThis also requires us to remove all other plugins from the 3.9 docker\nimage to avoid any incompatiblities they may have with master.\n\nAs a result of this change, the bazel test docker-tests target now only\nworks with an in-tree build on the master branch. This is an unfortunate\ndifference compared to the stable branches, but it makes sense given\nthat we need a Gerrit WAR with compatible runtime APIs running in the\ncontainer.\n\nChange-Id: Id4484243bd526338053afb8ad1d1f15410589c39\n"
    },
    {
      "commit": "f4a234426e0604f7f02673be2f602c182c0a0328",
      "tree": "7b26f5ca1eea7bc4aadd8f913902716d93a45d4a",
      "parents": [
        "52a09db17cde04936dcd41813eda0a2af45e0950",
        "9776a045ff91b4ebe165ddb3d9aee63189f48f4d"
      ],
      "author": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Wed Mar 13 18:00:38 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 13 18:00:38 2024 +0000"
      },
      "message": "Merge \"Merge branch \u0027stable-3.5\u0027 into stable-3.9\" into stable-3.9"
    },
    {
      "commit": "9776a045ff91b4ebe165ddb3d9aee63189f48f4d",
      "tree": "a4d189379ec854b9a4e52e92cff3a6c2840d5e0f",
      "parents": [
        "abeb5c9403da7849f019a5fa7ff0cf5704b4dfad",
        "bb5da681c8e0c8a9a80bbc7f1dd18add2d3406fd"
      ],
      "author": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Wed Mar 13 11:42:34 2024 -0600"
      },
      "committer": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Wed Mar 13 11:42:34 2024 -0600"
      },
      "message": "Merge branch \u0027stable-3.5\u0027 into stable-3.9\n\n* stable-3.5:\n  build: Use maven_jar from bazlets/core\n\nChange-Id: Iaef29f69d386d31586d0d763a11657a1fdf7f276\n"
    },
    {
      "commit": "bb5da681c8e0c8a9a80bbc7f1dd18add2d3406fd",
      "tree": "81b9b978b6f2ae81acec23b7b9719d930ea6f1ac",
      "parents": [
        "4c76a46a844e90cef89bf8de9a301d1934831537"
      ],
      "author": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Wed Mar 13 11:11:02 2024 -0600"
      },
      "committer": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Wed Mar 13 11:11:02 2024 -0600"
      },
      "message": "build: Use maven_jar from bazlets/core\n\nNewer Bazel releases have a different maven_jar rule than the one\nprovided by bazlets/core which can lead to different and undesired\nbehavior.\n\nChange-Id: I724ed8677fc3645c9bbb91cdb315a9ee03c833ee\n"
    },
    {
      "commit": "52a09db17cde04936dcd41813eda0a2af45e0950",
      "tree": "e19e2ee71631572fbf3726023718e651fb58810e",
      "parents": [
        "abeb5c9403da7849f019a5fa7ff0cf5704b4dfad"
      ],
      "author": {
        "name": "Kaushik Lingarkar",
        "email": "kaushik.lingarkar@linaro.org",
        "time": "Tue Mar 12 15:40:23 2024 -0700"
      },
      "committer": {
        "name": "Kaushik Lingarkar",
        "email": "kaushik.lingarkar@linaro.org",
        "time": "Wed Mar 13 09:08:01 2024 -0700"
      },
      "message": "UI: adapt to core changes\n\n* Update task and show_all/hide_all icons names\n* Fix _onChipClick() to change focus to tasks tab\n* Fix tasks failing to render task-hints\n\nScreenshots: https://imgur.com/a/RBB2qtd\n\nChange-Id: I6b212ff1a86e0fc330a98e9fda17c289cd91186d\n"
    },
    {
      "commit": "abeb5c9403da7849f019a5fa7ff0cf5704b4dfad",
      "tree": "95deeaf19d76c79fcc7733d65dc2092afc5d6204",
      "parents": [
        "2094424ab80f4f0b240f8931c3dff9e3f025d3d3",
        "4c76a46a844e90cef89bf8de9a301d1934831537"
      ],
      "author": {
        "name": "Kaushik Lingarkar",
        "email": "kaushik.lingarkar@linaro.org",
        "time": "Tue Mar 12 11:43:27 2024 -0700"
      },
      "committer": {
        "name": "Kaushik Lingarkar",
        "email": "kaushik.lingarkar@linaro.org",
        "time": "Tue Mar 12 11:43:58 2024 -0700"
      },
      "message": "Merge branch \u0027stable-3.5\u0027\n\n* stable-3.5:\n  Allow configuring the root project and branch\n  Add support for names-factory provided by a plugins\n  Update .gitignore to include intellij specific files\n  Rename TaskAttributeFactory to TaskPluginDefinedInfoFactory\n  Harden shell commands\n  Migrate configuration to \u003cplugin-name\u003e.config from gerrit.config\n  Revert \"test: Remove complicated JSON-\u003eshell dict logic\"\n  test: docker: Update to Alpine 3.16\n  test: Run py 2to3\n  test: lib_helper: Remove inline python\n  test: Consistently apply json_pp to expected\n  test: Remove complicated JSON-\u003eshell dict logic\n  test: Use jq more for shell json parsing\n  UI: Move tasks to a primary tab\n  UI: Fix html for task chips\n\nChange-Id: Ic36c9499b91ee223a274a4dab9c2ad239118239f\n"
    },
    {
      "commit": "4c76a46a844e90cef89bf8de9a301d1934831537",
      "tree": "25ec3f99d6391681a1a49264ae4407c1c13835cf",
      "parents": [
        "d22e32c74178072a29c48f7deef6288991b32630",
        "329dbbfc9d1d919c734a86d434a5de9f270d4081"
      ],
      "author": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Tue Mar 12 15:53:59 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 12 15:53:59 2024 +0000"
      },
      "message": "Merge \"Add support for names-factory provided by a plugins\" into stable-3.5"
    },
    {
      "commit": "d22e32c74178072a29c48f7deef6288991b32630",
      "tree": "115e9d884b19e4982de81dc386411851427d59d4",
      "parents": [
        "894edf4e9d0b12c3d1bcaa07deaee514ac242a91"
      ],
      "author": {
        "name": "Kaushik Lingarkar",
        "email": "kaushik.lingarkar@linaro.org",
        "time": "Tue Feb 20 10:24:56 2024 -0800"
      },
      "committer": {
        "name": "Kaushik Lingarkar",
        "email": "kaushik.lingarkar@linaro.org",
        "time": "Mon Mar 11 16:53:42 2024 -0700"
      },
      "message": "Allow configuring the root project and branch\n\nThis change introduces plugin config options to allow changing the\ndefault root project and branch. All-Projects:refs/meta/config usually\nhas restricted permissions, so admins have to get involved to get task\nconfig updates merged. Currently, permissions on refs/meta/config have\nto be relaxed so that task config devs can read/push on that ref.\n\nHaving a custom root project and branch will allow organizations to\nprovide a self-service model for task config updates without involving\nadmins. They will no longer need to relax permissions on All-projects\nand refs/meta/config as it can be a security concern. Additionally,\nconfiguring customized labels, submit requirements and other plugin\nconfigs (for example code-owners) for task config devs on All-Projects\ncannot be done without impacting all other projects on the server as\nthey inherit from All-Projects. A document detailing the requirements\nfor task config development has been added as well which attempts to\nhighlight the need for allowing custom root project and branch.\n\nTest framework has been updated such that the entire test suite now\nruns on both the default and custom root project and branch.\n\nChange-Id: I77fafe7e6a5347e68f6a4f097caa0b0d9421cdb7\n"
    },
    {
      "commit": "329dbbfc9d1d919c734a86d434a5de9f270d4081",
      "tree": "52a69534dff99859a0e6a27ba85b51af558070f2",
      "parents": [
        "894edf4e9d0b12c3d1bcaa07deaee514ac242a91"
      ],
      "author": {
        "name": "Prudhvi Akhil Alahari",
        "email": "prudhvi.alahari@linaro.org",
        "time": "Thu Aug 17 15:44:23 2023 +0530"
      },
      "committer": {
        "name": "Kaushik Lingarkar",
        "email": "kaushik.lingarkar@linaro.org",
        "time": "Fri Mar 08 21:04:55 2024 +0000"
      },
      "message": "Add support for names-factory provided by a plugins\n\nAdd new names-factory type `plugin` for the names factory provided by a\nplugin that returns a list of names.\nThe `plugin` type names-factory generates task definition for all the\nnames returned by the plugin, with task(s) name set to the name(s)\nprovided by plugin.\n\nExample of names-factory of type `plugin` config:\n\n```\n[names-factory \"plugin provided names\"]\n    type \u003d plugin\n    plugin \u003d foobar\n    provider \u003d names_provider\n    arg \u003d baz\n```\n\nChange-Id: Ia41a245ac12320409b576210b4a44a2a610f41b9\n"
    },
    {
      "commit": "894edf4e9d0b12c3d1bcaa07deaee514ac242a91",
      "tree": "d600bfe915c3f51c64df7b12363cb81a6d78c296",
      "parents": [
        "e72761c5beedc75946a5d2c4ad0b6d5556f7d3fb",
        "ee2172908a8feeb993d00b1cc47bbe381ef1a98a"
      ],
      "author": {
        "name": "Kaushik Lingarkar",
        "email": "kaushik.lingarkar@linaro.org",
        "time": "Wed Mar 06 16:53:54 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 06 16:53:54 2024 +0000"
      },
      "message": "Merge \"Rename TaskAttributeFactory to TaskPluginDefinedInfoFactory\" into stable-3.5"
    },
    {
      "commit": "e72761c5beedc75946a5d2c4ad0b6d5556f7d3fb",
      "tree": "2d0cc063eab25a0c88f3d0d469bf3459a6b97c3a",
      "parents": [
        "9c9614f4c37deb62a875474f6380fca6eb933948"
      ],
      "author": {
        "name": "Prakash Aswal",
        "email": "prakash.aswal@linaro.org",
        "time": "Thu Feb 29 13:00:35 2024 +0530"
      },
      "committer": {
        "name": "Prakash Aswal",
        "email": "prakash.aswal@linaro.org",
        "time": "Tue Mar 05 04:16:47 2024 +0000"
      },
      "message": "Update .gitignore to include intellij specific files\n\nChange-Id: I2ddf485cfaaac33f92aea44bbb6b4d17efc6727d\n"
    },
    {
      "commit": "ee2172908a8feeb993d00b1cc47bbe381ef1a98a",
      "tree": "a35232752c970b64cf127b4b8de8c1abafbd9c31",
      "parents": [
        "9c9614f4c37deb62a875474f6380fca6eb933948"
      ],
      "author": {
        "name": "Kaushik Lingarkar",
        "email": "kaushik.lingarkar@linaro.org",
        "time": "Mon Mar 04 11:51:49 2024 -0800"
      },
      "committer": {
        "name": "Kaushik Lingarkar",
        "email": "kaushik.lingarkar@linaro.org",
        "time": "Mon Mar 04 11:51:54 2024 -0800"
      },
      "message": "Rename TaskAttributeFactory to TaskPluginDefinedInfoFactory\n\nChangeAttributeFactory interface was deprecated and replaced\nwith ChangePluginDefinedInfoFactory in I6bc941a22b. Rename\nTaskAttributeFactory so that it better relates to the interface\nit implements.\n\nChange-Id: I738ba3e577a9a837332bafc108345cd8c2c19832\n"
    },
    {
      "commit": "9c9614f4c37deb62a875474f6380fca6eb933948",
      "tree": "d8ca468ea1a372289e205d245406186ee5b17c33",
      "parents": [
        "7e271fb67be347ba4a19ed3ecf0a88fbcab07437"
      ],
      "author": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Mon Feb 26 11:06:00 2024 -0800"
      },
      "committer": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Mon Feb 26 11:25:11 2024 -0800"
      },
      "message": "Harden shell commands\n\nUse \u0027--\u0027 to separate options and args.\n\nChange-Id: Id27566f8baff949382f4954bb34914270e01acc8\n"
    },
    {
      "commit": "7e271fb67be347ba4a19ed3ecf0a88fbcab07437",
      "tree": "c301c54a0781e7d741e83519ed96bb876d99a3fe",
      "parents": [
        "b05937904ef2bd2bcf8677500961d00efce6f613"
      ],
      "author": {
        "name": "Kaushik Lingarkar",
        "email": "kaushik.lingarkar@linaro.org",
        "time": "Fri Feb 16 15:52:52 2024 -0800"
      },
      "committer": {
        "name": "Kaushik Lingarkar",
        "email": "kaushik.lingarkar@linaro.com",
        "time": "Fri Feb 23 22:41:18 2024 +0000"
      },
      "message": "Migrate configuration to \u003cplugin-name\u003e.config from gerrit.config\n\nMove existing configuration to \u003cplugin-name\u003e.config as it provides\nmore flexibility when naming i.e subsection names can be used and\nmakes them readable. Using a \u003cplugin-name\u003e.config also has the\nadded advantage of having all plugin related configs in a single\nlocation.\n\nFor backward compatibility, existing configuration is still read from\ngerrit config if the plugin config is not found.\n\nChange-Id: If0ed517406c3f5a78c8b0328ef5d4c23c8326dae\n"
    },
    {
      "commit": "b05937904ef2bd2bcf8677500961d00efce6f613",
      "tree": "17d11af2568ebbd94db1b4455c31a83e47417de6",
      "parents": [
        "85c01de7caeb34e92859303a217bde6b7d6b0f8f"
      ],
      "author": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Thu Feb 22 13:21:50 2024 -0800"
      },
      "committer": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Thu Feb 22 13:57:38 2024 -0800"
      },
      "message": "Revert \"test: Remove complicated JSON-\u003eshell dict logic\"\n\nThis reverts commit 60b4d237fb9f56ee86c14147af3db61209f99717.\n\nUsing a bash associative array provides a significant performance\nimprovement (~40s / 43% reduction). Re-add that functionality but use jq\nto do the processing instead of python.\n\nChange-Id: Ib49cf69676c3187ceb1e26ac1ca3686609484036\n"
    },
    {
      "commit": "85c01de7caeb34e92859303a217bde6b7d6b0f8f",
      "tree": "da2cb90650b43f21b476c06fc1443fce027aca0e",
      "parents": [
        "405d711f2543932c749cfa6ca7637abb731f6a47"
      ],
      "author": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Fri Feb 16 12:11:42 2024 -0800"
      },
      "committer": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Fri Feb 16 12:11:42 2024 -0800"
      },
      "message": "test: docker: Update to Alpine 3.16\n\nAlpine 3.11 has been EOL since 2021-11-01 and 3.16 is the oldest version\nthat\u0027s still supported. This upgrade requires two fixes:\n  1) Moving to Python 3\n  2) Working around the OpenSSH 9 scp backwards-incompatible API change\n\nFor #1, the parent changes removed the inline Python usage and then\nupdated the two Python scripts used by tests to support both Python 2\nand 3. Modifying their shebang lines to explicitly use `python3` is all\nthat\u0027s needed in this change.\n\nFor #2, the solution adopted by upstream was to always prefer using curl\nto download the commit-msg hook script instead of scp. Using that for\nthe tests is a simple fix.\n\nChange-Id: I4ea8dfdf98ace06918ee6d680b8a3b77f7523601\n"
    },
    {
      "commit": "405d711f2543932c749cfa6ca7637abb731f6a47",
      "tree": "264e11a911eb8a509b80ced9505a45f5bd3c56c5",
      "parents": [
        "d0c26f3316700a8fbd06d0821472874010aa57b9"
      ],
      "author": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Fri Feb 16 12:11:42 2024 -0800"
      },
      "committer": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Fri Feb 16 12:11:42 2024 -0800"
      },
      "message": "test: Run py 2to3\n\nFix the couple python test files to support both python 2 and 3 syntax.\nWe could instead replace these with equivalent jq functions, but it\u0027s\nsimpler for now to fix the small compatibility problems.\n\nChange-Id: I944d1b90fd1ebfbdcc679328657a332184922ee3\n"
    },
    {
      "commit": "d0c26f3316700a8fbd06d0821472874010aa57b9",
      "tree": "4d3b2093414c55886f85258af4a765ed8a4d7e85",
      "parents": [
        "a32439502b04e65334b968f948a0257f8fb3e75f"
      ],
      "author": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Fri Feb 16 12:11:42 2024 -0800"
      },
      "committer": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Fri Feb 16 12:11:42 2024 -0800"
      },
      "message": "test: lib_helper: Remove inline python\n\nUsing jq instead of python means we don\u0027t have to worry about py2 vs py3\nincompatibilities.\n\nChange-Id: Idabd488dc4e02250650d2eccece42968d993715a\n"
    },
    {
      "commit": "a32439502b04e65334b968f948a0257f8fb3e75f",
      "tree": "ede9ee1c905999e1c3de6fccaef1ebc80611bd19",
      "parents": [
        "60b4d237fb9f56ee86c14147af3db61209f99717"
      ],
      "author": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Fri Feb 16 12:11:42 2024 -0800"
      },
      "committer": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Fri Feb 16 12:11:42 2024 -0800"
      },
      "message": "test: Consistently apply json_pp to expected\n\nWe use json_pp on both expected and actual results to ensure the\ncomparisons are equal. Some expected files weren\u0027t getting json_pp\napplied because it was missed or the file was reused for more processing\nand then didn\u0027t get updated. Fix all expected files to use json_pp.\n\nThis also allows us to later change the internals of json_pp and keep\nthe tests passing.\n\nChange-Id: I24673890beb9e687e39d11115e7b063ff2c286e3\n"
    },
    {
      "commit": "60b4d237fb9f56ee86c14147af3db61209f99717",
      "tree": "eb2ac2f0739b60a5db69bd94c1c43a226820ee26",
      "parents": [
        "2975ee87cb33d7a222cf86c0cce5a6fe532b3d2c"
      ],
      "author": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Fri Feb 16 12:11:42 2024 -0800"
      },
      "committer": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Fri Feb 16 12:11:42 2024 -0800"
      },
      "message": "test: Remove complicated JSON-\u003eshell dict logic\n\nWe can get the same result by individually parsing the JSON entities and\nthat code is much simpler to understand and maintain. This also removes\nmore inline Python code for better compatibility with different OS\nversions.\n\nChange-Id: I80d728f2c58993dc7a23811fd6a9214927e2835f\n"
    },
    {
      "commit": "2975ee87cb33d7a222cf86c0cce5a6fe532b3d2c",
      "tree": "2dc3b0217beeaaed5b051e7255ab62346b5050fa",
      "parents": [
        "d70b353d078b07d6f11a8639c57733487eaec2cf"
      ],
      "author": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Fri Feb 16 12:11:42 2024 -0800"
      },
      "committer": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Fri Feb 16 12:11:42 2024 -0800"
      },
      "message": "test: Use jq more for shell json parsing\n\nUsing jq in these functions is a simple replacement for the inline\nPython that\u0027s susceptible to breaking due to version differences.\n\nChange-Id: I78f4c24b9b1a4bb4f6d406bcbcdbff8c82504c2b\n"
    },
    {
      "commit": "2094424ab80f4f0b240f8931c3dff9e3f025d3d3",
      "tree": "1c6c9230c4dd14b036e8f00ab00e22cca31f2571",
      "parents": [
        "41c8d2df1ef01cb1c46c2571612be4adc493e361"
      ],
      "author": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Thu Feb 01 13:58:32 2024 -0700"
      },
      "committer": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Mon Feb 12 10:51:26 2024 -0800"
      },
      "message": "Update to 3.9.1\n\nUpdate build/test files and bazlets to bring in a newer rules_nodejs\nversion. Also update the bazel version and eslintrc to match core\nstable-3.9.\n\nThe tests require adding \u0027--add-opens java.base/java.lang\u003dALL-UNNAMED\u0027\nto the container.javaOptions because of the reflection used in\ncom.googlesource.gerrit.plugins.task.properties.\n\nThe `lint_test` build rule for ESLint doesn\u0027t seem to have a way to work\nfor both in-tree and standalone execution, so update it to continue\npassing in-tree since that\u0027s how CI runs it.\n\nChange-Id: Ibded565ba8ac98b301e1b4285b6182804df5b4f4\n"
    },
    {
      "commit": "d70b353d078b07d6f11a8639c57733487eaec2cf",
      "tree": "d00d60f79164581fe35bafc8c7709cf6bda6a798",
      "parents": [
        "0b189b26af33b742fe1e59c082a4c2a1db8579a4"
      ],
      "author": {
        "name": "Kaushik Lingarkar",
        "email": "kaushik.lingarkar@linaro.org",
        "time": "Wed Dec 20 15:21:46 2023 +0530"
      },
      "committer": {
        "name": "Kaushik Lingarkar",
        "email": "kaushik.lingarkar@linaro.org",
        "time": "Mon Feb 12 09:02:53 2024 -0800"
      },
      "message": "UI: Move tasks to a primary tab\n\nTasks are now rendered in a primary tab. This makes the UI compact and\nconsistent. The API to fetch tasks has been moved from GrTaskPlugin to\nGrTaskSummary because the summary is registered to the commit-container\nwhich renders by default when the change page is loaded. The tasks tab\ncontent is attached to \u0027change-view-tab-content\u0027 which only renders when\nthe tab is clicked or focus is changed to it.\n\nScreenshots: https://imgur.com/a/Qr2i1pQ\n\nChange-Id: I14a21fc83ef04a909576dfd796624044cbf72858\n"
    },
    {
      "commit": "41c8d2df1ef01cb1c46c2571612be4adc493e361",
      "tree": "237c2acb1b56d0e10444cecfc2efea1ff385acfc",
      "parents": [
        "ea05f853e87d53f641773680732359dd856a5d18"
      ],
      "author": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Fri Feb 02 11:59:39 2024 -0700"
      },
      "committer": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Fri Feb 09 15:07:58 2024 -0800"
      },
      "message": "Update to 3.8\n\nBuild against 3.8.0 and test against 3.8.3.\n\nChange-Id: I9c9003586373b817ce617dadc7f716fb58409b2f\n"
    },
    {
      "commit": "ea05f853e87d53f641773680732359dd856a5d18",
      "tree": "aedcf65cd2fe8f698fa58bbe3d0c99b42d1c78ae",
      "parents": [
        "fa17a7d0b017eec3e00128cb2b6dcd681592d273"
      ],
      "author": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Fri Feb 02 11:51:58 2024 -0700"
      },
      "committer": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Fri Feb 09 14:58:49 2024 -0800"
      },
      "message": "Update to 3.7\n\nBuild against 3.7.0 and test against 3.7.6. Also update the bazel\nversion and npm packages to match core stable-3.7.\n\nChange-Id: I19fce64aace6745c6d3180f5b701de38ddcb3077\n"
    },
    {
      "commit": "fa17a7d0b017eec3e00128cb2b6dcd681592d273",
      "tree": "8c645059291913bd964fd37cf88b23814c8eccb6",
      "parents": [
        "e50675edca5c329869562091f29dcb991bc35252"
      ],
      "author": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Fri Feb 02 11:41:46 2024 -0700"
      },
      "committer": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Fri Feb 09 14:42:33 2024 -0800"
      },
      "message": "Update to 3.6\n\nBuild against 3.6.0 and test against 3.6.8.\n\nChange-Id: I32579d0d894d41073c34a3b129fc189b74e43e1f\n"
    },
    {
      "commit": "0b189b26af33b742fe1e59c082a4c2a1db8579a4",
      "tree": "1272df1795c2b29cab8452d500476689b4f46e95",
      "parents": [
        "e50675edca5c329869562091f29dcb991bc35252"
      ],
      "author": {
        "name": "Kaushik Lingarkar",
        "email": "kaushik.lingarkar@linaro.org",
        "time": "Fri Feb 09 11:55:08 2024 -0800"
      },
      "committer": {
        "name": "Kaushik Lingarkar",
        "email": "kaushik.lingarkar@linaro.org",
        "time": "Fri Feb 09 12:09:43 2024 -0800"
      },
      "message": "UI: Fix html for task chips\n\nChange-Id: I8d771d14e35f56f5b5e6c15e0a3566552ec7b8ea\n"
    },
    {
      "commit": "e50675edca5c329869562091f29dcb991bc35252",
      "tree": "4054c23ae1f7a14bbd7e27e3aa6dc00e4e047f37",
      "parents": [
        "c5bc4e7506b2870fe14847df11cd4f5dcc26c406"
      ],
      "author": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Tue Feb 06 21:32:14 2024 -0700"
      },
      "committer": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Wed Feb 07 14:55:25 2024 -0700"
      },
      "message": "Revert \"bazel: Use canonical reproducible load_bazlets rule\"\n\nThis reverts commit a7246edf9d1c1fc536d405315c64c030bfaf93e4.\n\nSince bazel v6.1.0 the warning about shallow_since has been removed\nsince it was determined [1] to be potentially harmful to build\nperformance and reliability.\n\n[1] https://github.com/bazelbuild/bazel/issues/12857\n\nChange-Id: I6003ae03511bdc7b5ba2cbb6b15b928bba18bfb5\n"
    },
    {
      "commit": "c5bc4e7506b2870fe14847df11cd4f5dcc26c406",
      "tree": "b2334ddceaffd62abec1df9bae0f8dc295f31063",
      "parents": [
        "cf73e1e2d7971d3338f35d1133f63329a96a15f9",
        "a889f298e7828ff4e0317e7a72d8fd27a03269eb"
      ],
      "author": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Thu Feb 01 13:26:16 2024 -0700"
      },
      "committer": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Thu Feb 01 13:26:16 2024 -0700"
      },
      "message": "Merge branch \u0027master\u0027 into stable-3.5\n\n* master:\n  TaskTree: remove \u0027ERROR:\u0027 prefix from log statement\n  TaskTree: fix errorprone warning about Flogger\n\nMost development has happened in the stable-3.5 branch, but master has a\ncouple commits missing from there. Merge them in before creating new\nstable branches based on stable-3.5.\n\nChange-Id: I0698db5f5cdadb5b208fdac09e0a4ffece20b2d0\n"
    },
    {
      "commit": "cf73e1e2d7971d3338f35d1133f63329a96a15f9",
      "tree": "5c93d4c8a9c492ae35fabc9062544e3f47a8d92e",
      "parents": [
        "ad5346cbbe5d6df9d841aaaa5a94544001daaf6a"
      ],
      "author": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Wed Jan 31 21:46:52 2024 -0700"
      },
      "committer": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Wed Jan 31 21:46:52 2024 -0700"
      },
      "message": "task_expression: Fix syntax typo\n\nThe property syntax is ${prop} not {$prop}.\n\nChange-Id: Ifa73786fd0fab660e3cc758742063d348320904f\n"
    },
    {
      "commit": "ad5346cbbe5d6df9d841aaaa5a94544001daaf6a",
      "tree": "606d74b566479897005f45c9633bbfeb9decb00d",
      "parents": [
        "32afdc42d58e81985b53738cb3f4dadd7b039d87"
      ],
      "author": {
        "name": "Kaushik Lingarkar",
        "email": "kaushik.lingarkar@linaro.org",
        "time": "Thu Jan 25 14:58:11 2024 +0530"
      },
      "committer": {
        "name": "Kaushik Lingarkar",
        "email": "kaushik.lingarkar@linaro.org",
        "time": "Thu Jan 25 15:02:13 2024 +0530"
      },
      "message": "UI: Update theme for duplicate chip to green\n\nDuplicate tasks don\u0027t signify a failure, so change their color to\nmatch successful tasks. Also, change the order of chips to show\nduplicate chips at the end.\n\nChange-Id: I079491efe0b3ed94a1bd7881ad19c26a27765f39\n"
    },
    {
      "commit": "32afdc42d58e81985b53738cb3f4dadd7b039d87",
      "tree": "84983a87a37f06148093dbf490e3f27733a760eb",
      "parents": [
        "307c2c4fa93185af23883dc194a50ca3388c354a"
      ],
      "author": {
        "name": "Kaushik Lingarkar",
        "email": "kaushik.lingarkar@linaro.org",
        "time": "Wed Jan 24 15:31:37 2024 +0530"
      },
      "committer": {
        "name": "Kaushik Lingarkar",
        "email": "kaushik.lingarkar@linaro.org",
        "time": "Wed Jan 24 15:31:37 2024 +0530"
      },
      "message": "UI: Rename \u0027ready\u0027 to \u0027needed\u0027 in tasks summary\n\nReady tasks were shown as \u0027needed\u0027 since Iaafdb57a, but\nunintentionally updated to \u0027ready\u0027 in I383291e3.\n\nChange-Id: Id1685f9e34dc1fa827153b7a80dcc85237057f09\n"
    },
    {
      "commit": "307c2c4fa93185af23883dc194a50ca3388c354a",
      "tree": "095938d1947bfd4e7aafcab906d106c11e496842",
      "parents": [
        "7d8af049645731d1b5dd9bee0279a272554a4ee9"
      ],
      "author": {
        "name": "Prudhvi Akhil Alahari",
        "email": "prudhvi.alahari@linaro.org",
        "time": "Wed Nov 08 17:42:24 2023 +0530"
      },
      "committer": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Thu Jan 18 13:54:05 2024 -0700"
      },
      "message": "Fix subtasks-file lookup to not fail when preloaded from another file\n\nBefore this change, plugin failed to lookup a subtasks-file when\na task with this subtasks-file was preloaded using a task\nreference [1]. While preloading a task, all the subtasks are copied\nto the current task. Since the subtasks-file property was a String,\nit does not maintain the information regarding the location of the\nsubtasks-file. Thus, fix this issue by using ConfigSourcedValue as\nthe type for subtasks-file property, which helps in tracking the\nlocation of the subtasks-file. Add tests for the same.\n\n[1]\nfile: `All-Projects:refs/meta/config:task.config`\n```\n[root \"root task\"]\n    applicable \u003d status:open\n    preload-task \u003d %sample group^Sample task with subtasks-file\n```\n\nfile: `All-Users:refs/groups/\u003cuuid of sample group\u003e:task.config`\n```\n[task \"Sample task with subtasks-file\"]\n  applicable \u003d is:open\n  pass \u003d is:open\n  subtasks-file \u003d bar.config\n```\n\nfile: `All-Users:refs/groups/\u003cuuid of sample group\u003e:task/bar.config`\n```\n[task \"Sample task\"]\n  applicable \u003d is:open\n  pass \u003d True\n```\n\nChange-Id: Icb1c548655eace95fefa2093bdc827276e0908d8\n"
    },
    {
      "commit": "7d8af049645731d1b5dd9bee0279a272554a4ee9",
      "tree": "63f017af39e52c225405c4e38d1f3bf5f3e892e6",
      "parents": [
        "9c054270fd00ba620a0abdd6b1516f54d13bd088"
      ],
      "author": {
        "name": "Prudhvi Akhil Alahari",
        "email": "prudhvi.alahari@linaro.org",
        "time": "Wed Nov 08 16:46:49 2023 +0530"
      },
      "committer": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Thu Jan 18 13:54:05 2024 -0700"
      },
      "message": "Fix subtasks-external lookup to not fail when preloaded from another file\n\nBefore this change, plugin failed to lookup a subtasks-external when\na task with this subtasks-external was preloaded using a task\nreference [1]. While preloading a task, all the subtasks are copied\nto the current task. Since the subtasks-external property was a String,\nit does not maintain the information regarding the location of the\nsubtasks-external. Thus, fix this issue by using ConfigSourcedValue as\nthe type for subtasks-external property, which helps in tracking the\nlocation of the subtasks-external. Add tests for the same.\n\n[1]\nfile: `All-Projects:refs/meta/config:task.config`\n```\n[root \"root task\"]\n    applicable \u003d status:open\n    preload-task \u003d //common.config^simple task with subtasks\n```\n\nfile: `All-Projects:refs/meta/config:task/common.config`\n```\n[task \"simple task with subtasks\"]\n  applicable \u003d is:open\n  subtasks-external \u003d user special tasks\n\n[external \"user special tasks\"]\n  user \u003d testuser\n  file \u003d special.config\n```\n\nChange-Id: I1aff32ae5885c3969ef8fdce7c019d3b448109f5\n"
    },
    {
      "commit": "9c054270fd00ba620a0abdd6b1516f54d13bd088",
      "tree": "210779d258696318087cdcc67b7a8d992944934c",
      "parents": [
        "6917ed2f8db1d9b88e08e7c7b9922b5a72916b7d"
      ],
      "author": {
        "name": "Prudhvi Akhil Alahari",
        "email": "prudhvi.alahari@linaro.org",
        "time": "Wed Nov 08 15:47:43 2023 +0530"
      },
      "committer": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Thu Jan 18 13:54:05 2024 -0700"
      },
      "message": "Fix subtask-factory lookup to not fail when preloaded from another file\n\nBefore this change, plugin failed to lookup a subtasks-factory when\na task with this subtasks-factory was preloaded using a task\nreference [1]. While preloading a task, all the subtasks are copied\nto the current task. Since the subtasks-factory property was a String,\nit does not maintain the information regarding the location of the\nsubtasks-factory. Thus, fix this issue by using ConfigSourcedValue as\nthe type for subtasks-factory property, which helps in tracking the\nlocation of the subtasks-factory. Add tests for the same.\n\n[1]\nfile: `All-Projects:refs/meta/config:task.config`\n```\n[root \"root task\"]\n    applicable \u003d status:open\n    preload-task \u003d //common.config^simple task with subtasks\n```\n\nfile: `All-Projects:refs/meta/config:task/common.config`\n```\n[task \"simple task with subtasks\"]\n  applicable \u003d is:open\n  subtasks-factory \u003d simple static tasks-factory\n\n[tasks-factory \"simple static tasks-factory\"]\n    names-factory \u003d names-factory static list\n    pass \u003d True\n\n[names-factory \"names-factory static list\"]\n    type \u003d static\n    name \u003d my a task\n```\n\nChange-Id: Ie173ad1e29c511bb028a49d4c9b54108461bbe67\n"
    },
    {
      "commit": "6917ed2f8db1d9b88e08e7c7b9922b5a72916b7d",
      "tree": "478255a9d292555bc44f28366e7775d2f833088b",
      "parents": [
        "b21afb822f714c505538e0cda4c5e34c7b565124"
      ],
      "author": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Wed Jan 17 16:50:33 2024 -0700"
      },
      "committer": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Thu Jan 18 13:54:02 2024 -0700"
      },
      "message": "TaskAttributeFactory: Use taskConfigCache.masquerade()\n\nRemove the `masquerade(PatchSetArgument)` methods from TaskTree and\nPreloader and directly inject a TaskConfigCache in TaskAttributeFactory.\n\nReplace usage of PerThreadCache with assisted injection to ensure\nthe same instance of TaskConfigCache is used by TaskTree, Preloader, and\nTaskAttributeFactory during the lifetime of each TaskAttributeFactory.\n\nChange-Id: I93647b2a9df4cfa383b9e657831613852ea4eced\n"
    },
    {
      "commit": "b21afb822f714c505538e0cda4c5e34c7b565124",
      "tree": "1957dbae8f3bd1a37cafb53b11dbe0aabc6371c3",
      "parents": [
        "593bdd48815b3c1dc3c11e4c138b81ce644ea157"
      ],
      "author": {
        "name": "Prudhvi Akhil Alahari",
        "email": "prudhvi.alahari@linaro.org",
        "time": "Wed Jan 17 21:50:12 2024 +0530"
      },
      "committer": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Wed Jan 17 16:56:10 2024 -0700"
      },
      "message": "Cache TaskConfigFactory per thread\n\nTaskConfigFactory is a cache of task configs. But its instance could be\nduplicated in the same thread when a class injects it, which defeats\nthe purpose of it being a cache. Thus cache TaskConfigFactory instance\nper thread. Also rename the class to TaskConfigCache instead of\nTaskConfigFactory to better reflect its purpose.\n\nUpdate gerrit docker image to 3.5.6 so that all the core per thread\ncache fixes are available.\n\nChange-Id: I381c4c8f239da19449eb70074fe59bc65567ee45\n"
    },
    {
      "commit": "593bdd48815b3c1dc3c11e4c138b81ce644ea157",
      "tree": "dcde084a1aae13c79f61d029c71a1d4c0aeea781",
      "parents": [
        "b92e0d4819350da7e48ea175b18865bd62209cc4"
      ],
      "author": {
        "name": "Prudhvi Akhil Alahari",
        "email": "prudhvi.alahari@linaro.org",
        "time": "Fri Nov 03 14:44:38 2023 +0530"
      },
      "committer": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Wed Jan 17 16:56:09 2024 -0700"
      },
      "message": "Fix subtask lookup to not fail when preloaded from another file\n\nBefore this change, plugin failed to lookup a subtask when a task\nwith this subtask was preloaded using a task reference [1]. While\npreloading a task, all the subtasks are copied to the current task.\nSince the subtask property was a String, it does not maintain the\ninformation regarding the location of the subtask. Thus, fix this\nissue by using ConfigSourcedValue as the type for subtask property,\nwhich helps in tracking the location. Add tests for the same.\n\n[1]\nfile: `All-Projects:refs/meta/config:task.config`\n```\n[root \"root task\"]\n    applicable \u003d status:open\n    preload-task \u003d //common.config^simple task with subtask\n```\n\nfile: `All-Projects:refs/meta/config:task/common.config`\n```\n[task \"simple task with subtask\"]\n  applicable \u003d is:open\n  subtask \u003d passing task\n\n[task \"passing task\"]\n  applicable \u003d is:open\n  pass \u003d True\n```\n\nChange-Id: Ieff1da7a47b63514fb8d0437340e096e03ad54bd\n"
    },
    {
      "commit": "b92e0d4819350da7e48ea175b18865bd62209cc4",
      "tree": "424aeb0ab0c5f3160f8dc3755bc5e1afed4126cd",
      "parents": [
        "1040e7c8a05ba28c217af346fef91e5881b3b152"
      ],
      "author": {
        "name": "Prudhvi Akhil Alahari",
        "email": "prudhvi.alahari@linaro.org",
        "time": "Thu Dec 14 06:24:04 2023 +0000"
      },
      "committer": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Wed Jan 17 16:56:09 2024 -0700"
      },
      "message": "Revert \"Fix to not mark a valid preloaded subtask as INVALID\"\n\nThis reverts commit ba8f1423d2e7cc502a8af95bf87d365755d47c0f.\n\nReason for revert: Better approach at Ieff1da7a47b63514fb8d0437340e096e03ad54bd\n\nChange-Id: I0b67bb426dd6422a6459601096aa66f2bd4253a0\n"
    },
    {
      "commit": "1040e7c8a05ba28c217af346fef91e5881b3b152",
      "tree": "2f412d072d03230939c9d27572511e8c3f582730",
      "parents": [
        "c47f5a4accaf5b8ce1c9154b863d8a3fbd7c49ec"
      ],
      "author": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Wed Jan 17 16:55:41 2024 -0700"
      },
      "committer": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Wed Jan 17 16:55:41 2024 -0700"
      },
      "message": "TaskAttributeFactory: Run gjf\n\nBad formatting slipped in from an earlier change.\n\nChange-Id: Iebc6731e667e2aea0d1d916330159cac96767907\n"
    },
    {
      "commit": "c47f5a4accaf5b8ce1c9154b863d8a3fbd7c49ec",
      "tree": "e041e17e7c700f6836a73f2ee1993ae36d7aea7b",
      "parents": [
        "a1a4ffc3311232ac8bf0410f8c6cb9ed5f432bf4"
      ],
      "author": {
        "name": "Kaushik Lingarkar",
        "email": "kaushik.lingarkar@linaro.org",
        "time": "Thu Jan 11 11:39:37 2024 +0530"
      },
      "committer": {
        "name": "Kaushik Lingarkar",
        "email": "kaushik.lingarkar@linaro.org",
        "time": "Wed Jan 17 09:56:20 2024 +0000"
      },
      "message": "UI: Update colors theme for tasks\n\n- Use colors matching the theme of labels in change-list view\n- Use red color for failed tasks instead of orange\n- Make colors compatible with dark theme\n\nScreenshots: https://imgur.com/a/ONuxnpe\n\nChange-Id: I5d033eb528d8829bbfa86112724db6d91435b8d1\n"
    },
    {
      "commit": "a1a4ffc3311232ac8bf0410f8c6cb9ed5f432bf4",
      "tree": "0f441998bb5bbe49ab7711ff60cb3d03adc9e9ba",
      "parents": [
        "835ced98d0b4354094041870bc9aa7bd7c6c92be"
      ],
      "author": {
        "name": "Kaushik Lingarkar",
        "email": "kaushik.lingarkar@linaro.org",
        "time": "Wed Jan 17 10:40:46 2024 +0530"
      },
      "committer": {
        "name": "Kaushik Lingarkar",
        "email": "kaushik.lingarkar@linaro.org",
        "time": "Wed Jan 17 09:55:59 2024 +0000"
      },
      "message": "UI: Make change urls compatible with dark theme\n\nScreenshots: https://imgur.com/a/bud9ghg\n\nChange-Id: I76cffe14f56492cf50e9cb1044b5fb616031b7f6\n"
    },
    {
      "commit": "835ced98d0b4354094041870bc9aa7bd7c6c92be",
      "tree": "e52afc1a58af09751847088ee47241bd10916d12",
      "parents": [
        "01667176d966cf0236e90ddeb1b1624290451350"
      ],
      "author": {
        "name": "Kaushik Lingarkar",
        "email": "kaushik.lingarkar@linaro.org",
        "time": "Tue Jan 16 12:19:04 2024 +0530"
      },
      "committer": {
        "name": "Kaushik Lingarkar",
        "email": "kaushik.lingarkar@linaro.org",
        "time": "Wed Jan 17 11:03:09 2024 +0530"
      },
      "message": "UI: Don\u0027t show summary when change has no tasks\n\nThe \u0027Tasks\u0027 tab is currently hidden when the change has no tasks. To be\nconsistent, also hide the summary in this case.\n\nChange-Id: I586d89a0e15c036a76cea9320f64240de661546a\n"
    },
    {
      "commit": "01667176d966cf0236e90ddeb1b1624290451350",
      "tree": "31c26ac5979c6e1a30035fe239983fe5328c1478",
      "parents": [
        "ca7e85f54adadacdf7933b2d3a540103066ae23c",
        "9c77c79320b0627711f6ff54807c449fbe140fcb"
      ],
      "author": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Thu Jan 11 16:14:57 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 11 16:14:57 2024 +0000"
      },
      "message": "Merge \"UI: Fix an issue where loading chip lingers if change has no tasks\" into stable-3.5"
    },
    {
      "commit": "ca7e85f54adadacdf7933b2d3a540103066ae23c",
      "tree": "c693d40ff1d6aba5b3add252c76e7b4e871d892e",
      "parents": [
        "15c75f2d9f1fe58e6871aff6835546f29d42e1ed",
        "737f59c7ffb5b50641b43bb2952b5d115cc72d83"
      ],
      "author": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Thu Jan 11 16:12:39 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 11 16:12:39 2024 +0000"
      },
      "message": "Merge \"UI: Update \u0027ready\u0027 chip\u0027s style to \u0027success\u0027\" into stable-3.5"
    },
    {
      "commit": "9c77c79320b0627711f6ff54807c449fbe140fcb",
      "tree": "fae82cf05d32f9c3753de3386bbd90cd0f58b433",
      "parents": [
        "15c75f2d9f1fe58e6871aff6835546f29d42e1ed"
      ],
      "author": {
        "name": "Kaushik Lingarkar",
        "email": "kaushik.lingarkar@linaro.org",
        "time": "Thu Jan 11 20:26:46 2024 +0530"
      },
      "committer": {
        "name": "Kaushik Lingarkar",
        "email": "kaushik.lingarkar@linaro.org",
        "time": "Thu Jan 11 20:26:51 2024 +0530"
      },
      "message": "UI: Fix an issue where loading chip lingers if change has no tasks\n\nFire the \u0027tasks-loaded\u0027 event even when the change has no tasks as\nthe logic to hide the loading chip depends on it.\n\nChange-Id: I4926a0ca7d4513622258b765a5e455fbb8ca1e6b\n"
    },
    {
      "commit": "737f59c7ffb5b50641b43bb2952b5d115cc72d83",
      "tree": "0a4602ffdf789f286b1bc876552dff13f89200fd",
      "parents": [
        "b44ad230f7994b67eb47257cdd686461bad9c807"
      ],
      "author": {
        "name": "Kaushik Lingarkar",
        "email": "kaushik.lingarkar@linaro.org",
        "time": "Thu Jan 11 10:54:29 2024 +0530"
      },
      "committer": {
        "name": "Kaushik Lingarkar",
        "email": "kaushik.lingarkar@linaro.org",
        "time": "Thu Jan 11 12:02:49 2024 +0530"
      },
      "message": "UI: Update \u0027ready\u0027 chip\u0027s style to \u0027success\u0027\n\nThe task tree view has a green icon for ready tasks. Change the chip\u0027s\nstyle as well to be consistent.\n\nChange-Id: I6fa2d7be096ca2c09e0d1999bd52126a43ae39bf\n"
    },
    {
      "commit": "15c75f2d9f1fe58e6871aff6835546f29d42e1ed",
      "tree": "80849b4d41692f7113c06c74462777ed360ccfca",
      "parents": [
        "b44ad230f7994b67eb47257cdd686461bad9c807"
      ],
      "author": {
        "name": "Kaushik Lingarkar",
        "email": "kaushik.lingarkar@linaro.org",
        "time": "Wed Jan 10 10:59:58 2024 +0530"
      },
      "committer": {
        "name": "Kaushik Lingarkar",
        "email": "kaushik.lingarkar@linaro.org",
        "time": "Wed Jan 10 16:12:37 2024 +0530"
      },
      "message": "UI: Show a \u0027loading\u0027 chip when tasks are being loaded\n\nCurrently, \u0027No Tasks\u0027 is shown in the tasks summary section when the\nAPI to fetch the tasks is in progress. Show a \u0027loading\u0027 chip instead.\n\nhttps://imgur.com/a/hSTtmRx\n\nChange-Id: Ie89cc9276ac4c5e3f47aec3b0831636feb781cdc\n"
    },
    {
      "commit": "b44ad230f7994b67eb47257cdd686461bad9c807",
      "tree": "9715b4764ed333a05b304c90f53ee0b7c2f3b1f4",
      "parents": [
        "0071c8ed4beefe62fcda162d7a6558c67ae6d886"
      ],
      "author": {
        "name": "Kaushik Lingarkar",
        "email": "kaushik.lingarkar@linaro.org",
        "time": "Wed Nov 08 16:29:54 2023 -0800"
      },
      "committer": {
        "name": "Kaushik Lingarkar",
        "email": "kaushik.lingarkar@linaro.org",
        "time": "Wed Jan 10 09:38:41 2024 +0530"
      },
      "message": "UI: Always show the tasks summary\n\nIf there are no tasks, show \u0027No tasks\u0027 as the summary. Also, show\nchips for invalid, waiting, duplicate and successful tasks.\n\nScreenshots: https://imgur.com/a/kXgOiUY\n\nChange-Id: I383291e3aae3cb69dc6d863d1c35871c19044d6b\n"
    },
    {
      "commit": "0071c8ed4beefe62fcda162d7a6558c67ae6d886",
      "tree": "5eec2f0d15ce464aa8fb76912f72ca55804ecfe3",
      "parents": [
        "a7246edf9d1c1fc536d405315c64c030bfaf93e4"
      ],
      "author": {
        "name": "Prudhvi Akhil Alahari",
        "email": "prudhvi.alahari@linaro.org",
        "time": "Tue Dec 19 16:14:34 2023 +0530"
      },
      "committer": {
        "name": "Prudhvi Akhil Alahari",
        "email": "prudhvi.alahari@linaro.org",
        "time": "Tue Dec 19 16:26:31 2023 +0530"
      },
      "message": "Fix task UI to display proper change url\n\nGerrit.url is not available post 2.16, thus stop using it.\n\nChange-Id: Ibaef74deb495245ae87fac83c54be3d46f8bb9f7\n"
    },
    {
      "commit": "a7246edf9d1c1fc536d405315c64c030bfaf93e4",
      "tree": "8d8beb0bf4d2520b7e0b7e1fb67fcd9bf61d4b73",
      "parents": [
        "eae92979fbd17d92f54af20f686f5e2ecaa79982"
      ],
      "author": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Mon Dec 04 14:12:06 2023 -0700"
      },
      "committer": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Mon Dec 04 14:12:06 2023 -0700"
      },
      "message": "bazel: Use canonical reproducible load_bazlets rule\n\nThis silences the debug message:\n  Rule \u0027com_googlesource_gerrit_bazlets\u0027 indicated that a canonical\n  reproducible form can be obtained by modifying arguments shallow_since\n\nChange-Id: I5b0e335fb2eaa1216b35aec81946a2272f703b10\n"
    },
    {
      "commit": "eae92979fbd17d92f54af20f686f5e2ecaa79982",
      "tree": "0c821642d5a1b5d74aeaf1ff0ac65e8e1ebcae0b",
      "parents": [
        "1bc51d9fc085d98e61be9720094048ceb1be0074"
      ],
      "author": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Mon Dec 04 14:06:47 2023 -0700"
      },
      "committer": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Mon Dec 04 14:09:56 2023 -0700"
      },
      "message": "Update bazel version to 5.3.1\n\nThis matches core stable-3.5 and requires updating bazlets to fix\nrules_nodejs dependencies.\n\nChange-Id: I076a0ad60c8faf81be679d69acc02e64648142c2\n"
    },
    {
      "commit": "1bc51d9fc085d98e61be9720094048ceb1be0074",
      "tree": "17b519597ccb4aa49870df554f5a924fb4233ecd",
      "parents": [
        "53d792adaedfe6a0ee397bc9c40eb82aff6461fc"
      ],
      "author": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Mon Dec 04 14:01:12 2023 -0700"
      },
      "committer": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Mon Dec 04 14:01:12 2023 -0700"
      },
      "message": "Update .bazelrc to match core\n\nThis allows sharing the bazel caches.\n\nChange-Id: I312275d408f1b4a46218c2ba3136cff39e7cbfa5\n"
    },
    {
      "commit": "53d792adaedfe6a0ee397bc9c40eb82aff6461fc",
      "tree": "7efc2ec7654f36732dd76b0b74e5dfa6da93a6f6",
      "parents": [
        "5a843ce64715f7a7e0113d7a7387f1aaa9e9d47e"
      ],
      "author": {
        "name": "Kaushik Lingarkar",
        "email": "kaushik.lingarkar@linaro.org",
        "time": "Mon Nov 06 10:46:10 2023 -0800"
      },
      "committer": {
        "name": "Prudhvi Akhil Alahari",
        "email": "prudhvi.alahari@linaro.org",
        "time": "Wed Nov 29 16:06:24 2023 +0530"
      },
      "message": "Add an option to filter roots\n\nAllow filtering roots as it can help CI systems wanting to evaluate\nonly tasks under roots they own for improved query performance.\n\nChange-Id: I566744ab4a9633b4ac9c8b0bfa561009ba8e3996\n"
    },
    {
      "commit": "5a843ce64715f7a7e0113d7a7387f1aaa9e9d47e",
      "tree": "79ded571904f9f01a4a423f275b3812f12c0cc8c",
      "parents": [
        "c84d8a3fc2e7bd636fe3fcf4d5aa79624fbd4c40"
      ],
      "author": {
        "name": "Prudhvi Akhil Alahari",
        "email": "prudhvi.alahari@linaro.org",
        "time": "Wed Nov 08 19:41:18 2023 +0530"
      },
      "committer": {
        "name": "Prudhvi Akhil Alahari",
        "email": "prudhvi.alahari@linaro.org",
        "time": "Wed Nov 15 12:48:07 2023 +0000"
      },
      "message": "Improve test coverage when external preloaded task has a preload-task\n\nThe task which is being preloaded could have a preload-task itself.\nBefore this change, there was no test coverage for this use case.\nThus, add a test so that it continues to work as expected.\n\nChange-Id: I50af50e3143c8b852e5ced71cf374ba8bc9376a1\n"
    },
    {
      "commit": "c84d8a3fc2e7bd636fe3fcf4d5aa79624fbd4c40",
      "tree": "32c96601266d0506328d1f14c39342d4dd09a292",
      "parents": [
        "ba8f1423d2e7cc502a8af95bf87d365755d47c0f"
      ],
      "author": {
        "name": "Prudhvi Akhil Alahari",
        "email": "prudhvi.alahari@linaro.org",
        "time": "Thu Nov 09 12:22:12 2023 +0530"
      },
      "committer": {
        "name": "Prudhvi Akhil Alahari",
        "email": "prudhvi.alahari@linaro.org",
        "time": "Thu Nov 09 07:42:12 2023 +0000"
      },
      "message": "Fix typos in example doc for task properties\n\nChange-Id: I4c775fe66f462c387a4f56a5d8de7e9097b0b2ab\n"
    },
    {
      "commit": "ba8f1423d2e7cc502a8af95bf87d365755d47c0f",
      "tree": "f7d18c4226f5b639ebc61c858958b14192d0ba57",
      "parents": [
        "f0e7d3081d575f73882857a040eae60c736361ee"
      ],
      "author": {
        "name": "Prudhvi Akhil Alahari",
        "email": "prudhvi.alahari@linaro.org",
        "time": "Fri Nov 03 14:44:38 2023 +0530"
      },
      "committer": {
        "name": "Prudhvi Akhil Alahari",
        "email": "prudhvi.alahari@linaro.org",
        "time": "Fri Nov 03 15:20:32 2023 +0530"
      },
      "message": "Fix to not mark a valid preloaded subtask as INVALID\n\nBefore this change, a subtask was marked as INVALID when a task had a\npreload-task pointing to a task from external file which had a\nsubtask [1]. While preloading a task, all the subtasks are copied to\nthe current task. Since the subtask property was a String, it does\nnot maintain the information regarding the location of the subtask.\nDue to which, the plugin fails to lookup the subtask.\n\nThus, fix this issue by using TaskKey as the type for subtask property,\nwhich helps in tracking the location of the subtask. Add tests for the\nsame.\n\n[1]\nfile: `All-Projects:refs/meta/config:task.config`\n```\n[root \"root task\"]\n    applicable \u003d status:open\n    preload-task \u003d //common.config^simple task with subtask\n```\n\nfile: `All-Projects:refs/meta/config:task/common.config`\n```\n[task \"simple task with subtask\"]\n  applicable \u003d is:open\n  subtask \u003d passing task\n\n[task \"passing task\"]\n  applicable \u003d is:open\n  pass \u003d True\n```\n\nChange-Id: Iacf5345c575209267cf6ad0489327ee10feed55c\n"
    },
    {
      "commit": "f0e7d3081d575f73882857a040eae60c736361ee",
      "tree": "67a3f351edb29627f0aee33469205fd5f498ca72",
      "parents": [
        "e15d344cecd10973e863d3beecd7d794b9ec8e56"
      ],
      "author": {
        "name": "Prudhvi Akhil Alahari",
        "email": "prudhvi.alahari@linaro.org",
        "time": "Fri Oct 20 22:16:12 2023 +0530"
      },
      "committer": {
        "name": "Prudhvi Akhil Alahari",
        "email": "prudhvi.alahari@linaro.org",
        "time": "Fri Oct 27 22:33:47 2023 +0530"
      },
      "message": "Support to import tasks from group refs\n\nThis change adds support to import a single task from any group\nref (All-Users.git:/refs/groups/..) by specifying the group name or\ngroup uuid in task config file.\n\nSee documentation for usage details.\n\nRelease-Notes: tasks can now be imported from group refs\nRelease-Notes: a task reference cannot start with \u0027%\u0027 unless referring to a group\nChange-Id: Ie0b346acff17de14768676ca0c64b61f8d345610\n"
    },
    {
      "commit": "e15d344cecd10973e863d3beecd7d794b9ec8e56",
      "tree": "0574d27b5106dcab61aaf70d42311e02546019ba",
      "parents": [
        "6bc5dc019cd627e7eb6de09a7ae3a8b4bd90ee37"
      ],
      "author": {
        "name": "Prudhvi Akhil Alahari",
        "email": "prudhvi.alahari@linaro.org",
        "time": "Fri Oct 27 14:23:20 2023 +0530"
      },
      "committer": {
        "name": "Prudhvi Akhil Alahari",
        "email": "prudhvi.alahari@linaro.org",
        "time": "Fri Oct 27 14:23:20 2023 +0530"
      },
      "message": "Fix pre-requisite comments for running functional tests\n\nChange-Id: I6700e61a1e1e6ad04acf058f0df7ad80fd853083\n"
    },
    {
      "commit": "6bc5dc019cd627e7eb6de09a7ae3a8b4bd90ee37",
      "tree": "279570b7dc32c1b77fa5fc33e90396e71f47095f",
      "parents": [
        "a0539429d10a57f2129b77b9757f9c418c3b7e61",
        "dcd77ed6a88893f24b7f9fb0bab4aa7656ee5e4d"
      ],
      "author": {
        "name": "Aniket Kumar",
        "email": "aniket.kumar@linaro.org",
        "time": "Wed Oct 25 05:51:49 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 25 05:51:49 2023 +0000"
      },
      "message": "Merge \"Display the URLs as clickable hyperlinks in the task WUI\" into stable-3.5"
    },
    {
      "commit": "dcd77ed6a88893f24b7f9fb0bab4aa7656ee5e4d",
      "tree": "a5146b1e8dd4ad753cc1fa60e8156fcb2eecea3e",
      "parents": [
        "de706a114ff8ed11f7f968982dddce565e339b74"
      ],
      "author": {
        "name": "Aniket Kumar",
        "email": "aniket.kumar@linaro.org",
        "time": "Fri Oct 20 17:35:45 2023 +0530"
      },
      "committer": {
        "name": "Aniket Kumar",
        "email": "aniket.kumar@linaro.org",
        "time": "Wed Oct 25 10:30:15 2023 +0530"
      },
      "message": "Display the URLs as clickable hyperlinks in the task WUI\n\nExample screenshot: https://imgur.com/a/NHlVUMd\n\nRelease-Notes: URLs now appear as hyperlinks in task WUI rather than plain text\nChange-Id: I4200b42cb9cb19da7490039d0a4ad4a7bf217297\n"
    },
    {
      "commit": "a0539429d10a57f2129b77b9757f9c418c3b7e61",
      "tree": "df20f2d1c7be699f5fa8102548959c6866f93be4",
      "parents": [
        "de706a114ff8ed11f7f968982dddce565e339b74"
      ],
      "author": {
        "name": "Kaushik Lingarkar",
        "email": "kaushik.lingarkar@linaro.org",
        "time": "Wed Oct 04 13:36:47 2023 -0700"
      },
      "committer": {
        "name": "Kaushik Lingarkar",
        "email": "kaushik.lingarkar@linaro.org",
        "time": "Tue Oct 17 13:36:25 2023 -0700"
      },
      "message": "Allow using submit requirement predicates\n\nUpdate the plugin to allow submit requirement predicates along with\nregular change query operators. Organizations using this plugin may\nhave the need to use submit requirements as tasks to ensure they are\nmet before the change is ready for CI. One such example is the need\nto use submit requirements from code-owners plugin as tasks.\n\nChange-Id: Ia17bdd51e5a98b34ae816794a98cb49663d36d61\n"
    },
    {
      "commit": "de706a114ff8ed11f7f968982dddce565e339b74",
      "tree": "f52e58bab2cb42e70c9b1059ebc623edd67f74f4",
      "parents": [
        "f0cff52519ef339192377914e2d365742621237b"
      ],
      "author": {
        "name": "Yash Chaturvedi",
        "email": "yash.chaturvedi@linaro.org",
        "time": "Thu Sep 07 18:52:00 2023 +0530"
      },
      "committer": {
        "name": "Yash Chaturvedi",
        "email": "yash.chaturvedi@linaro.org",
        "time": "Tue Oct 17 14:07:42 2023 +0530"
      },
      "message": "Fix documentation formatting in preview.md\n\nEnclose the task config example in code block so that the formatting of\nthe file does not change on the UI.\n\nChange-Id: I70973db4c201f1f36b93b1b36ed0a2ac52ecd60e\n"
    },
    {
      "commit": "f0cff52519ef339192377914e2d365742621237b",
      "tree": "377d320b328b2faafaef43a297afbc10886ef063",
      "parents": [
        "39c778f89a1e0f4768f721b136959f205e8fbc52"
      ],
      "author": {
        "name": "Yash Chaturvedi",
        "email": "yash.chaturvedi@linaro.org",
        "time": "Tue Oct 17 12:26:31 2023 +0530"
      },
      "committer": {
        "name": "Yash Chaturvedi",
        "email": "yash.chaturvedi@linaro.org",
        "time": "Tue Oct 17 12:26:31 2023 +0530"
      },
      "message": "Support importing tasks from All-Projects:refs/meta/config\n\nThis change adds support to import common tasks located from\nAll-Projects:refs/meta/config. See docs for syntax.\n\nChange-Id: I83665cd0c8dc79c1b804c3b84aa51864446ceeee\n"
    },
    {
      "commit": "39c778f89a1e0f4768f721b136959f205e8fbc52",
      "tree": "352558507331430036e7ec37b4fc2ba49ca85abd",
      "parents": [
        "0c338b7bff69f31c633f0908123006409a990769"
      ],
      "author": {
        "name": "Yash Chaturvedi",
        "email": "yash.chaturvedi@linaro.org",
        "time": "Tue Oct 17 12:20:30 2023 +0530"
      },
      "committer": {
        "name": "Yash Chaturvedi",
        "email": "yash.chaturvedi@linaro.org",
        "time": "Tue Oct 17 12:20:30 2023 +0530"
      },
      "message": "Support importing tasks from user refs\n\nThis change adds support to import a single task from any user\nref (All-Users.git:/refs/users/..) by specifying their username\nin task config file.\n\nSee documentation for usage details.\n\nChange-Id: If40f6dbaba2a0ed6c9fe33e15a4fe2c61d79bb2e\n"
    },
    {
      "commit": "0c338b7bff69f31c633f0908123006409a990769",
      "tree": "2480f127b7f229bcc0b5cd141d4efdd0ba367192",
      "parents": [
        "cfa0eeafa070fc013b67ea244d85bde4d27faec8"
      ],
      "author": {
        "name": "Yash Chaturvedi",
        "email": "yash.chaturvedi@linaro.org",
        "time": "Thu Sep 07 08:54:39 2023 +0530"
      },
      "committer": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Mon Oct 16 10:01:51 2023 -0700"
      },
      "message": "Introduce grammar to parse task references\n\nUses antlr4 to parse the task reference syntax. Also,\nadds a missing test case to ensure functionality.\n\nInclude \u0027maven\u0027 in the zuul config to ensure it\u0027s installed on the host\nwhich fixes the error:\n\n antlr4_runtime requires mvn as a dependency. Please check your PATH.\n\nChange-Id: I439d813f63639558109f547f0e769d6833d4c680\n"
    },
    {
      "commit": "cfa0eeafa070fc013b67ea244d85bde4d27faec8",
      "tree": "c6ccea818c70f02f86daccfe6e93a3dd91ca2046",
      "parents": [
        "2938ef221152a098d2fad683dfb39b5571a0934c",
        "ce42f1d02fd8a586850b424f7fdab51bbbe1c1dd"
      ],
      "author": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Thu Oct 12 04:58:36 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 12 04:58:36 2023 +0000"
      },
      "message": "Merge changes Ibb8c134b,I9dcea5be,Ic88538d9 into stable-3.5\n\n* changes:\n  bazel: Bump to latest 4.x release: 4.2.4\n  bazel: Move auto-value dep to external_plugin_deps.bzl\n  Add python3 support\n"
    },
    {
      "commit": "2938ef221152a098d2fad683dfb39b5571a0934c",
      "tree": "ce262af9a6e851a04799acc8ff6507aeceb24ac8",
      "parents": [
        "01a0eb2a90b1606d45850e77ab80643ab07d4995"
      ],
      "author": {
        "name": "Kaushik Lingarkar",
        "email": "kaushik.lingarkar@linaro.org",
        "time": "Wed Oct 11 12:06:11 2023 -0700"
      },
      "committer": {
        "name": "Kaushik Lingarkar",
        "email": "kaushik.lingarkar@linaro.org",
        "time": "Wed Oct 11 12:23:55 2023 -0700"
      },
      "message": "UI: Show \u0027blocked\u0027 chip before \u0027needed\u0027\n\nShowing \u0027blocked\u0027 first makes sense as such tasks usually are a\nhigher priority for the change owner.\n\nChange-Id: I8eed032d36635fa947c41c6172bd930ec76c8866\n"
    },
    {
      "commit": "01a0eb2a90b1606d45850e77ab80643ab07d4995",
      "tree": "fe676493ac7f957622294208b7c6eff3db3e95b8",
      "parents": [
        "74e52ea897b29ceb2528619bdb96b4af67957a66"
      ],
      "author": {
        "name": "Kaushik Lingarkar",
        "email": "kaushik.lingarkar@linaro.org",
        "time": "Tue Oct 10 14:21:34 2023 -0700"
      },
      "committer": {
        "name": "Kaushik Lingarkar",
        "email": "kaushik.lingarkar@linaro.org",
        "time": "Tue Oct 10 14:49:30 2023 -0700"
      },
      "message": "UI: Rename \u0027needs\u0027 to \u0027needed\u0027\n\n\u0027needs\u0027 reads strangely especially with the inclusion of Task summary\nchips. Renaming it to \u0027needed\u0027 is also more consistent with \u0027blocked\u0027.\n\nChange-Id: Iaafdb57aef94247fd76a6fabb0fd7408013bed10\n"
    },
    {
      "commit": "ce42f1d02fd8a586850b424f7fdab51bbbe1c1dd",
      "tree": "387c34aee39461c8f340bb44dffd033dfa6e7138",
      "parents": [
        "5b57a73a0489c6110517bb0726263bb997f02ba2"
      ],
      "author": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Fri Oct 06 15:58:15 2023 -0700"
      },
      "committer": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Fri Oct 06 16:05:19 2023 -0700"
      },
      "message": "bazel: Bump to latest 4.x release: 4.2.4\n\nIncludes several fixes since 4.0, but not the breaking changes\nintroduced by 5.0.\n\nChange-Id: Ibb8c134b164cba4275eded39a7c3c31889fedd89\n"
    },
    {
      "commit": "5b57a73a0489c6110517bb0726263bb997f02ba2",
      "tree": "2c6a26f6a1dbd0528a4229fb80997a3bb45054b8",
      "parents": [
        "532b38d9c7cf769c701fb50484fe63ec15cdc3bf"
      ],
      "author": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Fri Oct 06 15:47:51 2023 -0700"
      },
      "committer": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Fri Oct 06 16:05:19 2023 -0700"
      },
      "message": "bazel: Move auto-value dep to external_plugin_deps.bzl\n\nThis is the pattern expected with plugins providing standalone build\nsupport.\n\nChange-Id: I9dcea5be85731882a1b184b9d59fba33af2398e6\n"
    },
    {
      "commit": "532b38d9c7cf769c701fb50484fe63ec15cdc3bf",
      "tree": "c8e5d8a0dc6e720395800a06c829d9f279227af6",
      "parents": [
        "74e52ea897b29ceb2528619bdb96b4af67957a66"
      ],
      "author": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Fri Oct 06 15:07:12 2023 -0700"
      },
      "committer": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Fri Oct 06 16:05:19 2023 -0700"
      },
      "message": "Add python3 support\n\nBump bazlets and fix the workspace_status.py helper.\n\n$ git log --no-merges --oneline ^a52e3f3 cd9b114\ncd9b114 Upgrade Bouncy Castle to 1.72\nb2b8548 download to GERRIT_CACHE_HOME when set\n2d0cc7e Migrate to python 3\n6311520 tools/maven/package.bzl: Use bazelisk instead bazel\n\nChange-Id: Ic88538d9e072d71bb6ca70555ccdc93bb465b1c4\n"
    },
    {
      "commit": "74e52ea897b29ceb2528619bdb96b4af67957a66",
      "tree": "31c4b65d67e1c0e125a1f7896add659dbcc49d65",
      "parents": [
        "5f8db4542108eca3d358688f989b57e8b6569edb",
        "4bb63ae69d652efab5f063aab626f39eafeb9f73"
      ],
      "author": {
        "name": "Martin Fick",
        "email": "martin.fick@linaro.org",
        "time": "Thu Oct 05 04:23:40 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 05 04:23:40 2023 +0000"
      },
      "message": "Merge \"UI: Add chips to ease navigation to the Tasks tab\" into stable-3.5"
    },
    {
      "commit": "4bb63ae69d652efab5f063aab626f39eafeb9f73",
      "tree": "14cf951e298804a3245e006e5d95a0a59aa10f40",
      "parents": [
        "2795944bb5e01b70debd96b4b30d6fd4ced7bcb3"
      ],
      "author": {
        "name": "Kaushik Lingarkar",
        "email": "kaushik.lingarkar@linaro.org",
        "time": "Mon Sep 25 23:48:05 2023 -0700"
      },
      "committer": {
        "name": "Kaushik Lingarkar",
        "email": "kaushik.lingarkar@linaro.org",
        "time": "Wed Oct 04 11:12:53 2023 -0700"
      },
      "message": "UI: Add chips to ease navigation to the Tasks tab\n\nOn changes with a lot of label scores or changed files, users\nhave to scroll to view status of their tasks. This change adds\na chip (under the commit message, similar to comment chips)\neach for \u0027needs\u0027 (aka ready) and \u0027blocked\u0027 (aka failed) tasks\nto ease navigation and to show a quick summary of tasks. Here\nare some highlights:\n\n - Chips are shown only after the tasks have loaded\n - Clicking the chips changes focus to the Tasks tab\n - Each chip shows the count of respective tasks\n - Chips are hidden if the count of respective tasks is 0\n - Warning style is used for \u0027needs\u0027 chip and error for \u0027blocked\u0027\n\nAlso, update the eslint ecmaVersion[1] to 2020 to support optional\nchaining.\n\n[1] https://eslint.org/blog/2020/07/eslint-v7.5.0-released/#optional-chaining-support\n\nChange-Id: I3e69232661577b64064ce03627cf7efb86728c81\n"
    },
    {
      "commit": "5f8db4542108eca3d358688f989b57e8b6569edb",
      "tree": "439710083a54941729c35d0428d589aae8207299",
      "parents": [
        "2795944bb5e01b70debd96b4b30d6fd4ced7bcb3"
      ],
      "author": {
        "name": "Yash Chaturvedi",
        "email": "yash.chaturvedi@linaro.org",
        "time": "Tue Sep 12 16:02:15 2023 +0530"
      },
      "committer": {
        "name": "Yash Chaturvedi",
        "email": "yash.chaturvedi@linaro.org",
        "time": "Wed Sep 13 13:28:37 2023 +0530"
      },
      "message": "fixup! Allow looping task definitions\n\nRemove redundant task status enum\n\nChange-Id: Iccc2049294254f04af2731e3f1ff44196ce53620\n"
    },
    {
      "commit": "2795944bb5e01b70debd96b4b30d6fd4ced7bcb3",
      "tree": "9574b6fcd61633b8987d438df43c2e169590f1ea",
      "parents": [
        "7eb4b6c18021fc73a3f6155e04dfcbd67cfe8091"
      ],
      "author": {
        "name": "Yash Chaturvedi",
        "email": "yash.chaturvedi@linaro.org",
        "time": "Wed Sep 06 16:59:01 2023 +0530"
      },
      "committer": {
        "name": "Yash Chaturvedi",
        "email": "yash.chaturvedi@linaro.org",
        "time": "Mon Sep 11 09:15:05 2023 +0530"
      },
      "message": "Support loading subtasks from a different file\n\nThis is an incremental step to completely support moving\nnon root tasks away from task.config in All-Projects repo.\nVarious syntaxes were introduced to import a single task\nfrom other files in same ref and are described in the\ndocumentation.\n\nOriginally-Authored-By: Adithya Chakilam\nChange-Id: I794e6a2b6d8c93e92e633c12823c956128e2ffe6\n"
    },
    {
      "commit": "7eb4b6c18021fc73a3f6155e04dfcbd67cfe8091",
      "tree": "1d6691cde7ee7b0db88459a584b0746331c08ac6",
      "parents": [
        "0aeedfd9e8781a8f52ead0dae27c131e9cf3bcb6"
      ],
      "author": {
        "name": "Martin Fick",
        "email": "martin.fick@linaro.org",
        "time": "Thu Apr 06 17:57:00 2023 -0600"
      },
      "committer": {
        "name": "Yash Chaturvedi",
        "email": "yash.chaturvedi@linaro.org",
        "time": "Mon Sep 11 09:14:40 2023 +0530"
      },
      "message": "tests: Automatically read file paths from configs\n\nInstead of manually redirecting content of specific\nsection into a file to initialize the configs, change\nthem to get the file location by use of a file marker.\n\nOriginally-Authored-By: Adithya Chakilam\nChange-Id: Iae2573e14ab2d0ffaccc68e779e3098aaf6eaebe\n"
    },
    {
      "commit": "0aeedfd9e8781a8f52ead0dae27c131e9cf3bcb6",
      "tree": "bec4c1338cbe9aab242bcfcc15cedc2275127aa4",
      "parents": [
        "2cc5b89f97c3b74cd83e91ae7f10bdadd4c054fb"
      ],
      "author": {
        "name": "Martin Fick",
        "email": "martin.fick@linaro.org",
        "time": "Thu Apr 06 17:48:13 2023 -0600"
      },
      "committer": {
        "name": "Yash Chaturvedi",
        "email": "yash.chaturvedi@linaro.org",
        "time": "Mon Sep 11 09:14:11 2023 +0530"
      },
      "message": "Add tests for task visibility when previewing config updates\n\nTests for following kinds of updates are added. In each of these, we\nassert that only tasks on refs visible to the current user are shown\nand remaining tasks are shown as \u0027unknown\u0027 name and status.\n\n1. --task-preview root file with subtasks-external pointing\n   to secret user ref.\n2. --task-preview root file with subtasks-external pointing\n   to a non-secret user ref with subtasks-external pointing\n   to a secret user ref.\n3. --task-preview a non-secret user ref with subtasks-external\n   pointing to secret user ref.\n4. --task-preview a new root, original root with subtasks-external\n   pointing to secret user ref.\n\nSince helper functions are common with already existing test suite,\ncreate a generic helper script in order to avoid duplication.\n\nOriginally-Authored-By: Adithya Chakilam\nChange-Id: I6283f2d1f2f65f4f9abebe272690a8ccbf975e83\n"
    },
    {
      "commit": "2cc5b89f97c3b74cd83e91ae7f10bdadd4c054fb",
      "tree": "899b8b11e4e054a1c6370237eb0878531170e800",
      "parents": [
        "ea47242e62d645a64ef3b1da6083414901e4df4f"
      ],
      "author": {
        "name": "Yash Chaturvedi",
        "email": "yash.chaturvedi@linaro.org",
        "time": "Tue Sep 05 18:52:47 2023 +0530"
      },
      "committer": {
        "name": "Yash Chaturvedi",
        "email": "yash.chaturvedi@linaro.org",
        "time": "Mon Sep 11 09:13:25 2023 +0530"
      },
      "message": "Exit tests when gerrit container failed to start up\n\nPreviously, when gerrit container failed to start, the tests still\ncontinue to run with the broken setup. Fix it to exit tests if gerrit\ncontainer failed to start.\n\nChange-Id: Ia9be4fdeacb8b072fa40ceed91b44c7e87b53362\n"
    },
    {
      "commit": "ea47242e62d645a64ef3b1da6083414901e4df4f",
      "tree": "2edc5c569d0dca8e94d88b949b9913e63b475ffb",
      "parents": [
        "71f46d1e0fdca2eb2bfa87a983316eeb35ce40c1"
      ],
      "author": {
        "name": "Yash Chaturvedi",
        "email": "yash.chaturvedi@linaro.org",
        "time": "Tue Sep 05 18:42:44 2023 +0530"
      },
      "committer": {
        "name": "Yash Chaturvedi",
        "email": "yash.chaturvedi@linaro.org",
        "time": "Mon Sep 11 09:12:56 2023 +0530"
      },
      "message": "Fix Change-Id generator helper\n\nOn certain platforms (at least alpine) the commonly used\n\n echo \"I$(uuidgen | openssl dgst -sha1 -binary | xxd -p)\"\n\ncould create a string with trailing whitespace. Replacing that with\n\n echo \"I$(uuidgen | sha1sum | awk \u0027{print $1}\u0027)\"\n\ndoes not have that problem and what it does is more obvious at a glance.\n\nChange-Id: I2f4b490272a19d123a1dca2ba13f8b222e9c3035\n"
    },
    {
      "commit": "71f46d1e0fdca2eb2bfa87a983316eeb35ce40c1",
      "tree": "b61fcea4b7b280d112794731eaaeaf0335a88ee0",
      "parents": [
        "19e3d949a6190e9765d09e080a48410a8b1128ff"
      ],
      "author": {
        "name": "Yash Chaturvedi",
        "email": "yash.chaturvedi@linaro.org",
        "time": "Wed Sep 06 15:02:13 2023 +0530"
      },
      "committer": {
        "name": "Yash Chaturvedi",
        "email": "yash.chaturvedi@linaro.org",
        "time": "Mon Sep 11 09:12:19 2023 +0530"
      },
      "message": "fixup! Use a bash associative array to speedup task tests\n\nThe parsing of test roots by name was previously outputting an extra\nspace at the beginning of root names leading to the test json for almost\nall tests being blank. This blanking of the test json meant that the\nexpected test json would always match the outputted test json (both were\nincorrectly blank) resulting is most tests always passing, even if they\nwere broken. Fix this by removing the extra space so that root names are\nnow correct.\n\nChange-Id: Ideb43ed41d6c6913ede4ad591291c7c93d30d471\n"
    },
    {
      "commit": "19e3d949a6190e9765d09e080a48410a8b1128ff",
      "tree": "688364ae1f4ce5d022461db38b7f81c1c5ed96f2",
      "parents": [
        "0bf2f741fd1b18ea317456c17976438729d9f0a0"
      ],
      "author": {
        "name": "Yash Chaturvedi",
        "email": "yash.chaturvedi@linaro.org",
        "time": "Tue Sep 05 16:11:01 2023 +0530"
      },
      "committer": {
        "name": "Yash Chaturvedi",
        "email": "yash.chaturvedi@linaro.org",
        "time": "Mon Sep 11 09:09:41 2023 +0530"
      },
      "message": "Provide capability to preview absolute task paths\n\nThe \u0027--include-paths\u0027 switch allows us to preview the absolute location\nof a task. This would be helpful in debugging when we spread out tasks\nin multiple repositories in future.\n\nAdd .firstTimeRedirect file while setting up the environment for docker\ntests to prevent redirection at the very first access to Gerrit [1]\nresulting in empty response for the curl call.\n\n[1] https://gerrit.googlesource.com/plugins/out-of-the-box/+/refs/heads/master\n\nChange-Id: I48ef2ac9e214de3e1d7e920b652bfba704445f40\n"
    },
    {
      "commit": "0bf2f741fd1b18ea317456c17976438729d9f0a0",
      "tree": "a65e0a58c16f8bf3f738e51703fc0ea0e1933105",
      "parents": [
        "56a512b32e002e25279e4338a734d882c84666de"
      ],
      "author": {
        "name": "Yash Chaturvedi",
        "email": "yash.chaturvedi@linaro.org",
        "time": "Tue Sep 05 08:04:25 2023 +0530"
      },
      "committer": {
        "name": "Yash Chaturvedi",
        "email": "yash.chaturvedi@linaro.org",
        "time": "Tue Sep 05 08:04:25 2023 +0530"
      },
      "message": "Avoid creating new admin user\n\nUtilize the existing admin user created by init steps and start the\nrun_tests container with that user.\n\nChange-Id: Ie85637846a6f1b650907089480749bf1bd9086e6\n"
    },
    {
      "commit": "56a512b32e002e25279e4338a734d882c84666de",
      "tree": "3ab0b4de3a21ea7fde2d6888f08553ee318d4e27",
      "parents": [
        "60ce01bc19cd897d6c3ebf7810fa56892138e00e",
        "9112e471733fc227875813395cba6d00d6c70187"
      ],
      "author": {
        "name": "Prudhvi Akhil Alahari",
        "email": "prudhvi.alahari@linaro.org",
        "time": "Thu Jun 01 05:22:09 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 01 05:22:09 2023 +0000"
      },
      "message": "Merge changes Ibde48bff,I25ee1514,If386e833 into stable-3.5\n\n* changes:\n  show task name in case of bad applicability query\n  rename \u0027untrusted user\u0027 to \u0027non-secret user\u0027 for docker tests\n  move docker tests data creation to \u0027create-one-time-test-data.sh\u0027\n"
    },
    {
      "commit": "9112e471733fc227875813395cba6d00d6c70187",
      "tree": "ec8ab16fb9b8d099cc40dd393f98e07f6a8e0193",
      "parents": [
        "8186c782c8df4cbaf771b1f3e78e3ab60aee639d"
      ],
      "author": {
        "name": "Yash Chaturvedi",
        "email": "yash.chaturvedi@linaro.org",
        "time": "Mon May 08 17:00:30 2023 +0530"
      },
      "committer": {
        "name": "Yash Chaturvedi",
        "email": "yash.chaturvedi@linaro.org",
        "time": "Tue May 23 17:00:51 2023 +0000"
      },
      "message": "show task name in case of bad applicability query\n\nBefore the change, \u0027UNKNOWN\u0027 is shown as task name when task is invalid\ndue to bad applicability query, which makes it difficult for users to\nidentify the misconfigured task. Update logic to output valid task name\ninstead of \u0027UNKNOWN\u0027 in case of bad applicability query in task config,\nif the user has read permission on it. Add tests for the aforementioned\ncase.\n\nChange-Id: Ibde48bff31ca95f94b95c77880bb3872cf3f0b77\n"
    },
    {
      "commit": "8186c782c8df4cbaf771b1f3e78e3ab60aee639d",
      "tree": "b18e242d79520505a94386797055c65aa6176a1b",
      "parents": [
        "80d655e81bf8acf251a7b4f1ca39034328881e5d"
      ],
      "author": {
        "name": "Yash Chaturvedi",
        "email": "yash.chaturvedi@linaro.org",
        "time": "Wed May 10 17:00:29 2023 +0530"
      },
      "committer": {
        "name": "Yash Chaturvedi",
        "email": "yash.chaturvedi@linaro.org",
        "time": "Tue May 23 17:00:28 2023 +0000"
      },
      "message": "rename \u0027untrusted user\u0027 to \u0027non-secret user\u0027 for docker tests\n\nDocker tests require a non-admin user that can read task config from\nrefs/meta/config in the All-Projects project but can not read other\nusers\u0027 config. Before the change, this user is named \u0027untrusted user\u0027\nwhich is a bit misleading since we trust the user with task config.\nChange the user name to \u0027non-secret user\u0027 to be more faithful to its\ncharacteristics.\n\nChange-Id: I25ee1514d9762ce4411a50369b4d153915668ee9\n"
    },
    {
      "commit": "80d655e81bf8acf251a7b4f1ca39034328881e5d",
      "tree": "d2ddfbdcab92a4539a631bf3bd1a017b6821baaf",
      "parents": [
        "3a032f4088921fcb1af3d52d1ee7b3fdb7e3ed0a"
      ],
      "author": {
        "name": "Yash Chaturvedi",
        "email": "yash.chaturvedi@linaro.org",
        "time": "Mon May 08 13:04:27 2023 +0530"
      },
      "committer": {
        "name": "Yash Chaturvedi",
        "email": "yash.chaturvedi@linaro.org",
        "time": "Tue May 23 22:25:00 2023 +0530"
      },
      "message": "move docker tests data creation to \u0027create-one-time-test-data.sh\u0027\n\nMove the docker test data setup to \u0027create-one-time-test-data.sh\u0027, so\nthat there is a standard interface to define the data creation steps\nneeded to run the docker tests.\n\nChange-Id: If386e833cf94b820473a32539bff3a29894774fd\n"
    },
    {
      "commit": "60ce01bc19cd897d6c3ebf7810fa56892138e00e",
      "tree": "0afb34ab3a4a0ce42d841abc3e1095e08bd405f2",
      "parents": [
        "3a032f4088921fcb1af3d52d1ee7b3fdb7e3ed0a"
      ],
      "author": {
        "name": "Yash Chaturvedi",
        "email": "yash.chaturvedi@linaro.org",
        "time": "Thu May 18 14:36:59 2023 +0530"
      },
      "committer": {
        "name": "Yash Chaturvedi",
        "email": "yash.chaturvedi@linaro.org",
        "time": "Thu May 18 16:17:27 2023 +0530"
      },
      "message": "Fix in-tree build failure due to FloggerLogString error\n\nBazel in-tree build started failing with the error: \"Arguments\nto log(String) must be compile-time constants or parameters annotated\nwith @CompileTimeConstant. If possible, use Flogger\u0027s formatting log\nmethods instead\", after the introduction of change: I6550cca076 in\nstable-3.5 branch. Update log(String) arguments to use Flogger\u0027s\nformatting, so that the bazel in-tree build is successful.\n\nChange-Id: I6c7fbbec26c82e7ec00bcb533d48d8b82d7b5b88\n"
    },
    {
      "commit": "3a032f4088921fcb1af3d52d1ee7b3fdb7e3ed0a",
      "tree": "d52e7c6955d8a22ea2226c94dba0f63231d6ae15",
      "parents": [
        "90e333d42301ec41dc30cdc16310172ac27dd563"
      ],
      "author": {
        "name": "Yash Chaturvedi",
        "email": "yash.chaturvedi@linaro.org",
        "time": "Wed Mar 01 20:51:39 2023 +0530"
      },
      "committer": {
        "name": "Yash Chaturvedi",
        "email": "yash.chaturvedi@linaro.org",
        "time": "Thu May 04 09:35:12 2023 +0530"
      },
      "message": "refactor method signatures for subtask and subnode getters\n\nUpdate the exception declaration for subtask and subnode getter methods,\nso that the high level methods are not burdened with handling\nunnecessary exceptions.\n\nChange-Id: Ida8fb5044147ffe8e5666a28610f7ec5702b0caf\n"
    },
    {
      "commit": "90e333d42301ec41dc30cdc16310172ac27dd563",
      "tree": "6f19897c95dafe7d97b1298e9d6c7c8d3b95a221",
      "parents": [
        "abb1fd4eee80b79079c8c95a09a1f266671948e2"
      ],
      "author": {
        "name": "Yash Chaturvedi",
        "email": "yash.chaturvedi@linaro.org",
        "time": "Tue Feb 28 22:31:06 2023 +0530"
      },
      "committer": {
        "name": "Yash Chaturvedi",
        "email": "yash.chaturvedi@linaro.org",
        "time": "Thu May 04 09:33:11 2023 +0530"
      },
      "message": "add invalid subtask in case of invalid task factory config\n\nBefore the change, missing preload-task in task factory makes the parent\ntask invalid, which is not consistent with how invalid config is handled\nin case of subtasks, subtask files and subtask externals. Handle\ninvalid task factory config by adding invalid subtask to make the logic\nconsistent with the rest.\n\nChange-Id: I88288e6709c2667c689a2bd0b9c1531e18ff68a5\n"
    },
    {
      "commit": "abb1fd4eee80b79079c8c95a09a1f266671948e2",
      "tree": "a2ca32c553c1b60ead964d2bffeea73837e8eff7",
      "parents": [
        "03fbe3090b7f1e047efd28b0fb2d09c1fe96db22"
      ],
      "author": {
        "name": "Yash Chaturvedi",
        "email": "yash.chaturvedi@linaro.org",
        "time": "Tue Feb 28 21:47:46 2023 +0530"
      },
      "committer": {
        "name": "Yash Chaturvedi",
        "email": "yash.chaturvedi@linaro.org",
        "time": "Thu May 04 09:28:18 2023 +0530"
      },
      "message": "refactor node creation and subnode adder method signatures\n\nRemove the exception declaration from node constructor, subnode adder\nand subnode factory methods where it is not needed.\n\nChange-Id: Iba32c9c230c85607526e05284b824b34fc5f11c5\n"
    },
    {
      "commit": "03fbe3090b7f1e047efd28b0fb2d09c1fe96db22",
      "tree": "ab853dbf7d55cb57fe03099f116166d9aa727431",
      "parents": [
        "ead1ba45c74092f092d5ca16c1e42a6062b94d18"
      ],
      "author": {
        "name": "Yash Chaturvedi",
        "email": "yash.chaturvedi@linaro.org",
        "time": "Tue Feb 28 09:20:05 2023 +0530"
      },
      "committer": {
        "name": "Yash Chaturvedi",
        "email": "yash.chaturvedi@linaro.org",
        "time": "Thu May 04 09:23:05 2023 +0530"
      },
      "message": "refactor node refresh and properties expansion method signatures\n\nRemove the exception declaration from methods where it is not needed so\nthat the methods higher up in the hierarchy can be relieved of the need\nto catch and handle these errors.\n\nChange-Id: Ic579be39c2eb04e53d76bea2aaf7a212b8164d41\n"
    },
    {
      "commit": "ead1ba45c74092f092d5ca16c1e42a6062b94d18",
      "tree": "8180e7efae432740c9904d790d128785913db0c3",
      "parents": [
        "b2af14229a58de980b132773e44119e8c1683e5d"
      ],
      "author": {
        "name": "Martin Fick",
        "email": "martin.fick@linaro.org",
        "time": "Thu Apr 06 17:46:30 2023 -0600"
      },
      "committer": {
        "name": "Martin Fick",
        "email": "martin.fick@linaro.org",
        "time": "Thu Apr 06 18:08:16 2023 -0600"
      },
      "message": "Fix the buggy task visibility\n\nTaskCofigFactory is looking at the wrong methods to define\nif a ref is visibile to user. Fix to call RefControl.isVisible()\nrather than RefControl.canRead(). canRead() only returns the\nproject permissions but isVisible() takes the user and ref\ninto account. Also modify a supporting test.\n\nOriginally-Authored-By: Adithya Chakilam\nChange-Id: I89ff399e66f06133212825a0fb3f1239734fb1a9\n"
    },
    {
      "commit": "b2af14229a58de980b132773e44119e8c1683e5d",
      "tree": "8590b47abeeefe5560ddc8ce8e5a5fc07eb05b05",
      "parents": [
        "641806234539b6796c3c326a6270247f3bfc1a55"
      ],
      "author": {
        "name": "Prakash Aswal",
        "email": "prakash.aswal@linaro.org",
        "time": "Fri Nov 11 14:58:22 2022 +0530"
      },
      "committer": {
        "name": "Martin Fick",
        "email": "martin.fick@linaro.org",
        "time": "Thu Apr 06 18:08:16 2023 -0600"
      },
      "message": "plugins/task: Fix typo in docs\n\nChange-Id: If10c1812b70a08fe21d28fd25e4320d60f18d46f\n"
    },
    {
      "commit": "641806234539b6796c3c326a6270247f3bfc1a55",
      "tree": "5e15e84012301b891e7d1386a77d526d1ed37caf",
      "parents": [
        "4dcccd73d1a34ac9fe25db2be778a160a52a898f"
      ],
      "author": {
        "name": "Yash Chaturvedi",
        "email": "yash.chaturvedi@linaro.org",
        "time": "Thu Feb 02 13:09:45 2023 +0530"
      },
      "committer": {
        "name": "Martin Fick",
        "email": "martin.fick@linaro.org",
        "time": "Thu Apr 06 18:08:12 2023 -0600"
      },
      "message": "Add logic to handle blank subtask and blank name in names-factory\n\nBefore the change, NPE was thrown in case the subtask or name field in\nnames-factory is blank. This makes the parent task invalid which is not\nideal. Add logic to handle these cases so that only the concerned task\nis marked as invalid.\n\nChange-Id: I1f8faf06f7bc55b6619a1ef40bd40ee98bd3b51b\n"
    },
    {
      "commit": "4dcccd73d1a34ac9fe25db2be778a160a52a898f",
      "tree": "98dad3e8c086243a44816c26a2c64a980b9a606a",
      "parents": [
        "ef01c5a6c4bbb5ff2d875c158b4c4a48fce28498"
      ],
      "author": {
        "name": "Martin Fick",
        "email": "martin.fick@linaro.org",
        "time": "Tue Apr 04 15:37:20 2023 -0600"
      },
      "committer": {
        "name": "Martin Fick",
        "email": "martin.fick@linaro.org",
        "time": "Wed Apr 05 17:16:27 2023 -0600"
      },
      "message": "Create a util package for related classes\n\nChange-Id: I78379980cc6d98113a23505f30eba33f2880c761\n"
    },
    {
      "commit": "ef01c5a6c4bbb5ff2d875c158b4c4a48fce28498",
      "tree": "4eaffad60c16fdf9b9edc7d4aa475b9d15cbac5a",
      "parents": [
        "e864e16dd30b7cfff34aa4aae8fec13de6bd2570"
      ],
      "author": {
        "name": "Martin Fick",
        "email": "martin.fick@linaro.org",
        "time": "Tue Apr 04 15:17:22 2023 -0600"
      },
      "committer": {
        "name": "Martin Fick",
        "email": "martin.fick@linaro.org",
        "time": "Wed Apr 05 17:16:27 2023 -0600"
      },
      "message": "Create statistics package for related classes\n\nChange-Id: I2d6c7adb99a28cae9f920c7c27741824c9741cf1\n"
    },
    {
      "commit": "e864e16dd30b7cfff34aa4aae8fec13de6bd2570",
      "tree": "b6b58dd2bcd73add1acdbd4f20644fd7266bde23",
      "parents": [
        "40442d73e949586d0e0ca53df3b045993ce78fbf"
      ],
      "author": {
        "name": "Martin Fick",
        "email": "martin.fick@linaro.org",
        "time": "Tue Mar 28 15:56:38 2023 -0600"
      },
      "committer": {
        "name": "Martin Fick",
        "email": "martin.fick@linaro.org",
        "time": "Wed Apr 05 17:16:27 2023 -0600"
      },
      "message": "Add a --summary-count switch to configure statistics\n\nThe summary size tracked by the TopKeyMap is now configurable from the\ncommand line.\n\nChange-Id: Ic1b352428b60c8dc8b37fd20846fa37efdf9d649\n"
    }
  ],
  "next": "40442d73e949586d0e0ca53df3b045993ce78fbf"
}
