)]}'
{"id":"openstack%2Fwatcher-dashboard~978256","triplet_id":"openstack%2Fwatcher-dashboard~master~I086456f627c4d03af62ed0504a4ec61acb55a6d5","project":"openstack/watcher-dashboard","branch":"master","topic":"ruff","attention_set":{},"removed_from_attention_set":{"11604":{"account":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"last_update":"2026-04-16 14:09:31.000000000","reason":"Change was submitted"},"28006":{"account":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"last_update":"2026-04-16 14:09:31.000000000","reason":"Change was submitted"},"15334":{"account":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"last_update":"2026-04-16 14:09:31.000000000","reason":"Change was submitted"},"26471":{"account":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"last_update":"2026-03-30 16:40:20.000000000","reason":"removed on reply"}},"hashtags":[],"change_id":"I086456f627c4d03af62ed0504a4ec61acb55a6d5","subject":"ruff: Add isort config and fix per-file-ignores","status":"MERGED","created":"2026-02-27 20:04:27.000000000","updated":"2026-04-16 14:10:30.000000000","submitted":"2026-04-16 14:09:31.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":7,"unresolved_comment_count":1,"has_review_started":true,"submission_id":"978256-ruff","meta_rev_id":"6cbaeab9e384bc4764e82e8f9ba3357a7d612b29","_number":978256,"virtual_id_number":978256,"owner":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},{"value":0,"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"value":0,"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},{"value":0,"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2026-04-16 14:09:31.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"all":[{"value":2,"date":"2026-04-16 13:56:41.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},{"value":0,"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"value":1,"date":"2026-04-04 03:57:53.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},{"value":2,"date":"2026-04-16 10:20:09.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"all":[{"value":1,"date":"2026-04-16 13:56:41.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},{"value":0,"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"value":0,"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},{"value":0,"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"all":[{"value":0,"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},{"value":0,"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"value":0,"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},{"value":0,"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{" 0":"Standard Change","+1":"Important Change","+2":"High Priority Change"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"}],"CC":[{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-02-27 20:04:41.000000000","updated_by":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"reviewer":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"state":"CC"},{"updated":"2026-02-27 20:27:43.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2026-02-27 22:59:28.000000000","updated_by":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"reviewer":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"state":"REVIEWER"},{"updated":"2026-02-28 13:39:51.000000000","updated_by":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"reviewer":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"state":"REVIEWER"},{"updated":"2026-04-16 10:20:09.000000000","updated_by":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"reviewer":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"state":"REVIEWER"},{"updated":"2026-04-16 13:56:41.000000000","updated_by":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"reviewer":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"state":"REVIEWER"}],"messages":[{"id":"d6cddd097b9d03c3263cbfa44e34bfff7f607cc3","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-02-27 20:04:27.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"3647a41221d09cf64033c423649dac3e5d3ec59a","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-02-27 20:04:41.000000000","message":"Patch Set 1:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":1},{"id":"00c7cbe23e5951a47d29282538a2b080007e6e13","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-02-27 20:13:28.000000000","message":"Patch Set 1:\n\n(6 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/cece70643a604a699e52ebbabede426b\n\n- teim-code-review https://zuul.teim.app/t/main/build/b6c92b2febcb4bfd9898b97a8b998e04 : SUCCESS in 8m 39s","accounts_in_message":[],"_revision_number":1},{"id":"acd398fa030bdebf0da00eb7a144685bfdcb9459","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-27 20:27:43.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/275a7667bb1a48a18e8917f754a9cd98\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/f646d323722141f3885b92cfc8e282f4 : SUCCESS in 2m 22s\n- requirements-check https://zuul.opendev.org/t/openstack/build/2533e0279ba7486689c632ec9b315152 : SUCCESS in 5m 02s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/1245f210a0ba4cd8b476542112f186fb : SUCCESS in 4m 08s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/2c9d7861102a46ceb74ecf8a8fb680a7 : SUCCESS in 2m 54s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/715f566a49204045be025653fbfc6b2e : SUCCESS in 4m 13s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/259719f4d49e413a8dab406c80bb34c6 : SUCCESS in 5m 33s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/6d5fd5ae16504c00a1a1df1c23d3f6b2 : SUCCESS in 4m 09s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/3348cea5e48240c9b6a564f1f4958ef0 : FAILURE in 6m 14s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/062dc7684c6f43d5a7e7186d4f1965f5 : SUCCESS in 6m 18s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/528e0d4fc41543ac88fbf2ebe1e1d03f : SUCCESS in 6m 09s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/e9af0da6c20b4112a24d6adda5dd2dc5 : SUCCESS in 4m 05s","accounts_in_message":[],"_revision_number":1},{"id":"3e6c93b0af2cc3381a8f008ccdc91bd536d10583","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-02-27 22:59:28.000000000","message":"Patch Set 1: Code-Review+1\n\nBuild succeeded (check pipeline).\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/91749cc7f1e0476d86a2a047fc2ec24c\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/d1ec738c528d45ea86f2c321aa8ca3f1 : SUCCESS in 2h 53m 24s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/48c87cbd86694e63bbaff0a14462e0f9 : SUCCESS in 2h 06m 57s","accounts_in_message":[],"_revision_number":1},{"id":"3bc25a981d708663cb857d2916d84d2262b554c8","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-02-28 12:22:05.000000000","message":"Uploaded patch set 2: Commit message was updated.\n\nOutdated Votes:\n* Code-Review+1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1\n","accounts_in_message":[],"_revision_number":2},{"id":"c8a565ad89f78d4deff6db92c0893a84747f6802","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-02-28 12:22:48.000000000","message":"Patch Set 2:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":2},{"id":"881a790be7b1d427d53cf8b5da36ea9a7873466f","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-02-28 12:33:41.000000000","message":"Patch Set 2:\n\n(4 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/96c9b98aeb2649f28fec7782a4f79a65\n\n- teim-code-review https://zuul.teim.app/t/main/build/d046d2a7634243528ddba2f3bcc1f9f7 : SUCCESS in 10m 41s","accounts_in_message":[],"_revision_number":2},{"id":"ad7757ef7c6a2b507b5f2ea68113437217e3fa4d","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-28 12:46:57.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/a9b012930c564a83bd7ef58668c330a6\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/97cfe78b7e544e9cac98256c85f5d442 : SUCCESS in 3m 02s\n- requirements-check https://zuul.opendev.org/t/openstack/build/ee31dad7369f474a891ad16e5a7e4935 : SUCCESS in 2m 02s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/816699549e9f4efcbdf48af504fcf0d5 : SUCCESS in 3m 13s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/35b22df95a6141d5b147ac0d090aa0b6 : SUCCESS in 3m 57s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/83fc708c357b43f393bf8b8fa9380f9e : SUCCESS in 4m 14s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/97126f8f39164906abbedca18fced02d : SUCCESS in 5m 58s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/3b1c400082bf4497a4b7f568b9d291d0 : SUCCESS in 3m 20s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/cecc99812e66474b81bbbf2c18d1851a : FAILURE in 6m 06s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/9d12c2370bc34ac9a8d82b87d22d91b9 : SUCCESS in 2m 42s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/daf5ba2558a1477281d1b141d19f0a97 : SUCCESS in 4m 25s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/cc8e2754bf0841d699442088467addef : SUCCESS in 2m 29s","accounts_in_message":[],"_revision_number":2},{"id":"a580b9efb98fbac3b83f848b3c09f08a6fbe4732","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-02-28 13:39:51.000000000","message":"Patch Set 2: Code-Review-1\n\n(2 comments)","accounts_in_message":[],"_revision_number":2},{"id":"287935537a97d9c46652925daa827eb8c001cb29","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-02-28 15:20:53.000000000","message":"Patch Set 2: Code-Review+1\n\nBuild succeeded (check pipeline).\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/ba6fa5e27eb140b9b5635976d4e0adba\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/0c750d7dccb34a4a9e7c686c6dc5d44c : SUCCESS in 2h 57m 18s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/884962378f594e2da2e7e25136ba40bc : SUCCESS in 2h 08m 15s","accounts_in_message":[],"_revision_number":2},{"id":"1e43e9ca704e111e27a5f3eea1fe43e597bc4bd3","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-03-30 13:01:06.000000000","message":"Uploaded patch set 3.\n\nOutdated Votes:\n* Code-Review+1, Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1\n","accounts_in_message":[],"_revision_number":3},{"id":"5f554de7023f802a0b0bfde51929d022fe59a4e0","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-03-30 13:01:29.000000000","message":"Patch Set 3:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":3},{"id":"2bb7b02dadd55543153e6421fcd17e8b542c5130","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-30 13:14:28.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/5ed141dba99a45cd9f20733b475f1331\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/59f9351febf240fb8f6cae58c836de64 : SUCCESS in 2m 27s\n- requirements-check https://zuul.opendev.org/t/openstack/build/8e3f87ac4e714f06bcbf3252b91b0fa0 : SUCCESS in 3m 08s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/380ae8cfed0346b689b4a8e7058809f4 : SUCCESS in 3m 57s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/6f37531d1e0e41c9ba4042a925c62c7f : SUCCESS in 3m 07s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/15d31843205c40849ab1b49ee65e4102 : SUCCESS in 6m 13s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/e71d0ac94e0f44eebd97967e4f4e1458 : SUCCESS in 3m 15s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/186bda50fa2848328013610d94c873c4 : SUCCESS in 4m 40s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/6d96b79bb3de4ef088ef6a49fd2c7351 : FAILURE in 7m 17s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/8f719ed625fc43fab35b0b545c654339 : SUCCESS in 4m 29s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/27efd2c541284330a32539ce69a22d3d : SUCCESS in 7m 02s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/38729265fa7f44698a81a8d0ddb10110 : SUCCESS in 2m 57s","accounts_in_message":[],"_revision_number":3},{"id":"2eec54fdd4ae90a4770f8f911940b045e5b5b711","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-03-30 13:21:24.000000000","message":"Patch Set 3:\n\n(5 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/50163d23cb534bd4b4b95db77745bcd4\n\n- teim-code-review https://zuul.teim.app/t/main/build/6253e5f110274c97bd0816dc19fd8a49 : SUCCESS in 11m 52s","accounts_in_message":[],"_revision_number":3},{"id":"c25d3cad6ffaf535cd7393c481d540af46e356a6","tag":"autogenerated:gerrit:setTopic","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-03-30 13:36:14.000000000","message":"Topic service-layer-pattern removed","accounts_in_message":[],"_revision_number":3},{"id":"363905c6e7515387d94ad7961a88a7f38600cc91","tag":"autogenerated:gerrit:setTopic","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-03-30 13:36:23.000000000","message":"Topic set to ruff","accounts_in_message":[],"_revision_number":3},{"id":"2d8f36f83deb14678f110006e71695c325bee613","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-03-30 13:49:51.000000000","message":"Patch Set 3:\n\n(2 comments)","accounts_in_message":[],"_revision_number":3},{"id":"6800832976984db92c6514a245685e5ad4f16681","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-03-30 13:51:26.000000000","message":"Uploaded patch set 4: Commit message was updated.\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":4},{"id":"0d56829f003671d5a5b94696b1407f997e2a9d2f","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-03-30 13:52:34.000000000","message":"Patch Set 4:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":4},{"id":"d67a8502d5e971032cf4013dabd96b19c9f24e37","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-30 14:10:25.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/4a20d6e564d547aab6943dc2d77d8599\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/8adaebe405f24715939a498cfdc09de1 : SUCCESS in 4m 57s\n- requirements-check https://zuul.opendev.org/t/openstack/build/621a5ad257fd4bc0886f4a212ddc81b1 : SUCCESS in 2m 39s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/aab7c653b6994d3aa3cf66fc4720bc2c : SUCCESS in 4m 27s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/827462dc90ee409ca7eaf5ddd34059b3 : SUCCESS in 4m 17s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/4cf196b0547f4159811d1cf3885bb0b2 : SUCCESS in 3m 33s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/7f0cb64d2241477b9135c1de9f0555cf : SUCCESS in 2m 50s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/d8302ec85b98489da7db152cff616560 : SUCCESS in 4m 31s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/7b64efe5f0ae42f98b11258cbee2172f : FAILURE in 8m 37s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/814574e6070149d6b448c1219745dddd : SUCCESS in 3m 51s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/31f3c2be3ff84942bee0abf623655aa8 : SUCCESS in 5m 06s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/3abc57ac68714ab78d81a4d06a3844e7 : SUCCESS in 3m 17s","accounts_in_message":[],"_revision_number":4},{"id":"f01c913fb69b11e44fa9f822dfd513404a9b824e","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-03-30 14:23:03.000000000","message":"Patch Set 4:\n\n(4 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/652656e3de574f65a481f94281289510\n\n- teim-code-review https://zuul.teim.app/t/main/build/c4b21e212cb446c482d0a6c8cac30cd3 : SUCCESS in 15m 58s","accounts_in_message":[],"_revision_number":4},{"id":"60598996b1fdabcf627dc43cfa11118c70886cce","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-03-30 16:40:20.000000000","message":"Patch Set 4: Code-Review+1\n\nBuild succeeded (check pipeline).\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/7142513e9b3e42a7abab8af756fa8915\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/e36ed4eb899248a8b0edadea90a3686a : SUCCESS in 2h 47m 16s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/ad5c5c6c00ae40a499d74622f69642f6 : SUCCESS in 2h 05m 34s","accounts_in_message":[],"_revision_number":4},{"id":"2e62a635cc9cfedcbf20f3b362cf095948612496","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-04-04 00:52:13.000000000","message":"Uploaded patch set 5: New patch set was added with same tree, parent tree, and commit message as Patch Set 4.\n\nCopied Votes:\n* Code-Review+1 (copy condition: \"**changekind:TRIVIAL_REBASE** OR is:MIN\")\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":5},{"id":"3e819bbdb5bb2bcc9754380eb23dc29c8a6c503b","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-04-04 00:53:07.000000000","message":"Patch Set 5:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":5},{"id":"97e171d4fa6e114fede66c98daf2f8379bde0a54","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-04-04 01:00:20.000000000","message":"Patch Set 5:\n\n(2 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/9309b6ba558345f58cbc865640d1540a\n\n- teim-code-review https://zuul.teim.app/t/main/build/99b73ea84fe1458fa6b774b79c7692f3 : SUCCESS in 7m 03s","accounts_in_message":[],"_revision_number":5},{"id":"51495c5b7b3d8a278327358b64626c5b92189248","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-04 01:10:30.000000000","message":"Patch Set 5: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/b5408fc36629469ca2f2b9483e9a668b\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/f053b1e506eb4a7cb824f2ebb928c80c : SUCCESS in 2m 39s\n- requirements-check https://zuul.opendev.org/t/openstack/build/855b9af732b64fe3877f9cc58a2f2e4b : SUCCESS in 1m 33s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/aba52216853242dbb796d9d00eebada0 : SUCCESS in 3m 45s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/95827444815c438488adf54516f31ffc : SUCCESS in 3m 12s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/3a60d12bc7fb457e86bb70ae740c79fc : SUCCESS in 3m 56s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/6574e4f2678d42eeb6c3fe53e79d7149 : SUCCESS in 2m 40s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/49d143a957a140f6ba01e73321aaae8f : SUCCESS in 3m 52s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/b6a46d7180d44ac1adeed06201b7e6e3 : FAILURE in 4m 44s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/6bbf0a29f1194ec889cea8d14bbcdba6 : SUCCESS in 5m 28s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/8b32753c64484911af0ecb6182f5526f : SUCCESS in 4m 08s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/b2f0317c81ca419c9316d3f3399d630c : SUCCESS in 3m 25s","accounts_in_message":[],"_revision_number":5},{"id":"e4f9dc8314433ea0a420c2eb5290e15ac4ad9d65","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-04-04 03:57:53.000000000","message":"Patch Set 5: Code-Review+1\n\nBuild succeeded (check pipeline).\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/0b0b7fe51a864a2fb974dce9194cd84b\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/e99267e91d3c49e68d4b10e5d30fd33a : SUCCESS in 3h 03m 51s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/e4d2e3c9acca4af48d9aa4f7da128808 : SUCCESS in 2h 08m 35s","accounts_in_message":[],"_revision_number":5},{"id":"e8878fafef688468c8c1816a2b84d7bcc78e3398","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-04-07 15:25:02.000000000","message":"Patch Set 5:\n\n(1 comment)","accounts_in_message":[],"_revision_number":5},{"id":"a42eed3d41ea98a3c667a912078677f22103020b","tag":"autogenerated:gerrit:setTopic","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-04-07 15:26:04.000000000","message":"Topic service-layer-refactor removed","accounts_in_message":[],"_revision_number":5},{"id":"1230d4e1db6fcaf345f405c25a41dd8a4e753541","tag":"autogenerated:gerrit:setTopic","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-04-07 15:26:10.000000000","message":"Topic set to ruff","accounts_in_message":[],"_revision_number":5},{"id":"0535213e5dcf034c27efc322c58b5b07a5c8f6af","author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"date":"2026-04-16 10:20:09.000000000","message":"Patch Set 5: Code-Review+2\n\n(1 comment)","accounts_in_message":[],"_revision_number":5},{"id":"b360d58f94dcd05a9b9a64d071d31dc404df8f31","author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"date":"2026-04-16 13:56:41.000000000","message":"Patch Set 5: Code-Review+2 Workflow+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":5},{"id":"d36fee49bc943889d0e3261e7e10d72723a6cb17","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-16 13:56:56.000000000","message":"Patch Set 5: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":5},{"id":"979d7e53ac88bc06523cb84fa9ed2823c0ff83e2","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-16 14:09:31.000000000","message":"Patch Set 5: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/f546263532c340fc9be9de26fa12761b\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/f7eb4a703aeb478da6216c023d62d38b : SUCCESS in 2m 34s\n- requirements-check https://zuul.opendev.org/t/openstack/build/b6b8ab8dc8274e3189a8633a632bff55 : SUCCESS in 2m 16s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/177ff9d8db244b9391b3b9502593d792 : SUCCESS in 4m 27s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/9b80887ce89b4cd2869f0ecd4b65ad5a : SUCCESS in 4m 58s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/b058b9eb6d144b47b3ba8c30da2410fc : SUCCESS in 3m 28s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/0806982e9a2e4534917bf6247800a085 : SUCCESS in 4m 22s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/47b024d9554949dc91ec441f9f559dfa : SUCCESS in 7m 24s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/814a3bdaa7f542008b467cd773565436 : SUCCESS in 2m 47s","accounts_in_message":[],"_revision_number":5},{"id":"3872f4d8faa78094ba1055a324ed85b2f4f26613","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-16 14:09:31.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":5},{"id":"6cbaeab9e384bc4764e82e8f9ba3357a7d612b29","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-16 14:10:30.000000000","message":"Patch Set 5:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/ac333cd428714f07bdaf73ae17847470\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/7df7443927a84bc8bacd8c07a0482c52 : SUCCESS in 48s\n- promote-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/61c7e9d4b38c455888b73f43e698f958 : SUCCESS in 47s","accounts_in_message":[],"_revision_number":5}],"current_revision_number":5,"current_revision":"a37091dc88feecd16f9e3ea10b10e1c9474219f2","revisions":{"3acbcc76b3aef0c9b4b8acc4c963b76df3857113":{"kind":"REWORK","_number":1,"created":"2026-02-27 20:04:27.000000000","uploader":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"ref":"refs/changes/56/978256/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/56/978256/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/56/978256/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/56/978256/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/56/978256/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/56/978256/1"}}},"commit":{"parents":[{"commit":"66152a6e2da3e6af287d1f76a0895ec3cbec1be8","subject":"Document UI-layer contribution patterns","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/66152a6e2da3e6af287d1f76a0895ec3cbec1be8"}]}],"author":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-02-27 18:22:56.000000000","tz":0},"committer":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-02-27 20:04:14.000000000","tz":0},"subject":"ruff: Add isort config generator and fix per-file-ignores","message":"ruff: Add isort config generator and fix per-file-ignores\n\nAdd tools/generate_isort_config.py which fetches OpenStack governance\nprojects.yaml, intersects with local requirements to identify OpenStack\nthird-party packages, and writes [tool.ruff.lint.isort] to pyproject.toml.\n\nEnables ruff I-rules (import sorting) in pyproject.toml with:\n- section-order placing openstack-third-party between third-party and\n  first-party sections\n- force-single-line \u003d true enforcing one import per line (H301)\n- force-sort-within-sections \u003d true for H306-compatible ordering\n- known-first-party \u003d [\"watcher_dashboard\"]\n- openstack-third-party \u003d [hacking, horizon, pbr, python_watcherclient]\n\nAlso fixes two pre-existing linter config issues:\n- per-file-ignores path was watcher_dashboard/tests/* (directory does\n  not exist); corrected to watcher_dashboard/test/*\n- Add explicit F403/F405 ignore for test/settings.py which uses star\n  imports inherited from openstack_dashboard.test.settings\n\nAdds [testenv:sync-isort] to tox.ini to regenerate the isort config\nwhen governance or requirements change.\n\nAdds H306 to flake8 ignore list: ruff I-rules now enforce import order\nwith correct handling of mixed import styles; flake8 H306 conflicts with\nruff when both from-style and bare-style imports of the same package are\npresent in the same file.\n\nActivating I-rules caused ruff --fix to auto-apply import ordering\nacross 37 files. All 50 unit tests pass; tox -e pep8 passes.\n\nGenerated-By: claude-code\nChange-Id: I086456f627c4d03af62ed0504a4ec61acb55a6d5\nSigned-off-by: Sean Mooney \u003cwork@seanmooney.info\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/3acbcc76b3aef0c9b4b8acc4c963b76df3857113"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/3acbcc76b3aef0c9b4b8acc4c963b76df3857113"}]},"branch":"refs/heads/master"},"3e43b87019a450e2a4073a5b91a3a5454e15c43e":{"kind":"NO_CODE_CHANGE","_number":2,"created":"2026-02-28 12:22:05.000000000","uploader":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"ref":"refs/changes/56/978256/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/56/978256/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/56/978256/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/56/978256/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/56/978256/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/56/978256/2"}}},"commit":{"parents":[{"commit":"7bbce7c4446dcd4df6aa57ded4763a44d808d1a2","subject":"Document UI-layer contribution patterns","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/7bbce7c4446dcd4df6aa57ded4763a44d808d1a2"}]}],"author":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-02-27 18:22:56.000000000","tz":0},"committer":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-02-28 12:09:02.000000000","tz":0},"subject":"ruff: Add isort config generator and fix per-file-ignores","message":"ruff: Add isort config generator and fix per-file-ignores\n\nAdd tools/generate_isort_config.py which fetches OpenStack governance\nprojects.yaml, intersects with local requirements to identify OpenStack\nthird-party packages, and writes [tool.ruff.lint.isort] to pyproject.toml.\n\nEnables ruff I-rules (import sorting) in pyproject.toml with:\n- section-order placing openstack-third-party between third-party and\n  first-party sections\n- force-single-line \u003d true enforcing one import per line (H301)\n- force-sort-within-sections \u003d true for H306-compatible ordering\n- known-first-party \u003d [\"watcher_dashboard\"]\n- openstack-third-party \u003d [hacking, horizon, pbr, python_watcherclient]\n\nAlso fixes two pre-existing linter config issues:\n- per-file-ignores path was watcher_dashboard/tests/* (directory does\n  not exist); corrected to watcher_dashboard/test/*\n- Add explicit F403/F405 ignore for test/settings.py which uses star\n  imports inherited from openstack_dashboard.test.settings\n\nAdds [testenv:sync-isort] to tox.ini to regenerate the isort config\nwhen governance or requirements change.\n\nAdds H306 to flake8 ignore list: ruff I-rules now enforce import order\nwith correct handling of mixed import styles; flake8 H306 conflicts with\nruff when both from-style and bare-style imports of the same package are\npresent in the same file.\n\nActivating I-rules caused ruff --fix to auto-apply import ordering\nacross 37 files. All 50 unit tests pass; tox -e pep8 passes.\n\nGenerated-By: claude-code sonnet 4.6\nChange-Id: I086456f627c4d03af62ed0504a4ec61acb55a6d5\nSigned-off-by: Sean Mooney \u003cwork@seanmooney.info\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/3e43b87019a450e2a4073a5b91a3a5454e15c43e"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/3e43b87019a450e2a4073a5b91a3a5454e15c43e"}]},"branch":"refs/heads/master"},"bffe399702b1e2154da08195f2dcbbf7dd9e99ac":{"kind":"REWORK","_number":3,"created":"2026-03-30 13:01:06.000000000","uploader":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"ref":"refs/changes/56/978256/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/56/978256/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/56/978256/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/56/978256/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/56/978256/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/56/978256/3"}}},"commit":{"parents":[{"commit":"af8ffd4706a8c646db325f908ef82d5baed1e7de","subject":"Merge \"Update master for stable/2026.1\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/af8ffd4706a8c646db325f908ef82d5baed1e7de"}]}],"author":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-02-27 18:22:56.000000000","tz":0},"committer":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-03-30 12:18:27.000000000","tz":60},"subject":"ruff: Add isort config generator and fix per-file-ignores","message":"ruff: Add isort config generator and fix per-file-ignores\n\nEnables ruff I-rules (import sorting) in pyproject.toml with:\n- section-order placing openstack-third-party between third-party and\n  first-party sections\n- force-single-line \u003d true enforcing one import per line (H301)\n- force-sort-within-sections \u003d true for H306-compatible ordering\n- known-first-party \u003d [\"watcher_dashboard\"]\n\nAlso fixes two pre-existing linter config issues:\n- per-file-ignores path was watcher_dashboard/tests/* (directory does\n  not exist); corrected to watcher_dashboard/test/*\n- Add explicit F403/F405 ignore for test/settings.py which uses star\n  imports inherited from openstack_dashboard.test.settings\n\nAdds H306 to flake8 ignore list: ruff I-rules now enforce import order\nwith correct handling of mixed import styles; flake8 H306 conflicts with\nruff when both from-style and bare-style imports of the same package are\npresent in the same file.\n\nActivating I-rules caused ruff --fix to auto-apply import ordering\nacross 37 files. All 50 unit tests pass; tox -e pep8 passes.\n\nAssisted-By: claude-code sonnet 4.6\nChange-Id: I086456f627c4d03af62ed0504a4ec61acb55a6d5\nSigned-off-by: Sean Mooney \u003cwork@seanmooney.info\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/bffe399702b1e2154da08195f2dcbbf7dd9e99ac"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/bffe399702b1e2154da08195f2dcbbf7dd9e99ac"}]},"branch":"refs/heads/master"},"12d834eeacdd49922ec58c7d8bfe0591331144b3":{"kind":"NO_CODE_CHANGE","_number":4,"created":"2026-03-30 13:51:26.000000000","uploader":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"ref":"refs/changes/56/978256/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/56/978256/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/56/978256/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/56/978256/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/56/978256/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/56/978256/4"}}},"commit":{"parents":[{"commit":"af8ffd4706a8c646db325f908ef82d5baed1e7de","subject":"Merge \"Update master for stable/2026.1\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/af8ffd4706a8c646db325f908ef82d5baed1e7de"}]}],"author":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-02-27 18:22:56.000000000","tz":0},"committer":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-03-30 13:50:54.000000000","tz":60},"subject":"ruff: Add isort config and fix per-file-ignores","message":"ruff: Add isort config and fix per-file-ignores\n\nEnables ruff I-rules (import sorting) in pyproject.toml with:\n- section-order placing openstack-third-party between third-party and\n  first-party sections\n- force-single-line \u003d true enforcing one import per line (H301)\n- force-sort-within-sections \u003d true for H306-compatible ordering\n- known-first-party \u003d [\"watcher_dashboard\"]\n\nAlso fixes two pre-existing linter config issues:\n- per-file-ignores path was watcher_dashboard/tests/* (directory does\n  not exist); corrected to watcher_dashboard/test/*\n- Add explicit F403/F405 ignore for test/settings.py which uses star\n  imports inherited from openstack_dashboard.test.settings\n\nAdds H306 to flake8 ignore list: ruff I-rules now enforce import order\nwith correct handling of mixed import styles; flake8 H306 conflicts with\nruff when both from-style and bare-style imports of the same package are\npresent in the same file.\n\nActivating I-rules caused ruff --fix to auto-apply import ordering\nacross 37 files. All 50 unit tests pass; tox -e pep8 passes.\n\nAssisted-By: claude-code sonnet 4.6\nChange-Id: I086456f627c4d03af62ed0504a4ec61acb55a6d5\nSigned-off-by: Sean Mooney \u003cwork@seanmooney.info\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/12d834eeacdd49922ec58c7d8bfe0591331144b3"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/12d834eeacdd49922ec58c7d8bfe0591331144b3"}]},"branch":"refs/heads/master"},"a37091dc88feecd16f9e3ea10b10e1c9474219f2":{"kind":"NO_CHANGE","_number":5,"created":"2026-04-04 00:52:13.000000000","uploader":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"ref":"refs/changes/56/978256/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/56/978256/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/56/978256/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/56/978256/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/56/978256/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/56/978256/5"}}},"commit":{"parents":[{"commit":"af8ffd4706a8c646db325f908ef82d5baed1e7de","subject":"Merge \"Update master for stable/2026.1\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/af8ffd4706a8c646db325f908ef82d5baed1e7de"}]}],"author":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-02-27 18:22:56.000000000","tz":0},"committer":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-04-04 00:49:03.000000000","tz":60},"subject":"ruff: Add isort config and fix per-file-ignores","message":"ruff: Add isort config and fix per-file-ignores\n\nEnables ruff I-rules (import sorting) in pyproject.toml with:\n- section-order placing openstack-third-party between third-party and\n  first-party sections\n- force-single-line \u003d true enforcing one import per line (H301)\n- force-sort-within-sections \u003d true for H306-compatible ordering\n- known-first-party \u003d [\"watcher_dashboard\"]\n\nAlso fixes two pre-existing linter config issues:\n- per-file-ignores path was watcher_dashboard/tests/* (directory does\n  not exist); corrected to watcher_dashboard/test/*\n- Add explicit F403/F405 ignore for test/settings.py which uses star\n  imports inherited from openstack_dashboard.test.settings\n\nAdds H306 to flake8 ignore list: ruff I-rules now enforce import order\nwith correct handling of mixed import styles; flake8 H306 conflicts with\nruff when both from-style and bare-style imports of the same package are\npresent in the same file.\n\nActivating I-rules caused ruff --fix to auto-apply import ordering\nacross 37 files. All 50 unit tests pass; tox -e pep8 passes.\n\nAssisted-By: claude-code sonnet 4.6\nChange-Id: I086456f627c4d03af62ed0504a4ec61acb55a6d5\nSigned-off-by: Sean Mooney \u003cwork@seanmooney.info\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/a37091dc88feecd16f9e3ea10b10e1c9474219f2"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/a37091dc88feecd16f9e3ea10b10e1c9474219f2"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"CLOSED","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY","applied_by":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"}}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dMAX"],"failing_atoms":["label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dMAX"],"failing_atoms":["label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Workflow\u003dMAX"],"failing_atoms":["label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
