)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"f0c9b4a59440fb7354346d17f529d9430f022c62","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"0fc3ad15_8da795ce","updated":"2022-06-01 18:39:14.000000000","message":"BTW one way to maybe speed-up testing is to disable all of the other helm-cinder/compute/horizon/keystone jobs in zuul.d/project.yaml until the umbrella one passes as each job requires a new VM to be run, even if in parallel.","commit_id":"857434def5ccd77313bb2c9e537e9117bca470ed"},{"author":{"_account_id":28701,"name":"Dustin Specker","email":"v-dspecker@microsoft.com","username":"dustinspecker"},"change_message_id":"ad47f35c96467b6f91ceb946eae79daf5c8c6642","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":46,"id":"3c636898_3c6f8f42","updated":"2022-06-21 14:55:21.000000000","message":"recheck","commit_id":"ef67d5cf653005c227e6c33956ac626fa7a3a541"},{"author":{"_account_id":28701,"name":"Dustin Specker","email":"v-dspecker@microsoft.com","username":"dustinspecker"},"change_message_id":"96121daffa2d5dc2d511ddd3fd28e351ee0ffdbf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":46,"id":"8fc0746e_72b2ef26","updated":"2022-06-20 21:14:01.000000000","message":"recheck","commit_id":"ef67d5cf653005c227e6c33956ac626fa7a3a541"},{"author":{"_account_id":35024},"change_message_id":"1aa16d2dda96b71c271d1c0aaf47f281e0a27469","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":46,"id":"1370a32d_940f6276","updated":"2022-06-21 00:58:27.000000000","message":"recheck POST_FAILURE","commit_id":"ef67d5cf653005c227e6c33956ac626fa7a3a541"},{"author":{"_account_id":28701,"name":"Dustin Specker","email":"v-dspecker@microsoft.com","username":"dustinspecker"},"change_message_id":"0c1b7181506bd51a671da46e2eece506ea5cfcc2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":51,"id":"b251e8d6_248be54c","updated":"2022-07-11 13:50:23.000000000","message":"This can be abandoned since https://review.opendev.org/c/openstack/openstack-helm/+/848025 accomplishes this via a different approach","commit_id":"6e20b30fe5426e22ffc57662df821e1649f2a0fd"}],"tools/deployment/developer/lcm-isolation-testing/lcm-isolation-test.sh":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"f0c9b4a59440fb7354346d17f529d9430f022c62","unresolved":true,"context_lines":[{"line_number":18,"context_line":"sudo rm -rf /usr/local/bin/yq"},{"line_number":19,"context_line":"echo \"Installing yq\""},{"line_number":20,"context_line":"sudo wget https://github.com/mikefarah/yq/releases/download/v4.24.5/yq_linux_amd64.tar.gz -O - | tar -xz"},{"line_number":21,"context_line":"sudo mv yq_linux_amd64 /usr/local/bin/yq"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"# Function to check list and count of pods restarted"},{"line_number":24,"context_line":"function podsHealthCheck() {"}],"source_content_type":"text/x-sh","patch_set":14,"id":"b3ed6f4c_58843040","line":21,"updated":"2022-06-01 18:39:14.000000000","message":"nit: should do this like openstack-helm-infra does to keep things consistent:\n\nwget https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/yq_linux_amd64.tar.gz -O - | tar xz \u0026\u0026 sudo mv yq_linux_amd64 /usr/local/bin/yq\n\nThen you won\u0027t need the rm either.","commit_id":"b719e464257a8df6bcead64c34a1593e9c675de1"},{"author":{"_account_id":34623,"name":"Sharath Sangireddy","display_name":"Sharath Sangireddy","email":"v-sharatsang@microsoft.com","username":"sharatsang"},"change_message_id":"5511d2ef60610775525cd1596f89b76271621b3b","unresolved":false,"context_lines":[{"line_number":18,"context_line":"sudo rm -rf /usr/local/bin/yq"},{"line_number":19,"context_line":"echo \"Installing yq\""},{"line_number":20,"context_line":"sudo wget https://github.com/mikefarah/yq/releases/download/v4.24.5/yq_linux_amd64.tar.gz -O - | tar -xz"},{"line_number":21,"context_line":"sudo mv yq_linux_amd64 /usr/local/bin/yq"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"# Function to check list and count of pods restarted"},{"line_number":24,"context_line":"function podsHealthCheck() {"}],"source_content_type":"text/x-sh","patch_set":14,"id":"ee07fd05_deb6a69d","line":21,"in_reply_to":"b3ed6f4c_58843040","updated":"2022-06-02 01:31:46.000000000","message":"Done","commit_id":"b719e464257a8df6bcead64c34a1593e9c675de1"},{"author":{"_account_id":28701,"name":"Dustin Specker","email":"v-dspecker@microsoft.com","username":"dustinspecker"},"change_message_id":"28df9bfd09d0983b00d6cc6dc1f2a2ca9813cb20","unresolved":true,"context_lines":[{"line_number":1,"context_line":"#!/bin/bash"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# First helm upgrade of umbrella chart to avoid null values affecting LCM isolation testing"},{"line_number":4,"context_line":"echo helm upgrade --reuse-values -n openstack openstack ./openstack"}],"source_content_type":"text/x-sh","patch_set":46,"id":"f0cb26c8_6bc5145c","line":1,"updated":"2022-06-21 13:35:41.000000000","message":"I\u0027d add\n\nset -ex\n\non the 2nd line. This will print the command before it\u0027s executed. And will also cause the script to exit if a command fails.","commit_id":"ef67d5cf653005c227e6c33956ac626fa7a3a541"},{"author":{"_account_id":34623,"name":"Sharath Sangireddy","display_name":"Sharath Sangireddy","email":"v-sharatsang@microsoft.com","username":"sharatsang"},"change_message_id":"7badd192f00d845cd55fdf5c188adf7a524bbceb","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/bin/bash"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# First helm upgrade of umbrella chart to avoid null values affecting LCM isolation testing"},{"line_number":4,"context_line":"echo helm upgrade --reuse-values -n openstack openstack ./openstack"}],"source_content_type":"text/x-sh","patch_set":46,"id":"de8a0bdc_145400ce","line":1,"in_reply_to":"e02975e5_560499af","updated":"2022-06-23 21:50:27.000000000","message":"Done","commit_id":"ef67d5cf653005c227e6c33956ac626fa7a3a541"},{"author":{"_account_id":35024},"change_message_id":"cfac3c2b03c0602e173cdcd8b60103bf292cb3d5","unresolved":true,"context_lines":[{"line_number":1,"context_line":"#!/bin/bash"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# First helm upgrade of umbrella chart to avoid null values affecting LCM isolation testing"},{"line_number":4,"context_line":"echo helm upgrade --reuse-values -n openstack openstack ./openstack"}],"source_content_type":"text/x-sh","patch_set":46,"id":"e02975e5_560499af","line":1,"in_reply_to":"f0cb26c8_6bc5145c","updated":"2022-06-21 20:05:01.000000000","message":"+1 since it will show the sleep calls","commit_id":"ef67d5cf653005c227e6c33956ac626fa7a3a541"},{"author":{"_account_id":35024},"change_message_id":"cfac3c2b03c0602e173cdcd8b60103bf292cb3d5","unresolved":true,"context_lines":[{"line_number":4,"context_line":"echo helm upgrade --reuse-values -n openstack openstack ./openstack"},{"line_number":5,"context_line":"helm upgrade --reuse-values -n openstack openstack ./openstack"},{"line_number":6,"context_line":"# Making sure that pod restarts of the previous upgrade doesn\u0027t affect LCM testing"},{"line_number":7,"context_line":"sleep 840;"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"FILE\u003d$1"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-sh","patch_set":46,"id":"eebe5017_875f5a8a","line":7,"updated":"2022-06-21 20:05:01.000000000","message":"Just curious where the 14 minutes came from as this done multiple times and could lead to a test timeout (I think)","commit_id":"ef67d5cf653005c227e6c33956ac626fa7a3a541"},{"author":{"_account_id":34623,"name":"Sharath Sangireddy","display_name":"Sharath Sangireddy","email":"v-sharatsang@microsoft.com","username":"sharatsang"},"change_message_id":"7badd192f00d845cd55fdf5c188adf7a524bbceb","unresolved":false,"context_lines":[{"line_number":4,"context_line":"echo helm upgrade --reuse-values -n openstack openstack ./openstack"},{"line_number":5,"context_line":"helm upgrade --reuse-values -n openstack openstack ./openstack"},{"line_number":6,"context_line":"# Making sure that pod restarts of the previous upgrade doesn\u0027t affect LCM testing"},{"line_number":7,"context_line":"sleep 840;"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"FILE\u003d$1"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-sh","patch_set":46,"id":"925aa92d_ab2d1637","line":7,"in_reply_to":"eebe5017_875f5a8a","updated":"2022-06-23 21:50:27.000000000","message":"verified that pod function captures the restarts and removed sleep","commit_id":"ef67d5cf653005c227e6c33956ac626fa7a3a541"},{"author":{"_account_id":35024},"change_message_id":"cfac3c2b03c0602e173cdcd8b60103bf292cb3d5","unresolved":true,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"INVALFILE\u003dinval.txt"},{"line_number":14,"context_line":"OUTVALFILE\u003doutval.txt"},{"line_number":15,"context_line":"rm -f $OUTVALFILE $INVALFILE"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"# Set yq version to 4.24.5(current latest version)"},{"line_number":18,"context_line":"export YQ_VERSION\u003d\"v4.24.5\""}],"source_content_type":"text/x-sh","patch_set":46,"id":"1d865ba2_2e6400be","line":15,"updated":"2022-06-21 20:05:01.000000000","message":"To make this use unique filenames without the possibility of harmful interactions should use something like:\n\nINVALFILE\u003d$(mktemp)\nOUTVALFILE\u003d$(mktemp)\nfunction cleanup {\n    rm -f \"${INVALFILE}\" \"${OUTVALFILE}\"\n}\ntrap cleanup EXIT\n\nYou could then remove L114 as well._+_+_","commit_id":"ef67d5cf653005c227e6c33956ac626fa7a3a541"},{"author":{"_account_id":34623,"name":"Sharath Sangireddy","display_name":"Sharath Sangireddy","email":"v-sharatsang@microsoft.com","username":"sharatsang"},"change_message_id":"7badd192f00d845cd55fdf5c188adf7a524bbceb","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"INVALFILE\u003dinval.txt"},{"line_number":14,"context_line":"OUTVALFILE\u003doutval.txt"},{"line_number":15,"context_line":"rm -f $OUTVALFILE $INVALFILE"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"# Set yq version to 4.24.5(current latest version)"},{"line_number":18,"context_line":"export YQ_VERSION\u003d\"v4.24.5\""}],"source_content_type":"text/x-sh","patch_set":46,"id":"ade38676_ab000bee","line":15,"in_reply_to":"1d865ba2_2e6400be","updated":"2022-06-23 21:50:27.000000000","message":"Removed the extra occurence of rm -f $OUTVALFILE $INVALFILE and moved the above to appropriate location in the script which is unique","commit_id":"ef67d5cf653005c227e6c33956ac626fa7a3a541"},{"author":{"_account_id":28701,"name":"Dustin Specker","email":"v-dspecker@microsoft.com","username":"dustinspecker"},"change_message_id":"28df9bfd09d0983b00d6cc6dc1f2a2ca9813cb20","unresolved":true,"context_lines":[{"line_number":15,"context_line":"rm -f $OUTVALFILE $INVALFILE"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"# Set yq version to 4.24.5(current latest version)"},{"line_number":18,"context_line":"export YQ_VERSION\u003d\"v4.24.5\""},{"line_number":19,"context_line":"echo \"Installing yq\""},{"line_number":20,"context_line":"wget https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/yq_linux_amd64.tar.gz -O - | tar -xz \u0026\u0026 sudo mv yq_linux_amd64 /usr/local/bin/yq"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-sh","patch_set":46,"id":"72fea97c_63a95539","line":18,"updated":"2022-06-21 13:35:41.000000000","message":"Do we intentionally need 4.24.5 of yq?\n\nOr does yq 4.6.0 from https://opendev.org/openstack/openstack-helm-infra/src/commit/9be2ea22a003b15536a2052e351d93b648245a8a/tools/gate/deploy-k8s.sh#L144 work?\n\nIf we need 4.24.5 can you instead update the YQ_VERSION in deploy-k8s.sh script please? If 4.6.0 works, then can you please remove installing YQ in this script?","commit_id":"ef67d5cf653005c227e6c33956ac626fa7a3a541"},{"author":{"_account_id":35024},"change_message_id":"cfac3c2b03c0602e173cdcd8b60103bf292cb3d5","unresolved":true,"context_lines":[{"line_number":22,"context_line":"# Function to check list and count of pods restarted"},{"line_number":23,"context_line":"function podsHealthCheck() {"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    podsfile\u003dapp.json"},{"line_number":26,"context_line":"    kubectl get pods -A -o json \u003e $podsfile"},{"line_number":27,"context_line":"    arrlen\u003d$(cat $podsfile | jq \u0027.items | length\u0027)"},{"line_number":28,"context_line":"    timenow\u003d$(date -d now \"+%s\")"}],"source_content_type":"text/x-sh","patch_set":46,"id":"adedfcb1_466f6bcc","line":25,"updated":"2022-06-21 20:05:01.000000000","message":"Could use it here as well, with just an rm -f at the end of the function","commit_id":"ef67d5cf653005c227e6c33956ac626fa7a3a541"},{"author":{"_account_id":34623,"name":"Sharath Sangireddy","display_name":"Sharath Sangireddy","email":"v-sharatsang@microsoft.com","username":"sharatsang"},"change_message_id":"7badd192f00d845cd55fdf5c188adf7a524bbceb","unresolved":false,"context_lines":[{"line_number":22,"context_line":"# Function to check list and count of pods restarted"},{"line_number":23,"context_line":"function podsHealthCheck() {"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    podsfile\u003dapp.json"},{"line_number":26,"context_line":"    kubectl get pods -A -o json \u003e $podsfile"},{"line_number":27,"context_line":"    arrlen\u003d$(cat $podsfile | jq \u0027.items | length\u0027)"},{"line_number":28,"context_line":"    timenow\u003d$(date -d now \"+%s\")"}],"source_content_type":"text/x-sh","patch_set":46,"id":"a6463335_395989dd","line":25,"in_reply_to":"adedfcb1_466f6bcc","updated":"2022-06-23 21:50:27.000000000","message":"verified that rm -f is not required for podsfile","commit_id":"ef67d5cf653005c227e6c33956ac626fa7a3a541"},{"author":{"_account_id":35024},"change_message_id":"cfac3c2b03c0602e173cdcd8b60103bf292cb3d5","unresolved":true,"context_lines":[{"line_number":44,"context_line":"        if [[ $uptime -lt 840 ]]; then"},{"line_number":45,"context_line":"            if [[ \"${name[$i]}\" \u003d~ .*$sname.* ]]; then"},{"line_number":46,"context_line":"                echo ${name[$i]} pod has restarted and $sname testing passed!"},{"line_number":47,"context_line":"            else"},{"line_number":48,"context_line":"                if [[ ! \"${name[$i]}\" \u003d~ \"heat-engine-cleaner\" \u0026\u0026 ! \"${name[$i]}\" \u003d~ \"nova-cell-setup\" \u0026\u0026 \"${phase[$i]}\" !\u003d \"Succeeded\" ]]; then"},{"line_number":49,"context_line":"                        echo Helm change is affecting ${name[$i]} and $sname testing failed!"},{"line_number":50,"context_line":"                        exit 1"}],"source_content_type":"text/x-sh","patch_set":46,"id":"f82dac69_39835d2b","line":47,"updated":"2022-06-21 20:05:01.000000000","message":"nit: if you know why we don\u0027t care about these pods would be good to put a short comment here","commit_id":"ef67d5cf653005c227e6c33956ac626fa7a3a541"},{"author":{"_account_id":34623,"name":"Sharath Sangireddy","display_name":"Sharath Sangireddy","email":"v-sharatsang@microsoft.com","username":"sharatsang"},"change_message_id":"7badd192f00d845cd55fdf5c188adf7a524bbceb","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        if [[ $uptime -lt 840 ]]; then"},{"line_number":45,"context_line":"            if [[ \"${name[$i]}\" \u003d~ .*$sname.* ]]; then"},{"line_number":46,"context_line":"                echo ${name[$i]} pod has restarted and $sname testing passed!"},{"line_number":47,"context_line":"            else"},{"line_number":48,"context_line":"                if [[ ! \"${name[$i]}\" \u003d~ \"heat-engine-cleaner\" \u0026\u0026 ! \"${name[$i]}\" \u003d~ \"nova-cell-setup\" \u0026\u0026 \"${phase[$i]}\" !\u003d \"Succeeded\" ]]; then"},{"line_number":49,"context_line":"                        echo Helm change is affecting ${name[$i]} and $sname testing failed!"},{"line_number":50,"context_line":"                        exit 1"}],"source_content_type":"text/x-sh","patch_set":46,"id":"4b284ed6_f7ee2b04","line":47,"in_reply_to":"f82dac69_39835d2b","updated":"2022-06-23 21:50:27.000000000","message":"Done","commit_id":"ef67d5cf653005c227e6c33956ac626fa7a3a541"},{"author":{"_account_id":35024},"change_message_id":"cfac3c2b03c0602e173cdcd8b60103bf292cb3d5","unresolved":true,"context_lines":[{"line_number":105,"context_line":"    echo Starting $subchartname testing"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    # helm step here"},{"line_number":108,"context_line":"    echo helm upgrade --install --reuse-values $chartname $chartpath $kv1 --namespace $namespace"},{"line_number":109,"context_line":"    helm upgrade --install --reuse-values $chartname $chartpath $kv1 --namespace $namespace"},{"line_number":110,"context_line":"    # To make sure that pods which are currently in \"Terminating\" state(where the AGE doesn\u0027t change) and eventually will be in \"init\" and \"Running\" state are not avoided/missed by pod check function"},{"line_number":111,"context_line":"    sleep 90;"}],"source_content_type":"text/x-sh","patch_set":46,"id":"61c4c115_614ecc6b","line":108,"updated":"2022-06-21 20:05:01.000000000","message":"Won\u0027t need this line with the set -ex above as it will get printed","commit_id":"ef67d5cf653005c227e6c33956ac626fa7a3a541"},{"author":{"_account_id":34623,"name":"Sharath Sangireddy","display_name":"Sharath Sangireddy","email":"v-sharatsang@microsoft.com","username":"sharatsang"},"change_message_id":"7badd192f00d845cd55fdf5c188adf7a524bbceb","unresolved":false,"context_lines":[{"line_number":105,"context_line":"    echo Starting $subchartname testing"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    # helm step here"},{"line_number":108,"context_line":"    echo helm upgrade --install --reuse-values $chartname $chartpath $kv1 --namespace $namespace"},{"line_number":109,"context_line":"    helm upgrade --install --reuse-values $chartname $chartpath $kv1 --namespace $namespace"},{"line_number":110,"context_line":"    # To make sure that pods which are currently in \"Terminating\" state(where the AGE doesn\u0027t change) and eventually will be in \"init\" and \"Running\" state are not avoided/missed by pod check function"},{"line_number":111,"context_line":"    sleep 90;"}],"source_content_type":"text/x-sh","patch_set":46,"id":"c27f89eb_925ba7e5","line":108,"in_reply_to":"61c4c115_614ecc6b","updated":"2022-06-23 21:50:27.000000000","message":"Done","commit_id":"ef67d5cf653005c227e6c33956ac626fa7a3a541"}],"tools/deployment/developer/lcm-isolation-testing/test.yml":[{"author":{"_account_id":28701,"name":"Dustin Specker","email":"v-dspecker@microsoft.com","username":"dustinspecker"},"change_message_id":"28df9bfd09d0983b00d6cc6dc1f2a2ca9813cb20","unresolved":true,"context_lines":[{"line_number":1,"context_line":"- chart:"},{"line_number":2,"context_line":"  - path: ./openstack"},{"line_number":3,"context_line":"  - name: openstack"},{"line_number":4,"context_line":"  - subchart: rabbitmq"},{"line_number":5,"context_line":"  - desc: input description"},{"line_number":6,"context_line":"  - namespace: openstack"},{"line_number":7,"context_line":"  - valuestoTest:"},{"line_number":8,"context_line":"      rabbitmq.conf.prometheus_exporter.log_level: warn"},{"line_number":9,"context_line":"      rabbitmq.pod.affinity.anti.weight.default: 11"},{"line_number":10,"context_line":"- chart:"},{"line_number":11,"context_line":"  - path: ./openstack"},{"line_number":12,"context_line":"  - name: openstack"}],"source_content_type":"text/x-yaml","patch_set":46,"id":"fd8d64a3_dbef285d","line":9,"range":{"start_line":2,"start_character":0,"end_line":9,"end_character":51},"updated":"2022-06-21 13:35:41.000000000","message":"This data structure is a bit unexpected. I think it would be clearer to understand if it looked something more like:\n\npath: ./openstack\nname: openstack\nsubchart: rabbitmq\ndesc: input description\nnamespace: openstack\nvaluesToTest:\n  rabbitmq.conf.prometheus_exporter.log_level: warn\n  rabbitmq.pod.affinity.anti.weight.default: 11\n  \nI see these as properties of a chart instead of being lists of properties.","commit_id":"ef67d5cf653005c227e6c33956ac626fa7a3a541"},{"author":{"_account_id":34623,"name":"Sharath Sangireddy","display_name":"Sharath Sangireddy","email":"v-sharatsang@microsoft.com","username":"sharatsang"},"change_message_id":"7badd192f00d845cd55fdf5c188adf7a524bbceb","unresolved":false,"context_lines":[{"line_number":1,"context_line":"- chart:"},{"line_number":2,"context_line":"  - path: ./openstack"},{"line_number":3,"context_line":"  - name: openstack"},{"line_number":4,"context_line":"  - subchart: rabbitmq"},{"line_number":5,"context_line":"  - desc: input description"},{"line_number":6,"context_line":"  - namespace: openstack"},{"line_number":7,"context_line":"  - valuestoTest:"},{"line_number":8,"context_line":"      rabbitmq.conf.prometheus_exporter.log_level: warn"},{"line_number":9,"context_line":"      rabbitmq.pod.affinity.anti.weight.default: 11"},{"line_number":10,"context_line":"- chart:"},{"line_number":11,"context_line":"  - path: ./openstack"},{"line_number":12,"context_line":"  - name: openstack"}],"source_content_type":"text/x-yaml","patch_set":46,"id":"67121e83_01bd4041","line":9,"range":{"start_line":2,"start_character":0,"end_line":9,"end_character":51},"in_reply_to":"fd8d64a3_dbef285d","updated":"2022-06-23 21:50:27.000000000","message":"Done","commit_id":"ef67d5cf653005c227e6c33956ac626fa7a3a541"}]}
