)]}'
{"id":"openstack%2Frequirements~961680","triplet_id":"openstack%2Frequirements~master~I82f8f1ec3f350c8ac7d1578292001fe61d06249d","project":"openstack/requirements","branch":"master","topic":"pyproject","attention_set":{},"removed_from_attention_set":{"5890":{"account":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"last_update":"2025-10-27 17:32:00.000000000","reason":"Change was submitted"},"12898":{"account":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"last_update":"2025-10-23 09:27:38.000000000","reason":"\u003cGERRIT_ACCOUNT_12898\u003e replied on the change","reason_account":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"}},"15334":{"account":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"last_update":"2025-10-27 17:32:00.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"I82f8f1ec3f350c8ac7d1578292001fe61d06249d","subject":"Add ruff","status":"MERGED","created":"2025-09-18 15:00:07.000000000","updated":"2025-10-27 17:32:00.000000000","submitted":"2025-10-27 17:32:00.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":"961680-pyproject","meta_rev_id":"64dd5b3114f629e168f27107b7b3157aa055a5ef","_number":961680,"virtual_id_number":961680,"owner":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},{"value":0,"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},{"value":0,"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2025-10-27 17:32:00.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":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"all":[{"value":2,"date":"2025-10-27 15:07:18.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},{"value":2,"date":"2025-10-23 09:27:38.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},{"value":0,"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},{"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":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"all":[{"value":1,"date":"2025-10-27 15:07:18.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},{"value":0,"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},{"value":0,"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},{"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":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2025-09-18 16:58:24.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-17 03:33: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":"2025-10-21 03:39:07.000000000","updated_by":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"reviewer":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"state":"REVIEWER"},{"updated":"2025-10-27 15:07:18.000000000","updated_by":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"reviewer":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"state":"REVIEWER"}],"messages":[{"id":"70e102f11d27a16d945ca7703dbb9e5bd8d60c4c","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2025-09-18 15:00:07.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"23571d7d676bd683ff69790e74ae54f549ce2a27","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-09-18 16:58:24.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/13c7d58fb7f4444da73a452fc560ee0f\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/7de42d0972fb4db88e65b1f9709a1134 : SUCCESS in 1m 57s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/be617486c8d548d0bdd0c99ed725d106 : SUCCESS in 5m 00s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/4c262dd2514f4755a741a38429da4109 : SUCCESS in 4m 34s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/43710787b310497aa487ec6ecbc9afb3 : SUCCESS in 2m 35s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/8eb3de81ed9449b89759d0bbc2cdfc9c : SUCCESS in 4m 04s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/a6d47fb1bc0d481d91f8cdb6e9667ae7 : SUCCESS in 6m 12s (non-voting)\n- openstack-tox-validate https://zuul.opendev.org/t/openstack/build/603572895c90411b8b9b9d886fcdcde2 : SUCCESS in 3m 45s\n- requirements-tox-babel https://zuul.opendev.org/t/openstack/build/a0c87a392c3f459cab9434030bac3b28 : SUCCESS in 2m 13s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/97e57aea51b24b1d898a88fbc4e6d75f : SUCCESS in 54m 25s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/811101beed28465d8ca6f423e3397450 : SUCCESS in 1h 42m 45s","accounts_in_message":[],"_revision_number":1},{"id":"47b009cc8b8a6fb31e6f9fb2014009b21f399b22","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2025-10-14 09:38:47.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":2},{"id":"75329fd83e1f6870aac669bcb32fcc93fd2f53ef","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-10-14 11:32:40.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/9350340778624ed69dbac3aa2c62403d\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/dafc88736cc841858603a9242d864bc8 : SUCCESS in 2m 25s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/8b662683b8a34923a47fda52a3f22e78 : SUCCESS in 3m 44s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/9388eadd268d4fd69f02587fd847a8ec : SUCCESS in 3m 45s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/1d02bf9d21604449a2aae635d1c94c16 : SUCCESS in 3m 30s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/438c14b629f242959bc1f3488460a23b : SUCCESS in 3m 45s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/9452e59ad7e84a9792105734dd663512 : SUCCESS in 5m 58s (non-voting)\n- openstack-tox-validate https://zuul.opendev.org/t/openstack/build/279688353678486792ecc5abd3586d24 : SUCCESS in 2m 14s\n- requirements-tox-babel https://zuul.opendev.org/t/openstack/build/93d5172713dd495da2d149a30e74e89e : SUCCESS in 3m 11s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/ad151ec7616c443b95e915b67ab62ea9 : SUCCESS in 1h 01m 44s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/fb526917b4ec48af95b49628210359e1 : SUCCESS in 1h 47m 24s","accounts_in_message":[],"_revision_number":2},{"id":"da7766ff3c6237dbd03d822ab6a02d02ab8ccfbe","author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"date":"2025-10-17 03:33:07.000000000","message":"Patch Set 2: Code-Review+1","accounts_in_message":[],"_revision_number":2},{"id":"806ff85625e2d8b9f6149eabe3f3a47e59d81301","author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"date":"2025-10-21 03:39:07.000000000","message":"Patch Set 2: Code-Review+2\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"9896b5dd75fd0ab3b0c82d6ea6563f031b43b142","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2025-10-22 12:49:29.000000000","message":"Uploaded patch set 3.\n\nOutdated Votes:\n* Code-Review+1, Code-Review+2 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1\n","accounts_in_message":[],"_revision_number":3},{"id":"ca9d8f788bf59e68967fe631f230522655300164","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-10-22 13:59:24.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/6e9d0fe7a9eb4de8a4929dbf402b0d1a\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/7622b914d0034901b762f902a2fb6d4d : SUCCESS in 2m 29s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/6ba1a1f4876542a0be5d6443f78a6731 : SUCCESS in 3m 26s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/79668420537e43d8815660186807cdb6 : SUCCESS in 2m 34s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/d73da45983094628abc53dba43299715 : SUCCESS in 3m 54s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/bb117bfa231649bea5e0c2642fa1893a : SUCCESS in 5m 14s\n- openstack-tox-validate https://zuul.opendev.org/t/openstack/build/d15e6cd8b1f14dd0beed209d8b1aacb1 : SUCCESS in 3m 36s\n- requirements-tox-babel https://zuul.opendev.org/t/openstack/build/8c508a33e7f14bb5b2832ef5f5433cd0 : SUCCESS in 2m 12s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/49756f668cb147ab9eb5504dc4be93ba : SUCCESS in 34m 13s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/993809e8ddc54aab8acdb21f1506c8b3 : SUCCESS in 1h 08m 28s","accounts_in_message":[],"_revision_number":3},{"id":"35d8a8fc3200c7cb90a7d5b46a6bbfcdff227baf","author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"date":"2025-10-22 22:26:09.000000000","message":"Patch Set 3: Code-Review+2","accounts_in_message":[],"_revision_number":3},{"id":"6757e55925c5606ef739786b4a3a639d523eb142","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2025-10-23 09:26:08.000000000","message":"Uploaded patch set 4.\n\nOutdated Votes:\n* Code-Review+2 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1\n","accounts_in_message":[],"_revision_number":4},{"id":"e38038825775da3334ec2202728e7fe7e49be5ef","author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"date":"2025-10-23 09:27:38.000000000","message":"Patch Set 4: Code-Review+2","accounts_in_message":[],"_revision_number":4},{"id":"dfa599a2e01e50904bf58e77cf26d4b08c8b207a","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-10-23 11:28:56.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/8a9d15be02424052ac00f3694d784f67\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/bd71e8006ceb498c91d782728610832c : SUCCESS in 2m 21s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/0ac32ffae8824c3bbc419cd169ebf4a5 : SUCCESS in 3m 44s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/43ee85b01bb742f7b0621974243db90e : SUCCESS in 3m 22s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/a48e641a0bad48478135ebd6089e181b : SUCCESS in 2m 16s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/8ebf487c03f847c68620b1318e7022f4 : SUCCESS in 6m 20s\n- openstack-tox-validate https://zuul.opendev.org/t/openstack/build/d35a4871014c4a3eb5e921dbac36f572 : SUCCESS in 3m 37s\n- requirements-tox-babel https://zuul.opendev.org/t/openstack/build/0f201d3375af404f8ea229c1d4691aec : SUCCESS in 2m 22s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/ea3a7e94aae9470f83f1a8e48c81472b : SUCCESS in 1h 05m 15s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/90999198a6f742219a4a85fec355f895 : SUCCESS in 1h 56m 09s","accounts_in_message":[],"_revision_number":4},{"id":"6aa39738ad555e65c9d6dd16cba1541d80c636a5","author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"date":"2025-10-27 15:07:18.000000000","message":"Patch Set 4: Code-Review+2 Workflow+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":4},{"id":"bf1e83079befe03f001158e1d824322084f81ab1","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-10-27 15:14:17.000000000","message":"Patch Set 4: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":4},{"id":"c7f5b1f667c8d83c11b3bee7f33cdc3d23c180f3","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-10-27 17:32:00.000000000","message":"Patch Set 4: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/f19debad635b413fa1d79f68c30407bd\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/8251775727504e1580710d470fcb8a7b : SUCCESS in 1m 34s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/f959cef778ea433b8da7d13e2543bab6 : SUCCESS in 3m 45s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/27f54ab608ce4fe48a466dfa83db721b : SUCCESS in 3m 07s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/f428846245c84d5c9e27171c6cccdfd6 : SUCCESS in 3m 07s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/459f54116408424eb12fe501e65e6755 : SUCCESS in 5m 56s\n- openstack-tox-validate https://zuul.opendev.org/t/openstack/build/2a43e6bb8da04cf69a2bb9686eb061af : SUCCESS in 2m 23s\n- requirements-tox-babel https://zuul.opendev.org/t/openstack/build/6b7d4bc1b456421da9b5c871945a5106 : SUCCESS in 3m 05s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/99b0aaecf771433d9fe999f5f2863cb7 : SUCCESS in 1h 02m 51s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/c8ddff68449f436a981b764e11c8c3a4 : SUCCESS in 1h 51m 14s","accounts_in_message":[],"_revision_number":4},{"id":"64dd5b3114f629e168f27107b7b3157aa055a5ef","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-10-27 17:32:00.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":4}],"current_revision_number":4,"current_revision":"3e7039df7dc1b0056c2940fa7a890db24e6b0b92","revisions":{"954f7316f38d75d0ebb7df2be55b0d440a4f94a5":{"kind":"REWORK","_number":1,"created":"2025-09-18 15:00:07.000000000","uploader":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"ref":"refs/changes/80/961680/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/requirements","ref":"refs/changes/80/961680/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/requirements refs/changes/80/961680/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/requirements refs/changes/80/961680/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/requirements refs/changes/80/961680/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/requirements refs/changes/80/961680/1"}}},"commit":{"parents":[{"commit":"c69c8b1b105f1c4841c7a94eb3dd15e395b1e680","subject":"Migrate setup configuration to pyproject.toml","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/c69c8b1b105f1c4841c7a94eb3dd15e395b1e680"}]}],"author":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2025-09-18 11:33:13.000000000","tz":60},"committer":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2025-09-18 13:40:48.000000000","tz":60},"subject":"Add ruff","message":"Add ruff\n\nChange-Id: I82f8f1ec3f350c8ac7d1578292001fe61d06249d\nSigned-off-by: Stephen Finucane \u003cstephenfin@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/954f7316f38d75d0ebb7df2be55b0d440a4f94a5"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/954f7316f38d75d0ebb7df2be55b0d440a4f94a5"}]},"branch":"refs/heads/master"},"dc19f1b026bb4d27c1550a9b68052141924335ef":{"kind":"REWORK","_number":2,"created":"2025-10-14 09:38:47.000000000","uploader":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"ref":"refs/changes/80/961680/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/requirements","ref":"refs/changes/80/961680/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/requirements refs/changes/80/961680/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/requirements refs/changes/80/961680/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/requirements refs/changes/80/961680/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/requirements refs/changes/80/961680/2"}}},"commit":{"parents":[{"commit":"e54fa8d0f25431cd56ce1825868d80a09c7d03d2","subject":"Migrate setup configuration to pyproject.toml","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/e54fa8d0f25431cd56ce1825868d80a09c7d03d2"}]}],"author":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2025-09-18 11:33:13.000000000","tz":60},"committer":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2025-10-14 09:38:39.000000000","tz":60},"subject":"Add ruff","message":"Add ruff\n\nChange-Id: I82f8f1ec3f350c8ac7d1578292001fe61d06249d\nSigned-off-by: Stephen Finucane \u003cstephenfin@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/dc19f1b026bb4d27c1550a9b68052141924335ef"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/dc19f1b026bb4d27c1550a9b68052141924335ef"}]},"branch":"refs/heads/master"},"aff4710543708252f3ad0c204efb82feb68a7af5":{"kind":"REWORK","_number":3,"created":"2025-10-22 12:49:29.000000000","uploader":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"ref":"refs/changes/80/961680/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/requirements","ref":"refs/changes/80/961680/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/requirements refs/changes/80/961680/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/requirements refs/changes/80/961680/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/requirements refs/changes/80/961680/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/requirements refs/changes/80/961680/3"}}},"commit":{"parents":[{"commit":"5f2493274fe52436e226ec26cfba69e636c54359","subject":"Migrate setup configuration to pyproject.toml","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/5f2493274fe52436e226ec26cfba69e636c54359"}]}],"author":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2025-09-18 11:33:13.000000000","tz":60},"committer":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2025-10-22 12:45:49.000000000","tz":60},"subject":"Add ruff","message":"Add ruff\n\nChange-Id: I82f8f1ec3f350c8ac7d1578292001fe61d06249d\nSigned-off-by: Stephen Finucane \u003cstephenfin@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/aff4710543708252f3ad0c204efb82feb68a7af5"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/aff4710543708252f3ad0c204efb82feb68a7af5"}]},"branch":"refs/heads/master"},"3e7039df7dc1b0056c2940fa7a890db24e6b0b92":{"kind":"REWORK","_number":4,"created":"2025-10-23 09:26:08.000000000","uploader":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"ref":"refs/changes/80/961680/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/requirements","ref":"refs/changes/80/961680/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/requirements refs/changes/80/961680/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/requirements refs/changes/80/961680/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/requirements refs/changes/80/961680/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/requirements refs/changes/80/961680/4"}}},"commit":{"parents":[{"commit":"73ce4538d34498e56cd7e470493129a7add44bd6","subject":"Migrate setup configuration to pyproject.toml","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/73ce4538d34498e56cd7e470493129a7add44bd6"}]}],"author":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2025-09-18 11:33:13.000000000","tz":60},"committer":{"name":"Stephen Finucane","email":"stephenfin@redhat.com","date":"2025-10-23 09:26:01.000000000","tz":60},"subject":"Add ruff","message":"Add ruff\n\nChange-Id: I82f8f1ec3f350c8ac7d1578292001fe61d06249d\nSigned-off-by: Stephen Finucane \u003cstephenfin@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/3e7039df7dc1b0056c2940fa7a890db24e6b0b92"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/3e7039df7dc1b0056c2940fa7a890db24e6b0b92"}]},"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":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"}}]}],"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":{}}}]}
