{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":47752288,"defaultBranch":"master","name":"plugins_healthcheck","ownerLogin":"GerritCodeReview","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2015-12-10T09:42:00.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/7028910?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1715123075.0","currentOid":""},"activityList":{"items":[{"before":"123d5be3690708c8eb314140d99dd81901581bc8","after":"19c62e17795603abf3c74a16272c05b1b9e3a3f3","ref":"refs/heads/master","pushedAt":"2024-05-08T12:04:15.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"lucamilanesio","name":"Luca Milanesio","path":"/lucamilanesio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182893?s=80&v=4"},"commit":{"message":"Merge branch 'stable-3.10'\n\n* stable-3.10:\n Short-circuit on failed healthchecks\n Simplify construction of map of check results\n Simplify check for any failures\n Run checks in parallel\n\nChange-Id: I30c16e082fca33af3ae82d610d8e5191fdaf584d","shortMessageHtmlLink":"Merge branch 'stable-3.10'"}},{"before":"123d5be3690708c8eb314140d99dd81901581bc8","after":"8e4b3ef836503574ec2f50ca491476e2f445ad01","ref":"refs/heads/stable-3.10","pushedAt":"2024-05-07T22:49:05.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"lucamilanesio","name":"Luca Milanesio","path":"/lucamilanesio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182893?s=80&v=4"},"commit":{"message":"Short-circuit on failed healthchecks\n\nBefore the full set of checks was always executed even if it was clear\nthat it would have failed because of one of the checks failing.\n\nAvoid running the additional checks when one of the checks is failing\nfor any reason and therefore running the full set would not be useful.\n\nIntroduce the new status NOT_RUN that clarifies that the check was\nnot executed because it would have not change the overall status.\n\nThis change allows a Gerrit to avoid running extra checks when the\nsystem is already struggling. Having too may healthchecks could\nactually prevent the system to become healthy again.\nMinimizing the execution of checks on a struggling system is paramount\nfor allowing it to recover more quickly.\n\nChange-Id: I885b3df06b60e322f12b77674be02536e8131499","shortMessageHtmlLink":"Short-circuit on failed healthchecks"}},{"before":null,"after":"123d5be3690708c8eb314140d99dd81901581bc8","ref":"refs/heads/stable-3.10","pushedAt":"2024-04-06T20:04:27.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"lucamilanesio","name":"Luca Milanesio","path":"/lucamilanesio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182893?s=80&v=4"},"commit":{"message":"Adapt to API change in gerrit core\n\nGerrit core changed declared exceptions of RestSession methods in\nI21bef286bbe3ea9e3fc819d8912a501d9350dc8a from IOException to Exception.\n\nChange-Id: Ic19b18bc97bb8cdd7d3d96949ec8ff42e4dd978e","shortMessageHtmlLink":"Adapt to API change in gerrit core"}},{"before":"2def474c8ef197b00ae0bb77ae002752f7cab581","after":"123d5be3690708c8eb314140d99dd81901581bc8","ref":"refs/heads/master","pushedAt":"2024-03-12T17:48:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lucamilanesio","name":"Luca Milanesio","path":"/lucamilanesio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182893?s=80&v=4"},"commit":{"message":"Adapt to API change in gerrit core\n\nGerrit core changed declared exceptions of RestSession methods in\nI21bef286bbe3ea9e3fc819d8912a501d9350dc8a from IOException to Exception.\n\nChange-Id: Ic19b18bc97bb8cdd7d3d96949ec8ff42e4dd978e","shortMessageHtmlLink":"Adapt to API change in gerrit core"}},{"before":"9d88dfbe17ad79a96a653a599fc1a0434831723f","after":"24328491683175aa52bf9cbe12ef9c32a0fcbae5","ref":"refs/heads/stable-3.9","pushedAt":"2024-02-22T11:04:24.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lucamilanesio","name":"Luca Milanesio","path":"/lucamilanesio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182893?s=80&v=4"},"commit":{"message":"Disable changesindex check for gerrit replica\n\nGerrit replicas don't have a changes index hence this check should be\nautomatically disabled if the server is a replica.\n\nThis was missed in Ibbf77115e801e9fc01ec264b01a656b2a2b29a23.\n\nChange-Id: I651c0b08817e7c732c419a0cd3c28fe1e17b31e5\n(cherry picked from commit 2def474c8ef197b00ae0bb77ae002752f7cab581)","shortMessageHtmlLink":"Disable changesindex check for gerrit replica"}},{"before":"5143507fc0cfda89d709d6abc6bcabf14f5c30f7","after":"2def474c8ef197b00ae0bb77ae002752f7cab581","ref":"refs/heads/master","pushedAt":"2024-01-31T07:48:31.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"lucamilanesio","name":"Luca Milanesio","path":"/lucamilanesio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182893?s=80&v=4"},"commit":{"message":"Disable changesindex check for gerrit replica\n\nGerrit replicas don't have a changes index hence this check should be\nautomatically disabled if the server is a replica.\n\nThis was missed in Ibbf77115e801e9fc01ec264b01a656b2a2b29a23.\n\nChange-Id: I651c0b08817e7c732c419a0cd3c28fe1e17b31e5","shortMessageHtmlLink":"Disable changesindex check for gerrit replica"}},{"before":"9e9c4de7f76d8a7c080b70e11b871bfc12d7bc99","after":"5143507fc0cfda89d709d6abc6bcabf14f5c30f7","ref":"refs/heads/master","pushedAt":"2024-01-24T09:04:08.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"lucamilanesio","name":"Luca Milanesio","path":"/lucamilanesio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182893?s=80&v=4"},"commit":{"message":"Merge branch 'stable-3.9'\n\n* stable-3.9:\n Add missing `return` statement\n\nChange-Id: Idc7ac3d2f7c71ab7e9ff4b17aa27798b3e56ae95","shortMessageHtmlLink":"Merge branch 'stable-3.9'"}},{"before":"6c1d101485c4719cda18622b75b21c75a54e0a84","after":"9d88dfbe17ad79a96a653a599fc1a0434831723f","ref":"refs/heads/stable-3.9","pushedAt":"2024-01-22T13:49:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lucamilanesio","name":"Luca Milanesio","path":"/lucamilanesio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182893?s=80&v=4"},"commit":{"message":"Add missing `return` statement\n\nChange-Id: Ide75519272c0bd636d3476a9a413edcfc6212cf9","shortMessageHtmlLink":"Add missing return statement"}},{"before":"f74437a2747ee98b10c97cd381ba71f38cbe824a","after":"9e9c4de7f76d8a7c080b70e11b871bfc12d7bc99","ref":"refs/heads/master","pushedAt":"2024-01-19T00:04:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lucamilanesio","name":"Luca Milanesio","path":"/lucamilanesio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182893?s=80&v=4"},"commit":{"message":"Stop creating HealthCheckConfig with a dynamically injected plugin name\n\nCurrently, in order to create a `HealthCheckConfig` instance one needs\nto pass the plugin name. The plugin name is injected dynamically when\nthe object is provisioned. The constructor will then create a config\nobject using a plugin config factory with the provided plugin name.\n\nThis in turn means the config object will hold the contents of the\n`plugin.config` file. For any \"core\" healthcheck, ie a healthcheck\ndefined in the healthcheck plugin, this works fine, ie configuration is\nretrieved from the `healthcheck.config` file.\n\nThe problem arises for any external check, ie a check defined in an\nexternal plugin. In that case, the `pluginName` will be the one of the\nexternal plugin. So for a plugin foo, the `HealthCheckConfig` object will\nuse config located in a file foo.config. Here the external plugin's\nentire config is leaked into the healthcheck config object.\n\nThis is an even bigger problem because it is assumed every plugin\nprovides its config through a `pluginName.config` file, which is not\ntrue. A prime example of this is the pull-replication plugin, its config\nis defined in a `replication.config` file. Therefore, for such cases,\nany configuration defined in the plugin's config will be silently\nignored.\n\nA major impact of the above problems is that for external checks, we\ncan't have the \"base\" healthcheck config in the `healthcheck.config`\nfile. By \"base\" here we refer mainly to the `enabled` flag and the\ntimeout, both core features of any healthcheck specification.\nSuch configuration must be defined in the external plugin's config file.\n\nStop injecting dynamically the plugin name, instead hardcode it to the\nhealthcheck plugin's name. An additional benefit of this approach is\nthat the HealthCheckConfig will truly be a singleton object, as both\ncore and external healthchecks will use the same instance.\n\nBug: Issue 312895374\nChange-Id: I445ceafb69c74bc60530f25b44aa80e09262c2a7","shortMessageHtmlLink":"Stop creating HealthCheckConfig with a dynamically injected plugin name"}},{"before":"018aefa384f4d55d04b5e60147d96aaebe269bb6","after":"f74437a2747ee98b10c97cd381ba71f38cbe824a","ref":"refs/heads/master","pushedAt":"2024-01-15T14:03:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lucamilanesio","name":"Luca Milanesio","path":"/lucamilanesio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182893?s=80&v=4"},"commit":{"message":"Add missing registration step in the extension docs\n\nChange-Id: I07bf315db590a6460eb22a9b9eee9e9b8720e2d7","shortMessageHtmlLink":"Add missing registration step in the extension docs"}},{"before":"07bfb72a89e5864bf90c1df4700e38a83feac18b","after":"018aefa384f4d55d04b5e60147d96aaebe269bb6","ref":"refs/heads/master","pushedAt":"2023-12-31T18:48:26.000Z","pushType":"push","commitsCount":7,"pusher":{"login":"lucamilanesio","name":"Luca Milanesio","path":"/lucamilanesio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182893?s=80&v=4"},"commit":{"message":"Merge branch 'stable-3.9'\n\n* stable-3.9:\n Don't scan gerrit_index.config for current version when no Lucene\n Listen to OnlineUpgradeListener.onSuccess event\n Improve visibility of the integration tests\n Implement changes indexes lock files check\n Introduce the changes index health check stub\n Format using google-java-format\n\nChange-Id: I601ed267978fd1511fde1dfe5f3cd6d2044ee479","shortMessageHtmlLink":"Merge branch 'stable-3.9'"}},{"before":"07b2bf3d4a755c13d282d1ba440eb217e7b8f3d9","after":"6c1d101485c4719cda18622b75b21c75a54e0a84","ref":"refs/heads/stable-3.9","pushedAt":"2023-12-28T21:03:55.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"lucamilanesio","name":"Luca Milanesio","path":"/lucamilanesio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182893?s=80&v=4"},"commit":{"message":"Don't scan gerrit_index.config for current version when no Lucene\n\nWith the index engine is not Lucene don't scan `gerrit_index.config` for\nthe newest version as index checking is not supported anyway. Apply the\nsame logic for `onSuccess` so that handler is not performing empty\nupdates. To be reviewed when issue 316743624 gets implemented.\n\nChange-Id: I1f7b050b7f58cdbe35013038f45ec4195a669a8a","shortMessageHtmlLink":"Don't scan gerrit_index.config for current version when no Lucene"}},{"before":"bc3bd13d3ee8d85884e36bcaa79c183bde536449","after":"07b2bf3d4a755c13d282d1ba440eb217e7b8f3d9","ref":"refs/heads/stable-3.9","pushedAt":"2023-12-22T00:48:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"lucamilanesio","name":"Luca Milanesio","path":"/lucamilanesio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182893?s=80&v=4"},"commit":{"message":"Improve visibility of the integration tests\n\nChanges:\n* add `Abstract*Test.java` classes to common tests bazel library\n* extract unit tests to the bazel test target\n* extract each integration test to the bazel test target\n\nAs a result:\n* unit tests and each integration test are executed in parallel\n (especially beneficial in RBE) improving the visbility in case of\n failure as it will be reported against the unit tests or the\n specific integration test\n* locally the test time is reduced on M1 from ~25 to ~18\n\nNote that `@Ignore` annotation on `AbstractHealthCheckIntegrationTest`\nis no longer needed hence it was removed.\n\nChange-Id: Ie3b979c5b2e8d39576834ce1e8815b5e8ef8969c","shortMessageHtmlLink":"Improve visibility of the integration tests"}},{"before":"251947d87ca98de0f5da3ddf45719c77566d17e2","after":"bc3bd13d3ee8d85884e36bcaa79c183bde536449","ref":"refs/heads/stable-3.9","pushedAt":"2023-12-21T09:03:21.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"lucamilanesio","name":"Luca Milanesio","path":"/lucamilanesio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182893?s=80&v=4"},"commit":{"message":"Implement changes indexes lock files check\n\nDetect the following failures of both open and closed changes indexes\nwrite.lock files:\n* write.lock file is missing\n* write.lock file is not writeable by Gerrit\n\nNotes:\n* so far only changes indexes are subject of check\n* in order to test it `UseLocalDisk` annotation has to be applied (and\n it is heavy operation) therefore `HealthCheckIT` was modified so that\n `changesindex` healthcheck is disabled for all test cases (or\n additionally disabled in case when some checks get disabled)\n* `changesindex` healthcheck test cases were added to a dedicated\n `ChangesIndexHealthCheckIT` file\n* common functions from `HealthCheckIT` and `ChangesIndexHealthCheckIT`\n were introduced in `AbstractHealthCheckIntegrationTest`\n\nThe write.lock ownership change detection was tested manually with the\nfollowing steps:\n* docker run --rm -p 8080:8080 -p 29418:29418 -ti --name gerrit_3.9.1 gerritcodereview/gerrit:3.9.1\n* docker cp bazel-bin/plugins/healthcheck/healthcheck.jar gerrit_3.9.1:/var/gerrit/plugins\n* curl localhost:8080/config/server/healthcheck~status returned\n \"changesindex\": {\n \"result\": \"passed\",\n \"ts\": 1703147883563,\n \"elapsed\": 0\n }\n* docker exec -u root -it gerrit_3.9.1 /bin/bash\n* chown root:root /var/gerrit/index/changes_0084/open/write.lock\n* curl localhost:8080/config/server/healthcheck~status returned\n \"changesindex\": {\n \"result\": \"failed\",\n \"ts\": 1703148022276,\n \"elapsed\": 0\n }\n\nIOW it works as expected.\n\nBug: Issue 40015289\nChange-Id: I66a4053483e2c10eb28c150782c33cfd10dc2b15","shortMessageHtmlLink":"Implement changes indexes lock files check"}},{"before":"c84dfceab293924d9daaaa0c7f5c91ba8945a85d","after":"056106fff13847e10feecfd81bade1eaa834ed31","ref":"refs/heads/stable-3.7","pushedAt":"2023-11-14T10:50:23.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"lucamilanesio","name":"Luca Milanesio","path":"/lucamilanesio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182893?s=80&v=4"},"commit":{"message":"Merge branch 'stable-3.6' into stable-3.7\n\n* stable-3.6:\n Rename config.md to metrics.md\n Add the ability to fail healthcheck by creating a fail file\n\nChange-Id: I210391682ccee6ce6ae3127cbd32f9e46af8130a","shortMessageHtmlLink":"Merge branch 'stable-3.6' into stable-3.7"}},{"before":"35a8de31b8fb7efb1f1004013f5754dae8ef4472","after":"07bfb72a89e5864bf90c1df4700e38a83feac18b","ref":"refs/heads/master","pushedAt":"2023-11-14T10:50:23.000Z","pushType":"push","commitsCount":11,"pusher":{"login":"lucamilanesio","name":"Luca Milanesio","path":"/lucamilanesio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182893?s=80&v=4"},"commit":{"message":"Merge branch 'stable-3.9'\n\n* stable-3.9:\n Rename config.md to metrics.md\n Add the ability to fail healthcheck by creating a fail file\n Introduce healthcheck extension\n Revert \"Adapt list projects tests to ListProjectsImpl new type\"\n\nChange-Id: I7be479009a730ab34bb4fb2409ed058580d5c238","shortMessageHtmlLink":"Merge branch 'stable-3.9'"}},{"before":"35a8de31b8fb7efb1f1004013f5754dae8ef4472","after":"251947d87ca98de0f5da3ddf45719c77566d17e2","ref":"refs/heads/stable-3.9","pushedAt":"2023-11-14T10:50:23.000Z","pushType":"push","commitsCount":11,"pusher":{"login":"lucamilanesio","name":"Luca Milanesio","path":"/lucamilanesio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182893?s=80&v=4"},"commit":{"message":"Format using google-java-format\n\nChange-Id: I49a651b2a2107daea059f8932e9a20fe75155a15","shortMessageHtmlLink":"Format using google-java-format"}},{"before":"c84dfceab293924d9daaaa0c7f5c91ba8945a85d","after":"579b52fab18c7d2d80973bba6a61f69de952dc5d","ref":"refs/heads/stable-3.6","pushedAt":"2023-11-14T10:50:23.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"lucamilanesio","name":"Luca Milanesio","path":"/lucamilanesio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182893?s=80&v=4"},"commit":{"message":"Merge branch 'stable-3.5' into stable-3.6\n\n* stable-3.5:\n Rename config.md to metrics.md\n Add the ability to fail healthcheck by creating a fail file\n\nChange-Id: Id594338796a2598747c49d3e8580b7a5102f1058","shortMessageHtmlLink":"Merge branch 'stable-3.5' into stable-3.6"}},{"before":"35a8de31b8fb7efb1f1004013f5754dae8ef4472","after":"92f97e8dde8f1b22a1a78f7b32f79b49afeb9faa","ref":"refs/heads/stable-3.8","pushedAt":"2023-11-14T10:50:23.000Z","pushType":"push","commitsCount":7,"pusher":{"login":"lucamilanesio","name":"Luca Milanesio","path":"/lucamilanesio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182893?s=80&v=4"},"commit":{"message":"Merge branch 'stable-3.7' into stable-3.8\n\n* stable-3.7:\n Rename config.md to metrics.md\n Add the ability to fail healthcheck by creating a fail file\n\nChange-Id: Ic01fbf65ddfccd6abb3856600d7c4919bc2819e7","shortMessageHtmlLink":"Merge branch 'stable-3.7' into stable-3.8"}},{"before":"4294ad0b803c4e4ff6da4e72fe6f6c0df93cbd72","after":"da553843afb53429c76281460e43871a11128206","ref":"refs/heads/stable-3.4","pushedAt":"2023-11-14T10:50:23.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"lucamilanesio","name":"Luca Milanesio","path":"/lucamilanesio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182893?s=80&v=4"},"commit":{"message":"Rename config.md to metrics.md\n\nconfig.md only contained information on metrics, makes more sense for it\nto be name metrics.md\n\nChange-Id: Ie35774e52aa97351c0b7c351c6084b428fe52b7d","shortMessageHtmlLink":"Rename config.md to metrics.md"}},{"before":"c84dfceab293924d9daaaa0c7f5c91ba8945a85d","after":"feb8c71b29ac2eedcf46fa993c214f95c75ff60c","ref":"refs/heads/stable-3.5","pushedAt":"2023-11-14T10:50:23.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"lucamilanesio","name":"Luca Milanesio","path":"/lucamilanesio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182893?s=80&v=4"},"commit":{"message":"Merge branch 'stable-3.4' into stable-3.5\n\n* stable-3.4:\n Rename config.md to metrics.md\n Add the ability to fail healthcheck by creating a fail file\n\nChange-Id: Ic07ffce0ce556b8c22b72a616acf11818b4cf520","shortMessageHtmlLink":"Merge branch 'stable-3.4' into stable-3.5"}},{"before":null,"after":"35a8de31b8fb7efb1f1004013f5754dae8ef4472","ref":"refs/heads/stable-3.9","pushedAt":"2023-10-21T14:35:06.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"lucamilanesio","name":"Luca Milanesio","path":"/lucamilanesio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182893?s=80&v=4"},"commit":{"message":"Merge \"Adapt list projects tests to ListProjectsImpl new type\"","shortMessageHtmlLink":"Merge \"Adapt list projects tests to ListProjectsImpl new type\""}},{"before":null,"after":"35a8de31b8fb7efb1f1004013f5754dae8ef4472","ref":"refs/heads/stable-3.8","pushedAt":"2023-10-21T14:35:06.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"lucamilanesio","name":"Luca Milanesio","path":"/lucamilanesio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182893?s=80&v=4"},"commit":{"message":"Merge \"Adapt list projects tests to ListProjectsImpl new type\"","shortMessageHtmlLink":"Merge \"Adapt list projects tests to ListProjectsImpl new type\""}},{"before":"c5488cf172ceebd99d075a36ed3020af6fa0558e","after":"35a8de31b8fb7efb1f1004013f5754dae8ef4472","ref":"refs/heads/master","pushedAt":"2023-10-16T11:49:43.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"lucamilanesio","name":"Luca Milanesio","path":"/lucamilanesio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182893?s=80&v=4"},"commit":{"message":"Merge \"Adapt list projects tests to ListProjectsImpl new type\"","shortMessageHtmlLink":"Merge \"Adapt list projects tests to ListProjectsImpl new type\""}},{"before":"3f2c4091f821cc761b5183721871e7830a7f078e","after":"c5488cf172ceebd99d075a36ed3020af6fa0558e","ref":"refs/heads/master","pushedAt":"2023-10-14T19:48:44.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"lucamilanesio","name":"Luca Milanesio","path":"/lucamilanesio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182893?s=80&v=4"},"commit":{"message":"Merge \"Exclude intellij files from git\"","shortMessageHtmlLink":"Merge \"Exclude intellij files from git\""}},{"before":null,"after":"c84dfceab293924d9daaaa0c7f5c91ba8945a85d","ref":"refs/heads/stable-3.7","pushedAt":"2023-09-21T21:51:57.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"lucamilanesio","name":"Luca Milanesio","path":"/lucamilanesio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182893?s=80&v=4"},"commit":{"message":"Make documentation consistent\n\nDocumentation was spread between 2 places.\nMake it consistent following other plugins' pattern.\n\nChange-Id: Ib58707427c4db3c951f5aafc5ebcb3aa7444b44d","shortMessageHtmlLink":"Make documentation consistent"}},{"before":null,"after":"c84dfceab293924d9daaaa0c7f5c91ba8945a85d","ref":"refs/heads/stable-3.6","pushedAt":"2023-09-21T21:51:57.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"lucamilanesio","name":"Luca Milanesio","path":"/lucamilanesio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182893?s=80&v=4"},"commit":{"message":"Make documentation consistent\n\nDocumentation was spread between 2 places.\nMake it consistent following other plugins' pattern.\n\nChange-Id: Ib58707427c4db3c951f5aafc5ebcb3aa7444b44d","shortMessageHtmlLink":"Make documentation consistent"}},{"before":null,"after":"c84dfceab293924d9daaaa0c7f5c91ba8945a85d","ref":"refs/heads/stable-3.5","pushedAt":"2023-09-21T21:51:57.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"lucamilanesio","name":"Luca Milanesio","path":"/lucamilanesio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182893?s=80&v=4"},"commit":{"message":"Make documentation consistent\n\nDocumentation was spread between 2 places.\nMake it consistent following other plugins' pattern.\n\nChange-Id: Ib58707427c4db3c951f5aafc5ebcb3aa7444b44d","shortMessageHtmlLink":"Make documentation consistent"}},{"before":"c84dfceab293924d9daaaa0c7f5c91ba8945a85d","after":null,"ref":"refs/heads/stable-3.7","pushedAt":"2023-09-21T21:06:24.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"lucamilanesio","name":"Luca Milanesio","path":"/lucamilanesio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182893?s=80&v=4"}},{"before":"c84dfceab293924d9daaaa0c7f5c91ba8945a85d","after":null,"ref":"refs/heads/stable-3.6","pushedAt":"2023-09-21T21:06:24.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"lucamilanesio","name":"Luca Milanesio","path":"/lucamilanesio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/182893?s=80&v=4"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAERJOfEgA","startCursor":null,"endCursor":null}},"title":"Activity ยท GerritCodeReview/plugins_healthcheck"}