)]}'
{"id":"openstack%2Fwatcher-dashboard~963378","triplet_id":"openstack%2Fwatcher-dashboard~master~I83f78535c1bd2f8bf9bff3247acb52ef744ec416","project":"openstack/watcher-dashboard","branch":"master","attention_set":{},"removed_from_attention_set":{"11604":{"account":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"last_update":"2025-11-11 10:56:40.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"I83f78535c1bd2f8bf9bff3247acb52ef744ec416","subject":"Adopt Ruff for security; remove Bandit and fix style","status":"MERGED","created":"2025-10-08 12:57:42.000000000","updated":"2025-11-11 12:48:22.000000000","submitted":"2025-11-11 10:56:40.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":2,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"963378","meta_rev_id":"39718441e1f061ec76f75d9937bbc0559ba49269","_number":963378,"virtual_id_number":963378,"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":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"value":0,"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2025-11-11 10:56:40.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":"2025-10-22 11:49:22.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},{"value":0,"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"value":1,"date":"2025-10-08 20:32:56.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":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":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"all":[{"value":0,"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},{"value":1,"date":"2025-10-22 17:30:41.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"value":0,"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},{"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":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"value":0,"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},{"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":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"_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":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},{"_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":"2025-10-08 13:09:02.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":"2025-10-08 20:32:56.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":"2025-10-22 11:49:22.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"},{"updated":"2025-11-11 10:06:50.000000000","updated_by":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"reviewer":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"state":"CC"},{"updated":"2025-11-11 10:07:04.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"}],"messages":[{"id":"81fcf1e7c5e90542df80befc7af9e357072c0aeb","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2025-10-08 12:57:42.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"ab51d86cca3497ec6933fdc88d0a7b4a9f88829d","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-10-08 13:09:02.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/3cb77b2d04194c5485cd03304f05cea7\n\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/6713c7e7d29a485e8f73423194d79467 : SUCCESS in 3m 58s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/ce51c56c4585478cbd1a9fb490f3f552 : SUCCESS in 6m 34s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/8550d0858cf74acdb9b37c07fea408e1 : FAILURE in 2m 58s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/ee34b5a6d01143c2bc4bd29a66d91230 : SUCCESS in 2m 06s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/f4d48e2c2f0849628d97d83393cc8845 : SUCCESS in 2m 58s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/92df80e35dd646ef96d72dddcd353e8a : SUCCESS in 8m 49s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/69989cd9efb44deca39e4ae6fc2b8be8 : SUCCESS in 3m 44s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/e8ec8d927db547ec95fcf5936ce41497 : SUCCESS in 9m 07s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/1f94cf22c52b406b8c721d058e27e013 : SUCCESS in 2m 16s","accounts_in_message":[],"_revision_number":1},{"id":"f4bd26d0c15a5b9943292d69a97f55a74b36fb2a","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2025-10-08 15:40:55.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":2},{"id":"2af3e2f1b110280b5604550cc97a37002216f1aa","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-10-08 16:04:28.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/49b3bbd5728a49cb93d96cc1953cf417\n\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/277e3da19edb4973b7aa5c53d3e68b80 : SUCCESS in 5m 07s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/4db294c6cb17496ea1e1352d182f5e76 : SUCCESS in 6m 22s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/8871436dbe2441c9a56bc9839fc57081 : FAILURE in 4m 40s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/9da9432df7194901a353fa1aa79e6c72 : SUCCESS in 5m 35s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/7157d4a947c54c7a9df41842514de973 : SUCCESS in 4m 51s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/7d02283ffe394007aff690accf0fc2f7 : SUCCESS in 9m 09s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/17174595c0e34846b156313df7f53213 : SUCCESS in 5m 30s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/d87a9ff508a9483f92eab94bef7189d0 : SUCCESS in 6m 49s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/5f3c275ce57743b8a131d4df77339343 : SUCCESS in 3m 48s","accounts_in_message":[],"_revision_number":2},{"id":"bc1abae0c8372b8bb7d9431542ea0e7d3ad3d492","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2025-10-08 20:32:56.000000000","message":"Patch Set 2: Code-Review+1\n\nBuild succeeded (check pipeline).\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/8d41dce13f45403c8df840999038c9a7\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/b28ff2700a0446999344323fcdaa71ee : SUCCESS in 4h 50m 43s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/0c865aad05a94987873c2d27cec2a583 : SUCCESS in 1h 59m 13s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"169e106324a794469fecd0e456fad67afc3d6450","author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"date":"2025-10-22 11:49:22.000000000","message":"Patch Set 2: Code-Review+2\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"586ea891ee03575284100ba88d45c5d6baadc899","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2025-10-22 17:30:41.000000000","message":"Patch Set 2: Workflow+1","accounts_in_message":[],"_revision_number":2},{"id":"d76611b721eebb820917e6cb0c8666dd458082ff","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-10-22 17:30:56.000000000","message":"Patch Set 2: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":2},{"id":"c68edfe7f5ad587ac7bd1abb48bf60c88f73251c","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-10-22 17:47:06.000000000","message":"Patch Set 2: Verified-2\n\nThis change depends on a change that failed to merge.\n\nChange https://review.opendev.org/c/openstack/watcher-dashboard/+/963372 is needed.","accounts_in_message":[],"_revision_number":2},{"id":"0f666412e69746e3107b34077f2b736519133ab3","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2025-11-11 10:06:50.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"a4234d5ec9cca51d3883542dbdfc69f969d19dc4","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":"2025-11-11 10:07:04.000000000","message":"Patch Set 2:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":2},{"id":"036bc6f4bc2d35a8da8acc06b335d94a748f3fd1","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-11 10:17:09.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/c62b5d14e3314de39a50007bb3b208dd\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/0c5f28081cbe4340ab6cf5df2af78f8d : SUCCESS in 2m 49s\n- requirements-check https://zuul.opendev.org/t/openstack/build/2ca2b61855b149408ae27148862f36d6 : SUCCESS in 2m 48s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/b268c1a228024537bd07cb42e7898ee2 : SUCCESS in 3m 44s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/4f9036c8be604e7780de905bd5e5b84c : SUCCESS in 4m 25s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/b5efd4cf4a0448098a7140e9fbe40aca : FAILURE in 3m 28s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/1c8fcd450206446fa1ea400eb91ead0e : SUCCESS in 3m 21s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/e228a50171634639aab8de66fd9e54a7 : SUCCESS in 3m 04s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/e50839eb9b874dabbd48571f28cddb69 : SUCCESS in 5m 01s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/d03bfd943bc9496d81a90670a29b5f21 : SUCCESS in 4m 00s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/5e9c5363f605465bbbd57640e05e5d71 : SUCCESS in 5m 12s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/413052677f2844c6bf9db4ab6c551f02 : SUCCESS in 2m 38s","accounts_in_message":[],"_revision_number":2},{"id":"e988f50822ab8f819dd933862cd131d8a121d3ea","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":"2025-11-11 10:18:12.000000000","message":"Patch Set 2:\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/00ebf1e742fe4edea5bf3b3a8ae8d11f\n\n- teim-code-review https://zuul.teim.app/t/main/build/84acaae1863a45478a3dcc63a72ec32d : SUCCESS in 10m 48s\n\nWarning:\n  Job teim-code-review: unable to map line for file comments: \n  stderr: \u0027fatal: There is no path watcher_dashboard/utils/errors.py:1 and utils.py in the commit\u0027\n  Comments left for invalid file watcher_dashboard/utils/errors.py:1 and utils.py","accounts_in_message":[],"_revision_number":2},{"id":"f9090c578d7eb80348011834cbb3dd9efab59ac5","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-11 10:22:15.000000000","message":"Patch Set 2: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":2},{"id":"002074414fb81096758de1a5f376761d481c824a","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-11 10:56:40.000000000","message":"Patch Set 2: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/6bb6f95e0cf14504a76bc91e15a8a2c1\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/78be5a712ca34a0c883d1563ef6bb075 : SUCCESS in 2m 13s\n- requirements-check https://zuul.opendev.org/t/openstack/build/1a3d0a2eac774cc1b0027df93c9eb350 : SUCCESS in 2m 08s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/fac739e883544f0ca5106c03ecaacd57 : SUCCESS in 3m 24s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/cb655283cf9c4493a9421e021083dd54 : SUCCESS in 4m 33s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/4624dcd7c91546eea5d887a552334f11 : SUCCESS in 3m 41s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/8ee6b6400dc448ce95fad6d39c1a34b2 : SUCCESS in 4m 05s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/d8c7b9ef0fc5488895ee8ba3b95732b5 : SUCCESS in 9m 27s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/485e3c15fa224e9f93109970a5439d42 : SUCCESS in 7m 35s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/6299a43c1a4a45fbbaa980a6b84c4d8c : SUCCESS in 3m 27s","accounts_in_message":[],"_revision_number":2},{"id":"4eb8cd69c42a1825a145775074df0a9f836927ef","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-11 10:56:40.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":2},{"id":"7c3a5e01fa0cd1cad70ffdbba87de02ee292ebdc","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-11 10:57:32.000000000","message":"Patch Set 2:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/019a5482e076467380e9e927bb4b9cfa\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/fffaa9709e2d4f82b0605a100aa9573d : SUCCESS in 43s\n- promote-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/7dea211490b541268b61090a180c63ca : SUCCESS in 42s","accounts_in_message":[],"_revision_number":2},{"id":"39718441e1f061ec76f75d9937bbc0559ba49269","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2025-11-11 12:48:22.000000000","message":"Patch Set 2:\n\nBuild succeeded (check pipeline).\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/d24573964ddb4611bed807651de3f293\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/bdf9995f486d492eabb5a52f5e0ca21d : SUCCESS in 2h 40m 08s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/70146ecf6da641b3ad7b12685855fccc : SUCCESS in 1h 52m 51s","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"ad1863e5b9d5970d505b0a8f513dcd1baa13e594","revisions":{"39aaa06e805aa2e787cfdb808cc0ea99fa5685dd":{"kind":"REWORK","_number":1,"created":"2025-10-08 12:57:42.000000000","uploader":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"ref":"refs/changes/78/963378/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/78/963378/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/78/963378/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/78/963378/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/78/963378/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/78/963378/1"}}},"commit":{"parents":[{"commit":"1856c908d1ae7aa49b18e70e889872fd6030e541","subject":"Fix pre-commit hook failures and add pre-commit config","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/1856c908d1ae7aa49b18e70e889872fd6030e541"}]}],"author":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2025-10-08 12:47:39.000000000","tz":60},"committer":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2025-10-08 12:51:58.000000000","tz":60},"subject":"Adopt Ruff for security; remove Bandit and fix style","message":"Adopt Ruff for security; remove Bandit and fix style\n\nExpand Ruff lint scope to include security checks and remove Bandit from\npre-commit. Fix residual style issues to comply with OpenStack rules\n(79-char lines, delayed logging interpolation).\n\nKey changes:\n- Drop Bandit pre-commit hook; rely on Ruff S-rules\n- Add S-rule suppressions where usage is intentional (subprocess, mark_safe)\n- Convert f-string logs to delayed interpolation and wrap lines\n- Update .pre-commit-config.yaml and project config accordingly\n\nAssisted-By: cursor gpt5\nChange-Id: I83f78535c1bd2f8bf9bff3247acb52ef744ec416\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/39aaa06e805aa2e787cfdb808cc0ea99fa5685dd"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/39aaa06e805aa2e787cfdb808cc0ea99fa5685dd"}]},"branch":"refs/heads/master"},"ad1863e5b9d5970d505b0a8f513dcd1baa13e594":{"kind":"REWORK","_number":2,"created":"2025-10-08 15:40:55.000000000","uploader":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"ref":"refs/changes/78/963378/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/78/963378/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/78/963378/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/78/963378/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/78/963378/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/78/963378/2"}}},"commit":{"parents":[{"commit":"1856c908d1ae7aa49b18e70e889872fd6030e541","subject":"Fix pre-commit hook failures and add pre-commit config","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/1856c908d1ae7aa49b18e70e889872fd6030e541"}]}],"author":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2025-10-08 12:47:39.000000000","tz":60},"committer":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2025-10-08 13:42:10.000000000","tz":60},"subject":"Adopt Ruff for security; remove Bandit and fix style","message":"Adopt Ruff for security; remove Bandit and fix style\n\nExpand Ruff lint scope to include security checks and remove Bandit from\npre-commit. Fix residual style issues to comply with OpenStack rules\n(79-char lines, delayed logging interpolation).\n\nKey changes:\n- Drop Bandit pre-commit hook; rely on Ruff S-rules\n- Add S-rule suppressions where usage is intentional (subprocess, mark_safe)\n- Convert f-string logs to delayed interpolation and wrap lines\n- Update .pre-commit-config.yaml and project config accordingly\n\nAssisted-By: cursor gpt5\nChange-Id: I83f78535c1bd2f8bf9bff3247acb52ef744ec416\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/ad1863e5b9d5970d505b0a8f513dcd1baa13e594"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/ad1863e5b9d5970d505b0a8f513dcd1baa13e594"}]},"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":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"}}]}],"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":{}}},{"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":{}}},{"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":{}}}]}
