)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"929a0e032ae88762e562a9d25d88833f9efe0802","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"406375b2_6744b0ab","updated":"2026-02-24 17:25:54.000000000","message":"ill leave this open for review till the end of the week and then proceed with the back-port to unblock the stable branches unless there is review feedback to adress","commit_id":"527f2184fcedfcd1c45c3b5e5eedad01043b5b4e"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"96e9ad9aac85c7351f5a8b7bb3dc4f829e658c7e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"1ba3f1c3_290d8afe","updated":"2026-02-24 18:45:38.000000000","message":"lgtm","commit_id":"527f2184fcedfcd1c45c3b5e5eedad01043b5b4e"}],"tools/check-cherry-picks.sh":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"fbd4e595e05a19a384b45d0adede4c24b93a89ee","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/bin/sh"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# A tool to check the cherry-pick hashes from the current git commit message"},{"line_number":4,"context_line":"# to verify that they\u0027re all on either master, stable/ or unmaintained/ branches"}],"source_content_type":"text/x-sh","patch_set":2,"id":"076f886c_25e2e200","line":1,"in_reply_to":"260f4959_ba97eb61","updated":"2026-02-24 16:57:30.000000000","message":"valid as a followup but out of scope","commit_id":"5f7734d140d84fbe4d0f3e26493d7a2807ddb55b"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"fbd4e595e05a19a384b45d0adede4c24b93a89ee","unresolved":false,"context_lines":[{"line_number":9,"context_line":"# Check if the patch is a merge patch by counting the number of parents."},{"line_number":10,"context_line":"# If the patch has 2 parents, then the 2nd parent is the patch we want"},{"line_number":11,"context_line":"# to validate."},{"line_number":12,"context_line":"parent_number\u003d$(git show --format\u003d\u0027%P\u0027 --quiet | awk \u0027{print NF}\u0027)"},{"line_number":13,"context_line":"if [ $parent_number -eq 2 ]; then"},{"line_number":14,"context_line":"    commit_hash\u003d$(git show --format\u003d\u0027%P\u0027 --quiet | awk \u0027{print $NF}\u0027)"},{"line_number":15,"context_line":"fi"}],"source_content_type":"text/x-sh","patch_set":2,"id":"f6cd08d7_0e81aecd","line":12,"in_reply_to":"b5d4e588_2b73efa9","updated":"2026-02-24 16:57:30.000000000","message":"this script is fast enough as it is an i would prefer not to make it more complx\nfor the sake fo speed in this instnace","commit_id":"5f7734d140d84fbe4d0f3e26493d7a2807ddb55b"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"fbd4e595e05a19a384b45d0adede4c24b93a89ee","unresolved":true,"context_lines":[{"line_number":14,"context_line":"    commit_hash\u003d$(git show --format\u003d\u0027%P\u0027 --quiet | awk \u0027{print $NF}\u0027)"},{"line_number":15,"context_line":"fi"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"if git show --format\u003d\u0027%aE\u0027 --quiet $commit_hash | grep -qxi \u0027infra-root@openstack.org\u0027; then"},{"line_number":18,"context_line":"    echo \u0027Bot generated change; ignoring\u0027"},{"line_number":19,"context_line":"    exit 0"},{"line_number":20,"context_line":"fi"}],"source_content_type":"text/x-sh","patch_set":2,"id":"6f9cf469_686483d3","line":17,"in_reply_to":"4c5be4dd_bd447a90","updated":"2026-02-24 16:57:30.000000000","message":"taht fair i can do this\ni would prefer \n\n`git show --format\u003d\u0027%aE\u0027 --quiet \"${commit_hash}\"`\n\nif we are makign this change","commit_id":"5f7734d140d84fbe4d0f3e26493d7a2807ddb55b"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"929a0e032ae88762e562a9d25d88833f9efe0802","unresolved":false,"context_lines":[{"line_number":14,"context_line":"    commit_hash\u003d$(git show --format\u003d\u0027%P\u0027 --quiet | awk \u0027{print $NF}\u0027)"},{"line_number":15,"context_line":"fi"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"if git show --format\u003d\u0027%aE\u0027 --quiet $commit_hash | grep -qxi \u0027infra-root@openstack.org\u0027; then"},{"line_number":18,"context_line":"    echo \u0027Bot generated change; ignoring\u0027"},{"line_number":19,"context_line":"    exit 0"},{"line_number":20,"context_line":"fi"}],"source_content_type":"text/x-sh","patch_set":2,"id":"5a76c918_c454526d","line":17,"in_reply_to":"6f9cf469_686483d3","updated":"2026-02-24 17:25:54.000000000","message":"Done","commit_id":"5f7734d140d84fbe4d0f3e26493d7a2807ddb55b"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"929a0e032ae88762e562a9d25d88833f9efe0802","unresolved":false,"context_lines":[{"line_number":19,"context_line":"    exit 0"},{"line_number":20,"context_line":"fi"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"hashes\u003d$(git show --format\u003d\u0027%b\u0027 --quiet $commit_hash | sed -nr \u0027s/^.cherry picked from commit (.*).$/\\1/p\u0027)"},{"line_number":23,"context_line":"checked\u003d0"},{"line_number":24,"context_line":"branches+\u003d\"\""},{"line_number":25,"context_line":"for hash in $hashes; do"}],"source_content_type":"text/x-sh","patch_set":2,"id":"b1e85be5_21ae693a","line":22,"in_reply_to":"48352164_ca31f18d","updated":"2026-02-24 17:25:54.000000000","message":"Done","commit_id":"5f7734d140d84fbe4d0f3e26493d7a2807ddb55b"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"fbd4e595e05a19a384b45d0adede4c24b93a89ee","unresolved":true,"context_lines":[{"line_number":19,"context_line":"    exit 0"},{"line_number":20,"context_line":"fi"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"hashes\u003d$(git show --format\u003d\u0027%b\u0027 --quiet $commit_hash | sed -nr \u0027s/^.cherry picked from commit (.*).$/\\1/p\u0027)"},{"line_number":23,"context_line":"checked\u003d0"},{"line_number":24,"context_line":"branches+\u003d\"\""},{"line_number":25,"context_line":"for hash in $hashes; do"}],"source_content_type":"text/x-sh","patch_set":2,"id":"48352164_ca31f18d","line":22,"in_reply_to":"99f72aa7_9fc1db6e","updated":"2026-02-24 16:57:30.000000000","message":"ack same change here","commit_id":"5f7734d140d84fbe4d0f3e26493d7a2807ddb55b"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f7dcaa585274704c1fd714b602c38aced4ad1f60","unresolved":true,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"hashes\u003d$(git show --format\u003d\u0027%b\u0027 --quiet $commit_hash | sed -nr \u0027s/^.cherry picked from commit (.*).$/\\1/p\u0027)"},{"line_number":23,"context_line":"checked\u003d0"},{"line_number":24,"context_line":"branches+\u003d\"\""},{"line_number":25,"context_line":"for hash in $hashes; do"},{"line_number":26,"context_line":"    branch\u003d$(git branch -a --contains \"$hash\" 2\u003e/dev/null| grep -oE \u0027(master|stable/[a-z0-9.]+|unmaintained/[a-z0-9.]+)\u0027)"},{"line_number":27,"context_line":"    if [ $? -ne 0 ]; then"}],"source_content_type":"text/x-sh","patch_set":2,"id":"4ea63f87_ead18e2d","line":24,"in_reply_to":"3177c738_7b76e700","updated":"2026-02-24 17:02:52.000000000","message":"i missread this we should use /bin/bash and not assume /bin/sh is bash","commit_id":"5f7734d140d84fbe4d0f3e26493d7a2807ddb55b"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"929a0e032ae88762e562a9d25d88833f9efe0802","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"hashes\u003d$(git show --format\u003d\u0027%b\u0027 --quiet $commit_hash | sed -nr \u0027s/^.cherry picked from commit (.*).$/\\1/p\u0027)"},{"line_number":23,"context_line":"checked\u003d0"},{"line_number":24,"context_line":"branches+\u003d\"\""},{"line_number":25,"context_line":"for hash in $hashes; do"},{"line_number":26,"context_line":"    branch\u003d$(git branch -a --contains \"$hash\" 2\u003e/dev/null| grep -oE \u0027(master|stable/[a-z0-9.]+|unmaintained/[a-z0-9.]+)\u0027)"},{"line_number":27,"context_line":"    if [ $? -ne 0 ]; then"}],"source_content_type":"text/x-sh","patch_set":2,"id":"7151883c_ff6027bb","line":24,"in_reply_to":"4ea63f87_ead18e2d","updated":"2026-02-24 17:25:54.000000000","message":"Done","commit_id":"5f7734d140d84fbe4d0f3e26493d7a2807ddb55b"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"fbd4e595e05a19a384b45d0adede4c24b93a89ee","unresolved":true,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"hashes\u003d$(git show --format\u003d\u0027%b\u0027 --quiet $commit_hash | sed -nr \u0027s/^.cherry picked from commit (.*).$/\\1/p\u0027)"},{"line_number":23,"context_line":"checked\u003d0"},{"line_number":24,"context_line":"branches+\u003d\"\""},{"line_number":25,"context_line":"for hash in $hashes; do"},{"line_number":26,"context_line":"    branch\u003d$(git branch -a --contains \"$hash\" 2\u003e/dev/null| grep -oE \u0027(master|stable/[a-z0-9.]+|unmaintained/[a-z0-9.]+)\u0027)"},{"line_number":27,"context_line":"    if [ $? -ne 0 ]; then"}],"source_content_type":"text/x-sh","patch_set":2,"id":"3177c738_7b76e700","line":24,"in_reply_to":"54d52128_42c9a6db","updated":"2026-02-24 16:57:30.000000000","message":"we do not enfoce python line length for the tools directory","commit_id":"5f7734d140d84fbe4d0f3e26493d7a2807ddb55b"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"fbd4e595e05a19a384b45d0adede4c24b93a89ee","unresolved":false,"context_lines":[{"line_number":24,"context_line":"branches+\u003d\"\""},{"line_number":25,"context_line":"for hash in $hashes; do"},{"line_number":26,"context_line":"    branch\u003d$(git branch -a --contains \"$hash\" 2\u003e/dev/null| grep -oE \u0027(master|stable/[a-z0-9.]+|unmaintained/[a-z0-9.]+)\u0027)"},{"line_number":27,"context_line":"    if [ $? -ne 0 ]; then"},{"line_number":28,"context_line":"        branch\u003d$(git tag --contains \"$hash\" 2\u003e/dev/null| grep -oE \u0027([0-9.]+-eol)\u0027)"},{"line_number":29,"context_line":"        if [ $? -ne 0 ]; then"},{"line_number":30,"context_line":"            echo \"Cherry pick hash $hash not on any master, stable, unmaintained or EOL\u0027d branches\""}],"source_content_type":"text/x-sh","patch_set":2,"id":"42c54baa_3ee6661d","line":27,"in_reply_to":"b5a91223_ad1b9950","updated":"2026-02-24 16:57:30.000000000","message":"ok we could use -z instead of relying on greps exit code but this code has been workign on nova for years so im happy this is stable","commit_id":"5f7734d140d84fbe4d0f3e26493d7a2807ddb55b"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"fbd4e595e05a19a384b45d0adede4c24b93a89ee","unresolved":false,"context_lines":[{"line_number":36,"context_line":"done"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"if [ $checked -eq 0 ]; then"},{"line_number":39,"context_line":"    if ! grep -qE \u0027^defaultbranch\u003d(stable|unmaintained)/\u0027 .gitreview; then"},{"line_number":40,"context_line":"        echo \"Checked $checked cherry-pick hashes: OK\""},{"line_number":41,"context_line":"        exit 0"},{"line_number":42,"context_line":"    else"}],"source_content_type":"text/x-sh","patch_set":2,"id":"ae6d937f_ca86becb","line":39,"in_reply_to":"1d1a30cb_a60f3cc0","updated":"2026-02-24 16:57:30.000000000","message":".gitreview will alwasy be present, no change needed this is is not a generic reusbale sciprt","commit_id":"5f7734d140d84fbe4d0f3e26493d7a2807ddb55b"}]}
