)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"78192759a632943f66eb02a3650a08fe27f79301","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"d172fe65_46f04a8a","updated":"2021-11-05 09:36:54.000000000","message":"I\u0027ll just submit a proposal with my suggestions and a fix for the bashate issue","commit_id":"62f949b7dfa1a7bb09a22579fba4ee586867b8bc"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"29abe82b19f0f3f0f60f154f40d9cef58951ce4f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"9dabf557_f6a082db","updated":"2021-11-05 14:32:56.000000000","message":"Thanks for the update, Jens","commit_id":"021ae0bcc8f67b6fd307aaf3c8ac59ba6cbe23b6"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"ad4b39a397c0cc058e7641740bf0f39fc2cf1669","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"2e6f622f_0fa54deb","updated":"2021-11-09 14:19:00.000000000","message":"seems ok, lgtm","commit_id":"021ae0bcc8f67b6fd307aaf3c8ac59ba6cbe23b6"}],"functions-common":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"1abf120cd356d2e9f9ec93371b58e25011cfac11","unresolved":true,"context_lines":[{"line_number":135,"context_line":"        --os-cloud devstack-system-member \\"},{"line_number":136,"context_line":"        --os-region-name $REGION_NAME \\"},{"line_number":137,"context_line":"        $CA_CERT_ARG \\"},{"line_number":138,"context_line":"        --os-auth-url $KEYSTONE_SERVICE_URI \\"},{"line_number":139,"context_line":"        --os-username system_member \\"},{"line_number":140,"context_line":"        --os-password $ADMIN_PASSWORD \\"},{"line_number":141,"context_line":"        --os-system-scope all"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"44535672_dcf59f32","line":138,"updated":"2021-03-12 07:44:48.000000000","message":"Another idea: Can you create a \"default_args\" local variable to contain all the args that are identical for the whole run of clouds in order to reduce repetition?\n\nThe more complex approach would the to change the python code to actually allow yaml templating for these to be used inside the clouds.yaml file, that would also make the resulting file nicer.","commit_id":"5a81c58c406b90559c6b51fd92c6e43fcca67a13"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"bea57e4b88dd2ef297e8e453c68d84f794b87233","unresolved":true,"context_lines":[{"line_number":135,"context_line":"        --os-cloud devstack-system-member \\"},{"line_number":136,"context_line":"        --os-region-name $REGION_NAME \\"},{"line_number":137,"context_line":"        $CA_CERT_ARG \\"},{"line_number":138,"context_line":"        --os-auth-url $KEYSTONE_SERVICE_URI \\"},{"line_number":139,"context_line":"        --os-username system_member \\"},{"line_number":140,"context_line":"        --os-password $ADMIN_PASSWORD \\"},{"line_number":141,"context_line":"        --os-system-scope all"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"ce4db79d_fce93bcf","line":138,"in_reply_to":"44535672_dcf59f32","updated":"2021-11-04 20:42:49.000000000","message":"I\u0027m not sure I fully understand what you mean here.\n\nCreate default_args as a parameter for write_clouds_yaml or as a parameter for the python script?","commit_id":"5a81c58c406b90559c6b51fd92c6e43fcca67a13"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"78192759a632943f66eb02a3650a08fe27f79301","unresolved":false,"context_lines":[{"line_number":135,"context_line":"        --os-cloud devstack-system-member \\"},{"line_number":136,"context_line":"        --os-region-name $REGION_NAME \\"},{"line_number":137,"context_line":"        $CA_CERT_ARG \\"},{"line_number":138,"context_line":"        --os-auth-url $KEYSTONE_SERVICE_URI \\"},{"line_number":139,"context_line":"        --os-username system_member \\"},{"line_number":140,"context_line":"        --os-password $ADMIN_PASSWORD \\"},{"line_number":141,"context_line":"        --os-system-scope all"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"dbace00e_75e1163a","line":138,"in_reply_to":"ce4db79d_fce93bcf","updated":"2021-11-05 09:36:54.000000000","message":"Wow, I\u0027m really not sure anymore what I was thinking at time. Looking at it now, I see two things:\n\n1. Rename CA_CERT_ARG to CLOUD_ARGS and add \"--file $CLOUDS_YAML --os-region-name $REGION_NAME --os-password $ADMIN_PASSWORD --os-auth-url $KEYSTONE_SERVICE_URI\" to it, that would reduce a lot of repetition in the code here.\n\n2. The second idea in the second paragraph likely was to reduce that repetition also in the resulting clouds.yaml file by introducing yaml templating there.\n\nBoth can be done in a followup, though, and I\u0027m not even sure the 2nd idea is worthwhile pursuing.","commit_id":"5a81c58c406b90559c6b51fd92c6e43fcca67a13"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"d9c771ff9090a2d8cbb8765bdcfc17e0e5895542","unresolved":true,"context_lines":[{"line_number":963,"context_line":"function get_or_add_user_system_role {"},{"line_number":964,"context_line":"    local user_role_id"},{"line_number":965,"context_line":""},{"line_number":966,"context_line":"    domain_args\u003d$(_get_domain_args $4)"},{"line_number":967,"context_line":""},{"line_number":968,"context_line":"    # Gets user role id"},{"line_number":969,"context_line":"    user_role_id\u003d$(openstack role assignment list \\"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"dc3a6ecc_0c75f1f8","line":966,"updated":"2021-03-12 07:25:22.000000000","message":"local var?","commit_id":"5a81c58c406b90559c6b51fd92c6e43fcca67a13"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"bea57e4b88dd2ef297e8e453c68d84f794b87233","unresolved":false,"context_lines":[{"line_number":963,"context_line":"function get_or_add_user_system_role {"},{"line_number":964,"context_line":"    local user_role_id"},{"line_number":965,"context_line":""},{"line_number":966,"context_line":"    domain_args\u003d$(_get_domain_args $4)"},{"line_number":967,"context_line":""},{"line_number":968,"context_line":"    # Gets user role id"},{"line_number":969,"context_line":"    user_role_id\u003d$(openstack role assignment list \\"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"14253aa9_e5f3c763","line":966,"in_reply_to":"dc3a6ecc_0c75f1f8","updated":"2021-11-04 20:42:49.000000000","message":"Done","commit_id":"5a81c58c406b90559c6b51fd92c6e43fcca67a13"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"d9c771ff9090a2d8cbb8765bdcfc17e0e5895542","unresolved":true,"context_lines":[{"line_number":971,"context_line":"        --user $2 \\"},{"line_number":972,"context_line":"        --system $3 \\"},{"line_number":973,"context_line":"        $domain_args \\"},{"line_number":974,"context_line":"        | grep \u0027^|\\s[a-f0-9]\\+\u0027 | get_field 1)"},{"line_number":975,"context_line":"    if [[ -z \"$user_role_id\" ]]; then"},{"line_number":976,"context_line":"        # Adds role to user and get it"},{"line_number":977,"context_line":"        openstack role add $1 \\"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"9a6084ba_a016d434","line":974,"updated":"2021-03-12 07:25:22.000000000","message":"Would it make sense to create a helper function for this instead of duplicating the code? And/or add \"-f value -c Role\" instead of the grep\u0026pipe stuff?","commit_id":"5a81c58c406b90559c6b51fd92c6e43fcca67a13"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"bea57e4b88dd2ef297e8e453c68d84f794b87233","unresolved":false,"context_lines":[{"line_number":971,"context_line":"        --user $2 \\"},{"line_number":972,"context_line":"        --system $3 \\"},{"line_number":973,"context_line":"        $domain_args \\"},{"line_number":974,"context_line":"        | grep \u0027^|\\s[a-f0-9]\\+\u0027 | get_field 1)"},{"line_number":975,"context_line":"    if [[ -z \"$user_role_id\" ]]; then"},{"line_number":976,"context_line":"        # Adds role to user and get it"},{"line_number":977,"context_line":"        openstack role add $1 \\"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"3e3ac1ec_bef99eb0","line":974,"in_reply_to":"9a6084ba_a016d434","updated":"2021-11-04 20:42:49.000000000","message":"Done","commit_id":"5a81c58c406b90559c6b51fd92c6e43fcca67a13"}],"lib/keystone":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"d9c771ff9090a2d8cbb8765bdcfc17e0e5895542","unresolved":true,"context_lines":[{"line_number":302,"context_line":"# ------------------------------------------------------------------"},{"line_number":303,"context_line":"# admins               admin            admin                 admin"},{"line_number":304,"context_line":"# nonadmins            demo, alt_demo   member, anotherrole   demo, alt_demo"},{"line_number":305,"context_line":""},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"# Migrated from keystone_data.sh"},{"line_number":308,"context_line":"function create_keystone_accounts {"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"0fc864fa_d74bf43a","line":305,"updated":"2021-03-12 07:25:22.000000000","message":"Also add the created system accounts/role assignments in a table here?","commit_id":"5a81c58c406b90559c6b51fd92c6e43fcca67a13"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"b49155c7a93cec815c12df4d18c906d4e43cb79f","unresolved":false,"context_lines":[{"line_number":302,"context_line":"# ------------------------------------------------------------------"},{"line_number":303,"context_line":"# admins               admin            admin                 admin"},{"line_number":304,"context_line":"# nonadmins            demo, alt_demo   member, anotherrole   demo, alt_demo"},{"line_number":305,"context_line":""},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"# Migrated from keystone_data.sh"},{"line_number":308,"context_line":"function create_keystone_accounts {"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"a29912f5_f9d57b11","line":305,"in_reply_to":"0fc864fa_d74bf43a","updated":"2021-11-05 13:57:51.000000000","message":"Done","commit_id":"5a81c58c406b90559c6b51fd92c6e43fcca67a13"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"d9c771ff9090a2d8cbb8765bdcfc17e0e5895542","unresolved":true,"context_lines":[{"line_number":316,"context_line":"    local admin_user"},{"line_number":317,"context_line":"    admin_user\u003d$(openstack user show \"admin\" -f value -c id)"},{"line_number":318,"context_line":"    local admin_role\u003d\"admin\""},{"line_number":319,"context_line":"    local member_role\u003d\"member\""},{"line_number":320,"context_line":"    local reader_role\u003d\"reader\""},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"    async_run ks-domain-role get_or_add_user_domain_role $admin_role $admin_user default"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"dc6ce112_860a1704","line":319,"updated":"2021-03-12 07:25:22.000000000","message":"Actually I\u0027m not sure why this is a variable, it suggests that it could easily be changed to a different value, but then one need a step to explicitly create that role, since keystone-manage is hardcoded to create only the role called \"member\".","commit_id":"5a81c58c406b90559c6b51fd92c6e43fcca67a13"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"bea57e4b88dd2ef297e8e453c68d84f794b87233","unresolved":true,"context_lines":[{"line_number":316,"context_line":"    local admin_user"},{"line_number":317,"context_line":"    admin_user\u003d$(openstack user show \"admin\" -f value -c id)"},{"line_number":318,"context_line":"    local admin_role\u003d\"admin\""},{"line_number":319,"context_line":"    local member_role\u003d\"member\""},{"line_number":320,"context_line":"    local reader_role\u003d\"reader\""},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"    async_run ks-domain-role get_or_add_user_domain_role $admin_role $admin_user default"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"b6a02c62_dcb458e4","line":319,"in_reply_to":"dc6ce112_860a1704","updated":"2021-11-04 20:42:49.000000000","message":"Correct - I\u0027m not sure I understand the value of having this be a variable either unless we made it possible to use a different role with the same behavior (e.g., s/reader/observer/)","commit_id":"5a81c58c406b90559c6b51fd92c6e43fcca67a13"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"d9c771ff9090a2d8cbb8765bdcfc17e0e5895542","unresolved":true,"context_lines":[{"line_number":317,"context_line":"    admin_user\u003d$(openstack user show \"admin\" -f value -c id)"},{"line_number":318,"context_line":"    local admin_role\u003d\"admin\""},{"line_number":319,"context_line":"    local member_role\u003d\"member\""},{"line_number":320,"context_line":"    local reader_role\u003d\"reader\""},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"    async_run ks-domain-role get_or_add_user_domain_role $admin_role $admin_user default"},{"line_number":323,"context_line":""}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"33d7f670_c953c929","line":320,"updated":"2021-03-12 07:25:22.000000000","message":"And thus I\u0027m not sure whether this should be a variable, either. Anyway you\u0027ll need to create that role explicitly I guess. Or amend the above comment to mention also the reader role being created by bootstrap (is it?).","commit_id":"5a81c58c406b90559c6b51fd92c6e43fcca67a13"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"bea57e4b88dd2ef297e8e453c68d84f794b87233","unresolved":true,"context_lines":[{"line_number":317,"context_line":"    admin_user\u003d$(openstack user show \"admin\" -f value -c id)"},{"line_number":318,"context_line":"    local admin_role\u003d\"admin\""},{"line_number":319,"context_line":"    local member_role\u003d\"member\""},{"line_number":320,"context_line":"    local reader_role\u003d\"reader\""},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"    async_run ks-domain-role get_or_add_user_domain_role $admin_role $admin_user default"},{"line_number":323,"context_line":""}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"31d1cf8f_8de7e547","line":320,"in_reply_to":"33d7f670_c953c929","updated":"2021-11-04 20:42:49.000000000","message":"Yes - keystone-manage bootstrap creates these roles by default.\n\nhttps://github.com/openstack/keystone/blob/master/keystone/cmd/bootstrap.py#L66-L68","commit_id":"5a81c58c406b90559c6b51fd92c6e43fcca67a13"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"d9c771ff9090a2d8cbb8765bdcfc17e0e5895542","unresolved":true,"context_lines":[{"line_number":368,"context_line":"    async_run ks-alt-admin get_or_add_user_project_role $admin_role $admin_user $alt_demo_project"},{"line_number":369,"context_line":"    async_run ks-alt-another get_or_add_user_project_role $another_role $alt_demo_user $alt_demo_project"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"    # Create two user, give one the member role on the system and the other the"},{"line_number":372,"context_line":"    # reader role on the system. These two users model system-member and"},{"line_number":373,"context_line":"    # system-reader personas. The admin user already has the admin role on the"},{"line_number":374,"context_line":"    # system and we can re-use this user as a system-admin."}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"27c1104e_4f20376c","line":371,"range":{"start_line":371,"start_character":17,"end_line":371,"end_character":21},"updated":"2021-03-12 07:25:22.000000000","message":"Nit: users","commit_id":"5a81c58c406b90559c6b51fd92c6e43fcca67a13"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"bea57e4b88dd2ef297e8e453c68d84f794b87233","unresolved":false,"context_lines":[{"line_number":368,"context_line":"    async_run ks-alt-admin get_or_add_user_project_role $admin_role $admin_user $alt_demo_project"},{"line_number":369,"context_line":"    async_run ks-alt-another get_or_add_user_project_role $another_role $alt_demo_user $alt_demo_project"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"    # Create two user, give one the member role on the system and the other the"},{"line_number":372,"context_line":"    # reader role on the system. These two users model system-member and"},{"line_number":373,"context_line":"    # system-reader personas. The admin user already has the admin role on the"},{"line_number":374,"context_line":"    # system and we can re-use this user as a system-admin."}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"ad7538d3_dda9a241","line":371,"range":{"start_line":371,"start_character":17,"end_line":371,"end_character":21},"in_reply_to":"27c1104e_4f20376c","updated":"2021-11-04 20:42:49.000000000","message":"Done","commit_id":"5a81c58c406b90559c6b51fd92c6e43fcca67a13"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"78192759a632943f66eb02a3650a08fe27f79301","unresolved":true,"context_lines":[{"line_number":296,"context_line":"function create_keystone_accounts {"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"    # The keystone bootstrapping process (performed via keystone-manage"},{"line_number":299,"context_line":"    # bootstrap) creates an admin user, admin role, member role, and admin"},{"line_number":300,"context_line":"    # project. As a sanity check we exercise the CLI to retrieve the IDs for"},{"line_number":301,"context_line":"    # these values."},{"line_number":302,"context_line":"    local admin_project"}],"source_content_type":"application/x-shellscript","patch_set":3,"id":"f2f67a37_91777e4f","line":299,"range":{"start_line":299,"start_character":40,"end_line":299,"end_character":64},"updated":"2021-11-05 09:36:54.000000000","message":"So maybe drop this part of the comment here, since we don\u0027t actually retrieve IDs for the roles...","commit_id":"62f949b7dfa1a7bb09a22579fba4ee586867b8bc"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"b49155c7a93cec815c12df4d18c906d4e43cb79f","unresolved":false,"context_lines":[{"line_number":296,"context_line":"function create_keystone_accounts {"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"    # The keystone bootstrapping process (performed via keystone-manage"},{"line_number":299,"context_line":"    # bootstrap) creates an admin user, admin role, member role, and admin"},{"line_number":300,"context_line":"    # project. As a sanity check we exercise the CLI to retrieve the IDs for"},{"line_number":301,"context_line":"    # these values."},{"line_number":302,"context_line":"    local admin_project"}],"source_content_type":"application/x-shellscript","patch_set":3,"id":"73f8776b_c379f689","line":299,"range":{"start_line":299,"start_character":40,"end_line":299,"end_character":64},"in_reply_to":"f2f67a37_91777e4f","updated":"2021-11-05 13:57:51.000000000","message":"Done","commit_id":"62f949b7dfa1a7bb09a22579fba4ee586867b8bc"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"78192759a632943f66eb02a3650a08fe27f79301","unresolved":true,"context_lines":[{"line_number":303,"context_line":"    admin_project\u003d$(openstack project show \"admin\" -f value -c id)"},{"line_number":304,"context_line":"    local admin_user"},{"line_number":305,"context_line":"    admin_user\u003d$(openstack user show \"admin\" -f value -c id)"},{"line_number":306,"context_line":"    local admin_role\u003d\"admin\""},{"line_number":307,"context_line":"    local member_role\u003d\"member\""},{"line_number":308,"context_line":"    local reader_role\u003d\"reader\""},{"line_number":309,"context_line":""}],"source_content_type":"application/x-shellscript","patch_set":3,"id":"8e6eba3c_8eab9785","line":306,"updated":"2021-11-05 09:36:54.000000000","message":"And add a comment here that these role are created hardcoded by keystone-manage","commit_id":"62f949b7dfa1a7bb09a22579fba4ee586867b8bc"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"b49155c7a93cec815c12df4d18c906d4e43cb79f","unresolved":false,"context_lines":[{"line_number":303,"context_line":"    admin_project\u003d$(openstack project show \"admin\" -f value -c id)"},{"line_number":304,"context_line":"    local admin_user"},{"line_number":305,"context_line":"    admin_user\u003d$(openstack user show \"admin\" -f value -c id)"},{"line_number":306,"context_line":"    local admin_role\u003d\"admin\""},{"line_number":307,"context_line":"    local member_role\u003d\"member\""},{"line_number":308,"context_line":"    local reader_role\u003d\"reader\""},{"line_number":309,"context_line":""}],"source_content_type":"application/x-shellscript","patch_set":3,"id":"279c84b1_5c67fb65","line":306,"in_reply_to":"8e6eba3c_8eab9785","updated":"2021-11-05 13:57:51.000000000","message":"Done","commit_id":"62f949b7dfa1a7bb09a22579fba4ee586867b8bc"}]}
