)]}'
{"id":"openstack%2Fswift~990805","triplet_id":"openstack%2Fswift~stable%2F2025.2~I00e27a402466cb24c94b22e5bde6d707a05c3609","project":"openstack/swift","branch":"stable/2025.2","hashtags":[],"change_id":"I00e27a402466cb24c94b22e5bde6d707a05c3609","subject":"Harden pickle unmarshalling","status":"MERGED","created":"2026-05-30 18:45:56.000000000","updated":"2026-06-01 18:18:38.000000000","submitted":"2026-06-01 18:16:28.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":1,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"990805","meta_rev_id":"1c07cf33a5115131e0cc5ff105eda2c686a47441","_number":990805,"virtual_id_number":990805,"owner":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:gate","value":2,"date":"2026-06-01 18:16:28.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}],"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":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":2,"date":"2026-06-01 16:39:18.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}],"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":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":1,"date":"2026-06-01 16:39:18.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-05-30 20:21:05.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"}],"messages":[{"id":"784b9c652c8ba465b6ea15de87151cb655d7d23b","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2026-05-30 18:45:56.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"8067dbcd396f324d2c031398dd2a640af700fe07","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2026-05-30 19:09:40.000000000","message":"Uploaded patch set 2: Patch Set 1 was rebased.","accounts_in_message":[],"_revision_number":2},{"id":"17d5525fd1fd75b2c85e744add89d4da640749eb","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-30 20:21:05.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/ac491d72a3114d62a7885a8b0605e13f\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/7eb39956913f4a0b8469dd8928e178d6 : SUCCESS in 10m 02s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/b337c1fe2f3c4eb3a1f9bb3262c4143f : SUCCESS in 7m 48s\n- grenade https://zuul.opendev.org/t/openstack/build/8d80daa596c34997a9d292301043f647 : SUCCESS in 1h 04m 43s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/f48f1144449949f2912cdc26c4b1aa4b : SUCCESS in 58m 13s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/fb7a3c4b4f8b4e2f9bc9faf6a21f5cb2 : SUCCESS in 59m 27s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/276a74a2bb1e4ca8a1bd97a856f70983 : SUCCESS in 19m 21s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/43db38d841e847488ddd36b2d1e61cd2 : SUCCESS in 21m 29s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/55bd9632a7f044409920aee9358accb5 : SUCCESS in 20m 02s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/f2c33e588c0c45b0aebe83d687501794 : SUCCESS in 6m 14s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/3cf6f2ca1e104c25ba258f1809c7d27e : SUCCESS in 23m 53s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/c1d44d70a8004734af9f35c7db1c9908 : SUCCESS in 19m 43s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/9f454ddb1f89436fa64cbfb83219e8ac : SUCCESS in 28m 31s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/09063dc461ea4972a375299b107a2f7a : SUCCESS in 29m 53s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/1d6528dfbb204250817804c8825c90ed : SUCCESS in 14m 15s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/938ab3146037437e8f572dc75ed11b2e : SUCCESS in 14m 20s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/09e9d5ac2578451e9fc883e58a5a5182 : SUCCESS in 15m 07s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/43675764edb04e0eb646f398dbeabb3a : SUCCESS in 6m 15s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/7ffe1ab1fa9e4d6ab62222647f5dc589 : SUCCESS in 17m 13s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/0cddfeffc7c843b185360b8c7845580c : SUCCESS in 8m 00s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/16a5d00fe3ec496eaacad6e569f0e60b : SUCCESS in 47m 38s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/3f1707c008c34ebd9c0d426306eaf8be : SUCCESS in 50m 13s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/12f018a2aed243c5b0ae0d6b387e2f76 : SUCCESS in 51m 36s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/67c1c935850044739a46c7a7d2c695c7 : SUCCESS in 26m 40s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/0cbf0de104c94890adcadef520e096db : SUCCESS in 4m 02s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/8aca41cb74cf429c9f4d61c76d86c08c : SUCCESS in 19m 19s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/9d59b790a1a146609d31652cd4baa33e : SUCCESS in 29m 45s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/599c04d0418c4c2a9f851866ad21d1f5 : SUCCESS in 37m 20s","accounts_in_message":[],"_revision_number":2},{"id":"13c26cbc29799a1a5f2a1184a72c822e147f8959","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-30 20:34:23.000000000","message":"Patch Set 2:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/dd5411ca6db641328b5665e721affa62\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/b3c1e636298d40d1b6599eee7b77131e : SUCCESS in 54m 06s","accounts_in_message":[],"_revision_number":2},{"id":"104557b9e6cfaaea2b89fc8ae7554c6eef31a281","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2026-06-01 16:39:18.000000000","message":"Patch Set 2: Code-Review+2 Workflow+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"5f78a2adc7c2140757b81f5f0b8faf98a1ad9942","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-01 16:40:18.000000000","message":"Patch Set 2: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":2},{"id":"780e52c3a1c4f1b1894952fc683ff9980b5ad1c4","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-01 18:16:28.000000000","message":"Patch Set 2: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/7b3f82ff64314e90a5381b66e5cbbaae\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/efe0b441ee234ba7b83354ee42923e16 : SUCCESS in 11m 58s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/90a76430eca042d683fb7db865fc3d70 : SUCCESS in 6m 09s\n- grenade https://zuul.opendev.org/t/openstack/build/938a04d8167d44159b0d0a2dfab72e1c : SUCCESS in 1h 04m 01s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/477a899d7f7b4be1b53bec0d87088b60 : SUCCESS in 35m 35s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/8c297006ffb542eb92ada817598f8c40 : SUCCESS in 59m 35s\n- swift-upload-image https://zuul.opendev.org/t/openstack/build/cb68494fe6ca471eaf1be02eb216ea3c : RETRY_LIMIT in 32s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/9f4db0eea1024aa8a63c96a105175b99 : SUCCESS in 11m 14s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/8eefe79978084c4bb2a5dfb773b1861f : SUCCESS in 21m 12s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/430b7fdd07004a9cb90731888774b48f : SUCCESS in 13m 53s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/180ef268dc994b2999e7d8b08956d9c9 : SUCCESS in 31m 51s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/c0f29823851343278cfc090b7c05422a : SUCCESS in 14m 58s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/dfd9b7ed3516481b9f5da4d487f5a18e : SUCCESS in 15m 22s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/a17a2a08a1a84693a68f3667e659a9aa : SUCCESS in 14m 46s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/6f39988e14b84b1e9209858c934e6739 : SUCCESS in 8m 51s\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/dd15914856a44f959bd5f493b30ed22d : SUCCESS in 8m 59s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/9016eb484233439baa1ac70cf55ef7d1 : SUCCESS in 59m 14s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/6f77c5519e984fbbae84a2e7bef96803 : SUCCESS in 53m 47s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/5f28cc8df7f345a1a6a5bf8d00bd411c : SUCCESS in 50m 47s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/b53c3d1f23fd468bac7b91ed302549e6 : SUCCESS in 29m 35s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/abd95c200b134c229c3f3559502cbef7 : SUCCESS in 3m 00s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/746bb58a853b4ba3a70a7b98d61d3e73 : SUCCESS in 26m 33s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/1601416bf70a43ec9216e3925f46ab84 : SUCCESS in 56m 55s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/2e78db3bd10348a7a06816a874e6ad54 : SUCCESS in 1h 08m 27s","accounts_in_message":[],"_revision_number":2},{"id":"037e6fa909d88e30046da60d0801c4023f9810b7","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-01 18:16:28.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":2},{"id":"1c07cf33a5115131e0cc5ff105eda2c686a47441","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-01 18:18:38.000000000","message":"Patch Set 2:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/1ebabae49f7a47e2857850cb9a748fe1\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/2253948ec6f1405a861dc3bbe54b77d8 : SUCCESS in 1m 05s\n- swift-promote-image https://zuul.opendev.org/t/openstack/build/16b688c8248c4d81b7d73770fdfaa5a3 : RETRY_LIMIT in 14s (non-voting)","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"78351f038958b37694385171179224c7c2306b2e","revisions":{"293fe7428e07d468025db68f657e8e75ba77842a":{"kind":"REWORK","_number":1,"created":"2026-05-30 18:45:56.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/05/990805/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/05/990805/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/05/990805/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/05/990805/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/05/990805/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/05/990805/1"}}},"commit":{"parents":[{"commit":"8f1687e43eb7d3bbbfe321e428230c7bf70062cb","subject":"test_sharder.py: pass timestamp strings to put_object","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/8f1687e43eb7d3bbbfe321e428230c7bf70062cb"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2026-05-15 22:24:41.000000000","tz":-420},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2026-05-30 18:44:52.000000000","tz":-420},"subject":"Harden pickle unmarshalling","message":"Harden pickle unmarshalling\n\nPreviously, if an attacker gained control of a node, there were many\nways that they could drop malicious pickles to gain further access.\nMost notably, the REPLICATE verb in the object server responds with\npickled hashes; an attacker could use that to make lateral movement\nwithin the object layer.\n\nNow, harden our pickle unmarshalling: only allow a subset of imports\nwhich should all be safe. Apply this to most places where we unpickle,\nnot just hashes. Ring builder files are the lone exception; both their\nsecurity boundaries and required-supported data types are radically\ndifferent from other pickle usage.\n\nPartial-Bug: #2152384\nCo-Authored-By: Christian Schwede \u003ccschwede@mailbox.org\u003e\nCo-Authored-By: Alistair Coles \u003calistairncoles@gmail.com\u003e\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nAssisted-by: Claude:claude-4.7-opus\nChange-Id: I00e27a402466cb24c94b22e5bde6d707a05c3609\nSigned-off-by: Tim Burke \u003ctim.burke@gmail.com\u003e\n(cherry picked from commit b7fdd9743bf6697114526f972a3cd1618bb0f542)\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/293fe7428e07d468025db68f657e8e75ba77842a"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/293fe7428e07d468025db68f657e8e75ba77842a"}]},"branch":"refs/heads/stable/2025.2"},"78351f038958b37694385171179224c7c2306b2e":{"kind":"TRIVIAL_REBASE","_number":2,"created":"2026-05-30 19:09:40.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/05/990805/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/05/990805/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/05/990805/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/05/990805/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/05/990805/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/05/990805/2"}}},"commit":{"parents":[{"commit":"fcb3a3da852e81f353887da8a15783c3faec0b3b","subject":"test_sharder.py: pass timestamp strings to put_object","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/fcb3a3da852e81f353887da8a15783c3faec0b3b"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2026-05-15 22:24:41.000000000","tz":-420},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2026-05-30 19:09:13.000000000","tz":-420},"subject":"Harden pickle unmarshalling","message":"Harden pickle unmarshalling\n\nPreviously, if an attacker gained control of a node, there were many\nways that they could drop malicious pickles to gain further access.\nMost notably, the REPLICATE verb in the object server responds with\npickled hashes; an attacker could use that to make lateral movement\nwithin the object layer.\n\nNow, harden our pickle unmarshalling: only allow a subset of imports\nwhich should all be safe. Apply this to most places where we unpickle,\nnot just hashes. Ring builder files are the lone exception; both their\nsecurity boundaries and required-supported data types are radically\ndifferent from other pickle usage.\n\nPartial-Bug: #2152384\nCo-Authored-By: Christian Schwede \u003ccschwede@mailbox.org\u003e\nCo-Authored-By: Alistair Coles \u003calistairncoles@gmail.com\u003e\nCo-Authored-By: Matthew Oliver \u003cmatt@oliver.net.au\u003e\nAssisted-by: Claude:claude-4.7-opus\nChange-Id: I00e27a402466cb24c94b22e5bde6d707a05c3609\nSigned-off-by: Tim Burke \u003ctim.burke@gmail.com\u003e\n(cherry picked from commit b7fdd9743bf6697114526f972a3cd1618bb0f542)\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/78351f038958b37694385171179224c7c2306b2e"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/78351f038958b37694385171179224c7c2306b2e"}]},"branch":"refs/heads/stable/2025.2"}},"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":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}}]}],"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":""}}}]}
