)]}'
{"id":"openstack%2Fwatcher~983933","triplet_id":"openstack%2Fwatcher~master~Ifbd9f02949495bd68dac4a74235a4e53db07a033","project":"openstack/watcher","branch":"master","topic":"local-pre-commit","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-05-04 17:24:47.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-05-04 17:24:47.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"Ifbd9f02949495bd68dac4a74235a4e53db07a033","subject":"Convert remote pre-commit hooks to local pip hooks","status":"MERGED","created":"2026-04-09 20:24:13.000000000","updated":"2026-05-04 17:25:46.000000000","submitted":"2026-05-04 17:24:47.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":8,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"983933-local-pre-commit","meta_rev_id":"f866fcc5426e78b1b9f4b6ac9684eb76b167e9b7","_number":983933,"virtual_id_number":983933,"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":[{"tag":"autogenerated:zuul:gate","value":2,"date":"2026-05-04 17:24:47.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},{"value":0,"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"value":0,"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},{"value":0,"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"}],"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":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":2,"date":"2026-04-28 10:14:38.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},{"value":0,"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"value":2,"date":"2026-05-04 15:27:20.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},{"value":-1,"date":"2026-04-09 22:44:35.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"}],"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":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},{"value":0,"date":"2026-04-09 21:22:23.000000000","permitted_voting_range":{"min":0,"max":1},"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"value":1,"date":"2026-05-04 15:27:25.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},{"value":0,"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"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"}],"REVIEWER":[{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"_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":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-04-09 20:24:21.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-04-09 22:07:30.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-04-09 22:44:35.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-04-28 10:14:38.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-05-04 15:27:20.000000000","updated_by":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"reviewer":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"state":"REVIEWER"}],"messages":[{"id":"5d7a3743a8499091cb7bb722015ead11c26986e5","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-04-09 20:24:13.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"095f8c9daba2abbaa6d7917770789c8a9925d2bc","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-09 20:24:21.000000000","message":"Patch Set 1:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":1},{"id":"05fbd2e724ca0590dc8be8a424d70e62869839e4","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-04-09 20:28:51.000000000","message":"Patch Set 1: Workflow-1\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"21729f2a37a86a74f4660836c16c56b9c2c9a9ef","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-09 20:35:23.000000000","message":"Patch Set 1:\n\n(4 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/21e9670360084b41b168cc95a6ee688d\n\n- teim-code-review https://zuul.teim.app/t/main/build/97d55c5fa83547a3b58cfc219c71d75b : SUCCESS in 10m 53s","accounts_in_message":[],"_revision_number":1},{"id":"baaf4ef282b210305da5f58c56d6bff5ef4f55d9","tag":"autogenerated:gerrit:setTopic","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-04-09 21:06:58.000000000","message":"Topic hacking removed","accounts_in_message":[],"_revision_number":1},{"id":"811f8795372c656da672ba0e1189be64d4dc3962","tag":"autogenerated:gerrit:setTopic","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-04-09 21:07:01.000000000","message":"Topic set to local-pre-commit","accounts_in_message":[],"_revision_number":1},{"id":"2c3d0350c4665c5edd5fb98d06ba03a4b42e54a2","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-04-09 21:22:23.000000000","message":"Patch Set 1: -Workflow\n\n(2 comments)","accounts_in_message":[],"_revision_number":1},{"id":"cc76a5c8fa4a8e043fb503e3ede04eea0c8caa63","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-09 22:07:30.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/e603d5f5e6a9494d872be030e7d2d5f4\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/848e9474ea0147009725f5095b0e560e : SUCCESS in 4m 20s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/9061df82df2e45da824e8f2c9b548b31 : SUCCESS in 8m 50s\n- watcher-grenade https://zuul.opendev.org/t/openstack/build/768ed5bbe7e84b8fbe3beb2d975aebb0 : SUCCESS in 50m 51s\n- watcher-grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/5f1dc0415580436b807dba04813526d7 : SUCCESS in 52m 18s\n- watcher-tempest-api-ipv6-only https://zuul.opendev.org/t/openstack/build/10d73d45787c4968bcdcbf20d877a609 : SUCCESS in 16m 39s\n- watcher-tempest-gnocchi https://zuul.opendev.org/t/openstack/build/1bb1ff3fcb204941b80ec195f6537cba : SUCCESS in 1h 36m 36s\n- watcher-tempest-prometheus https://zuul.opendev.org/t/openstack/build/4468413134924df883e59ce148110ffb : SUCCESS in 1h 39m 35s\n- watcher-tempest-prometheus-eventlet https://zuul.opendev.org/t/openstack/build/b7e48d28f50542a997e393d3a86ab269 : SUCCESS in 1h 30m 56s\n- watcher-tempest-aetos https://zuul.opendev.org/t/openstack/build/bbec58b1cf2b4da0bc04dfc93e9e604c : SUCCESS in 1h 30m 30s","accounts_in_message":[],"_revision_number":1},{"id":"7a375a23d96615c797b8d2c9690b2103afeb971f","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-04-09 22:44:35.000000000","message":"Patch Set 1: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/524251234f9e40b9a30fafd2a30521af\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/3af2a48c1ced4505a42e741061fb2d32 : SUCCESS in 2h 19m 17s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/39a73a1e4fe049a9b421c59fbc0f2732 : FAILURE in 1h 39m 57s","accounts_in_message":[],"_revision_number":1},{"id":"70d17866051866a3204c2c6afc31866ca419f9ea","author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"date":"2026-04-28 10:14:38.000000000","message":"Patch Set 1: Code-Review+2\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"6617601221d10ef9156c08e179b6eb270c46b967","author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"date":"2026-05-04 15:27:20.000000000","message":"Patch Set 1: Code-Review+2","accounts_in_message":[],"_revision_number":1},{"id":"92c2bbcc845fd78782191820b53b99b0ee096da9","author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"date":"2026-05-04 15:27:25.000000000","message":"Patch Set 1: Workflow+1","accounts_in_message":[],"_revision_number":1},{"id":"3e7c176733112884b309066035748dc267d8765e","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-04 15:28:01.000000000","message":"Patch Set 1: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":1},{"id":"fd3c317f8d03ce1efa4081c323095f109e386d3a","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-04 17:24:47.000000000","message":"Patch Set 1: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/d44ef260e95c4cbdb14b7d63aca64702\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/fc009a892c294887b1760ea2509784bf : SUCCESS in 4m 27s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/67c48b0988a743f0a44712cd12f3499b : SUCCESS in 9m 51s\n- watcher-grenade https://zuul.opendev.org/t/openstack/build/ae35628551ce4254b862d01bc5088b70 : SUCCESS in 55m 34s\n- watcher-grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/8a87e6f0085041ad9e7319000090dcab : SUCCESS in 51m 15s\n- watcher-tempest-api-ipv6-only https://zuul.opendev.org/t/openstack/build/30c545e7527a4a73b3daeb43e2c960c9 : SUCCESS in 39m 35s\n- watcher-tempest-gnocchi https://zuul.opendev.org/t/openstack/build/f3d442487f9f4f29b33a1f05bff5c483 : SUCCESS in 1h 09m 56s\n- watcher-tempest-prometheus https://zuul.opendev.org/t/openstack/build/00b8621bc55441faa701033516e53415 : SUCCESS in 1h 36m 15s\n- watcher-tempest-prometheus-eventlet https://zuul.opendev.org/t/openstack/build/c87c9046511c4f3884ea04a06e5cf9a8 : SUCCESS in 1h 51m 19s\n- watcher-tempest-aetos https://zuul.opendev.org/t/openstack/build/8834b7b881b84395ab42e822af4c5590 : SUCCESS in 1h 40m 25s","accounts_in_message":[],"_revision_number":1},{"id":"08c319fb24b6d7cfbf5e800e18a7ab2a9393a528","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-04 17:24:47.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":1},{"id":"f866fcc5426e78b1b9f4b6ac9684eb76b167e9b7","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-04 17:25:46.000000000","message":"Patch Set 1:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/3eb58dbd209a467787a6c5313aa0d504\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/c6d8e461123f43558725d2f0120195b7 : SUCCESS in 44s","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"c7bbed028bc3e9c034d87e6cebe7a6b3a2dd7bf4","revisions":{"c7bbed028bc3e9c034d87e6cebe7a6b3a2dd7bf4":{"kind":"REWORK","_number":1,"created":"2026-04-09 20:24:13.000000000","uploader":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"ref":"refs/changes/33/983933/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher","ref":"refs/changes/33/983933/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher refs/changes/33/983933/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher refs/changes/33/983933/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher refs/changes/33/983933/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher refs/changes/33/983933/1"}}},"commit":{"parents":[{"commit":"f6bf570a897c98d42786c2e5325e9584440d2fbc","subject":"run hacking via local hook","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/f6bf570a897c98d42786c2e5325e9584440d2fbc"}]}],"author":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-04-09 20:22:31.000000000","tz":60},"committer":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-04-09 20:23:13.000000000","tz":60},"subject":"Convert remote pre-commit hooks to local pip hooks","message":"Convert remote pre-commit hooks to local pip hooks\n\nRemote repo hooks cause git clones on every CI run, consuming\nunnecessary network bandwidth. Convert all remote hooks to local\nhooks using additional_dependencies so pre-commit pip-installs\nthe tools instead. Pre-commit caches these venvs so the cost is\npaid once per environment and in ci it will use our provider\ncaching.\n\nThis is a 1:1 conversion — all hook IDs, args, type filters,\nand exclude patterns are preserved exactly. Upstream\n.pre-commit-hooks.yaml metadata (types, types_or,\nrequire_serial, true entry names) is replicated manually in\neach local hook definition to maintain identical behaviour.\n\nGenerated-By: claude-sonnet-4-6\nChange-Id: Ifbd9f02949495bd68dac4a74235a4e53db07a033\nSigned-off-by: Sean Mooney \u003cwork@seanmooney.info\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/c7bbed028bc3e9c034d87e6cebe7a6b3a2dd7bf4"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/c7bbed028bc3e9c034d87e6cebe7a6b3a2dd7bf4"}]},"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":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"}}]}],"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":""}}}]}
