)]}'
{"id":"openstack%2Felection~1000991","triplet_id":"openstack%2Felection~master~I3debff0183a9fa8a2c8866caa530cfcfcb93d281","project":"openstack/election","branch":"master","attention_set":{},"removed_from_attention_set":{"5263":{"account":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"last_update":"2026-08-19 07:23:34.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"I3debff0183a9fa8a2c8866caa530cfcfcb93d281","subject":"Refactor contributor recording into a new function","status":"MERGED","created":"2026-08-14 17:53:59.000000000","updated":"2026-08-19 07:25:07.000000000","submitted":"2026-08-19 07:23:34.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":35,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"1000991","meta_rev_id":"430f6e3b99f99de28a7149e20c0c1ae71396d57a","_number":1000991,"virtual_id_number":1000991,"owner":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},{"value":0,"_account_id":14482,"name":"Ian Y. Choi","email":"ianyrchoi@gmail.com","username":"ianychoi"},{"value":0,"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2026-08-19 07:23:34.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":14482,"name":"Ian Y. Choi","email":"ianyrchoi@gmail.com","username":"ianychoi"},"recommended":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"all":[{"value":1,"date":"2026-08-18 17:11:07.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},{"value":2,"date":"2026-08-18 21:23:11.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":14482,"name":"Ian Y. Choi","email":"ianyrchoi@gmail.com","username":"ianychoi"},{"value":2,"date":"2026-08-19 07:09:38.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},{"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":"","value":1,"default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"all":[{"value":0,"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},{"value":0,"_account_id":14482,"name":"Ian Y. Choi","email":"ianyrchoi@gmail.com","username":"ianychoi"},{"value":1,"date":"2026-08-19 07:09:38.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},{"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}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},{"_account_id":14482,"name":"Ian Y. Choi","email":"ianyrchoi@gmail.com","username":"ianychoi"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-08-14 18:03:08.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-08-18 17:11:07.000000000","updated_by":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"reviewer":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"state":"REVIEWER"},{"updated":"2026-08-18 21:23:11.000000000","updated_by":{"_account_id":14482,"name":"Ian Y. Choi","email":"ianyrchoi@gmail.com","username":"ianychoi"},"reviewer":{"_account_id":14482,"name":"Ian Y. Choi","email":"ianyrchoi@gmail.com","username":"ianychoi"},"state":"REVIEWER"},{"updated":"2026-08-19 07:09:38.000000000","updated_by":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"reviewer":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"state":"REVIEWER"}],"messages":[{"id":"fe16aaf17295d5b31cf8d7f1874b26a9139d3337","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"date":"2026-08-14 17:53:59.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"b37b60768b5385dbd19ebe309f5d0fe9e7ebbc65","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-14 18:03:08.000000000","message":"Patch Set 1: Verified-1\n\n(34 comments)\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/b0819bcf3cf34ec2869e53a0c388bd6f\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/849bfa3ec0c4419184686d81c2baea2d : SUCCESS in 3m 45s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/62302f6757a54de3853c51aae2e0a3de : SUCCESS in 2m 58s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/c038e5887a5e4ab18f8f20512952e82d : SUCCESS in 3m 42s\n- openstack-tox-linters https://zuul.opendev.org/t/openstack/build/25dd80c3b35840b09533a1b9029cfb0f : FAILURE in 2m 07s\n- election-tox-ci-checks-review https://zuul.opendev.org/t/openstack/build/eb411c210a3f40a4aedd9468bf94cac5 : SUCCESS in 3m 20s\n- election-tox-ci-checks-election https://zuul.opendev.org/t/openstack/build/a054289cf6bb4773bb9a5880c098a643 : SUCCESS in 3m 30s","accounts_in_message":[],"_revision_number":1},{"id":"c22bcb63451f80c3c8f75a670057f98589e3f360","tag":"autogenerated:gerrit:setWorkInProgress","author":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"date":"2026-08-14 20:18:00.000000000","message":"Set Work In Progress\n\nI\u0027m going to need to pass more references to the new extracted function, and figure out how to short-circuit the outer loop effectively (whether that\u0027s signalled via custom exception or merely returning early).","accounts_in_message":[],"_revision_number":1},{"id":"37ea33a902d6fdd865120adf2c245c880dcb7f2c","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"date":"2026-08-17 18:28:55.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":2},{"id":"09e2e0f0cf11ace397da8c25dda012320fe849a0","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-17 18:47:16.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/a1181ecfd9b2484e8fdbd807228a8c23\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/2a308074b078416aa5ba1e978bcf50b7 : SUCCESS in 2m 49s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/a46c4e43e7234cd798c735741fa84198 : SUCCESS in 3m 41s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/f0dced6925564345aa3ef2b22dcf41ca : SUCCESS in 4m 05s\n- openstack-tox-linters https://zuul.opendev.org/t/openstack/build/e057a833152649ab81359014758cebfc : SUCCESS in 3m 56s\n- election-tox-ci-checks-review https://zuul.opendev.org/t/openstack/build/f1a7b566009f4023abde3fabbfb6c3c9 : SUCCESS in 4m 10s\n- election-tox-ci-checks-election https://zuul.opendev.org/t/openstack/build/303d320b2213470e961d483896a40470 : SUCCESS in 2m 56s","accounts_in_message":[],"_revision_number":2},{"id":"4711bb879470cc568ab03d004de097566c2192bf","author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"date":"2026-08-18 17:11:07.000000000","message":"Patch Set 2: Code-Review+1","accounts_in_message":[],"_revision_number":2},{"id":"b93b04962a7524b0b9696eb2210e3edea0b7ab02","author":{"_account_id":14482,"name":"Ian Y. Choi","email":"ianyrchoi@gmail.com","username":"ianychoi"},"date":"2026-08-18 21:23:11.000000000","message":"Patch Set 2: Code-Review+2\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"66d14b2324531f3d0837a1ead85830c2574bb4f7","author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"date":"2026-08-19 07:09:38.000000000","message":"Patch Set 2: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":2},{"id":"addef444b0b96b583ed3a823e38385efa20a3a9c","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-19 07:09:58.000000000","message":"Patch Set 2: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":2},{"id":"9754fe297713d6cb485c9a13ac7acf8ada347b08","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-19 07:23:34.000000000","message":"Patch Set 2: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/70ced7806f5047b59548cbc0ad160be6\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/de752a7b8f474817855e5bbaa81bed69 : SUCCESS in 2m 37s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/365babbfb3624c8ca0ac9ba3267452d4 : SUCCESS in 3m 17s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/d9cc760798cd4df0a5be3520e5d38f0e : SUCCESS in 3m 44s\n- openstack-tox-linters https://zuul.opendev.org/t/openstack/build/f45bd23dacc44efd83cc557b6a4d8d23 : SUCCESS in 4m 55s\n- election-tox-ci-checks-election https://zuul.opendev.org/t/openstack/build/351391aa7c3b498ca137931b781a7976 : SUCCESS in 3m 54s","accounts_in_message":[],"_revision_number":2},{"id":"1f2d342170788526caeff739304b05b10ac42dcd","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-19 07:23:34.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":2},{"id":"430f6e3b99f99de28a7149e20c0c1ae71396d57a","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-19 07:25:07.000000000","message":"Patch Set 2:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/137a845e32bd43568c8c81a6908e9c28\n\n- promote-governance-election https://zuul.opendev.org/t/openstack/build/45611c10a0094500ba7a1479795109a0 : SUCCESS in 38s","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"d116401c397f79fff682236740cb50d44a131222","revisions":{"d2ac778c66592c687fcbc9c51ecb7cae53ee2a99":{"kind":"REWORK","_number":1,"created":"2026-08-14 17:53:59.000000000","uploader":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"ref":"refs/changes/91/1000991/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/election","ref":"refs/changes/91/1000991/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/election refs/changes/91/1000991/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/election refs/changes/91/1000991/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/election refs/changes/91/1000991/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/election refs/changes/91/1000991/1"}}},"commit":{"parents":[{"commit":"9c06246ff2c02d4dac1a28a3b9753af06be7ef04","subject":"Sort owners CLI opts by short alias","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/election/commit/9c06246ff2c02d4dac1a28a3b9753af06be7ef04"}]}],"author":{"name":"Jeremy Stanley","email":"fungi@yuggoth.org","date":"2026-08-14 17:38:07.000000000","tz":0},"committer":{"name":"Jeremy Stanley","email":"fungi@yuggoth.org","date":"2026-08-14 17:38:07.000000000","tz":0},"subject":"Refactor contributor recording into a new function","message":"Refactor contributor recording into a new function\n\nThis will make it easier to reuse for later changes that add new\ncriteria (presently, core review activity). This commit only moves\nthe existing logic and dedents it, without renaming variables or\ndoing additional reformatting, in order to make it easier to review.\n\nChange-Id: I3debff0183a9fa8a2c8866caa530cfcfcb93d281\nSigned-off-by: Jeremy Stanley \u003cfungi@yuggoth.org\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/election/commit/d2ac778c66592c687fcbc9c51ecb7cae53ee2a99"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/election/commit/d2ac778c66592c687fcbc9c51ecb7cae53ee2a99"}]},"branch":"refs/heads/master"},"d116401c397f79fff682236740cb50d44a131222":{"kind":"REWORK","_number":2,"created":"2026-08-17 18:28:55.000000000","uploader":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"ref":"refs/changes/91/1000991/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/election","ref":"refs/changes/91/1000991/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/election refs/changes/91/1000991/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/election refs/changes/91/1000991/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/election refs/changes/91/1000991/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/election refs/changes/91/1000991/2"}}},"commit":{"parents":[{"commit":"9c06246ff2c02d4dac1a28a3b9753af06be7ef04","subject":"Sort owners CLI opts by short alias","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/election/commit/9c06246ff2c02d4dac1a28a3b9753af06be7ef04"}]}],"author":{"name":"Jeremy Stanley","email":"fungi@yuggoth.org","date":"2026-08-14 17:38:07.000000000","tz":0},"committer":{"name":"Jeremy Stanley","email":"fungi@yuggoth.org","date":"2026-08-17 18:23:08.000000000","tz":0},"subject":"Refactor contributor recording into a new function","message":"Refactor contributor recording into a new function\n\nThis will make it easier to reuse for later changes that add new\ncriteria (presently, core review activity). This commit only moves\nthe existing logic and dedents it, without renaming variables or\ndoing additional reformatting, in order to make it easier to review.\n\nChange-Id: I3debff0183a9fa8a2c8866caa530cfcfcb93d281\nSigned-off-by: Jeremy Stanley \u003cfungi@yuggoth.org\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/election/commit/d116401c397f79fff682236740cb50d44a131222"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/election/commit/d116401c397f79fff682236740cb50d44a131222"}]},"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":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"}}]}],"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":""}}}]}
