)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"ac8ee9addbb3696d2fae0f79335481355ea7fbd0","unresolved":false,"context_lines":[{"line_number":10,"context_line":"redfish-virtual-media boot interface so a user can supply"},{"line_number":11,"context_line":"a boot ISO to boot the machine."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Tested on an HPE Edgeline e910 series machine using the"},{"line_number":14,"context_line":"``redifhs-virtual-media`` boot interface."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Story: 2007633"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"ff570b3c_f4e70aab","line":13,"updated":"2020-06-04 09:16:16.000000000","message":"Let\u0027s add a test to the standalone-redfish job?","commit_id":"4b0718fd381eb00e800a63447f93534818b5d49f"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"cdfb26f0cc304d0ed3fa9ce703eaa3374f3e75f3","unresolved":false,"context_lines":[{"line_number":10,"context_line":"redfish-virtual-media boot interface so a user can supply"},{"line_number":11,"context_line":"a boot ISO to boot the machine."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Tested on an HPE Edgeline e910 series machine using the"},{"line_number":14,"context_line":"``redifhs-virtual-media`` boot interface."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Story: 2007633"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"ff570b3c_ecdd7641","line":13,"in_reply_to":"ff570b3c_f4e70aab","updated":"2020-06-04 17:19:55.000000000","message":"Yeah, I need to figure out something to boot.","commit_id":"4b0718fd381eb00e800a63447f93534818b5d49f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"ac8ee9addbb3696d2fae0f79335481355ea7fbd0","unresolved":false,"context_lines":[{"line_number":11,"context_line":"a boot ISO to boot the machine."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Tested on an HPE Edgeline e910 series machine using the"},{"line_number":14,"context_line":"``redifhs-virtual-media`` boot interface."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Story: 2007633"},{"line_number":17,"context_line":"Task: 39823"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"ff570b3c_d4eac671","line":14,"updated":"2020-06-04 09:16:16.000000000","message":"typo: redfish","commit_id":"4b0718fd381eb00e800a63447f93534818b5d49f"}],"ironic/common/images.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"b35c7c0ae95099b12f0b420235754b7877f3698c","unresolved":false,"context_lines":[{"line_number":542,"context_line":"    :raises: ImageCreationFailed, if creating boot ISO failed."},{"line_number":543,"context_line":"    \"\"\""},{"line_number":544,"context_line":"    with utils.tempdir() as tmpdir:"},{"line_number":545,"context_line":"        if base_iso:"},{"line_number":546,"context_line":"            # NOTE(TheJulia): Eventually we want to use the creation method"},{"line_number":547,"context_line":"            # to perform the massaging of the image, because oddly enough"},{"line_number":548,"context_line":"            # we need to do all the same basic things, just a little"},{"line_number":549,"context_line":"            # differently."},{"line_number":550,"context_line":"            fetch(context, base_iso, output_filename)"},{"line_number":551,"context_line":"            # Temporary, return to the caller until we support the combined"},{"line_number":552,"context_line":"            # operation."},{"line_number":553,"context_line":"            return"},{"line_number":554,"context_line":"        else:"},{"line_number":555,"context_line":"            kernel_path \u003d os.path.join(tmpdir, kernel_href.split(\u0027/\u0027)[-1])"},{"line_number":556,"context_line":"            ramdisk_path \u003d os.path.join(tmpdir, ramdisk_href.split(\u0027/\u0027)[-1])"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_b11919d8","line":553,"range":{"start_line":545,"start_character":0,"end_line":553,"end_character":18},"updated":"2020-05-20 14:49:30.000000000","message":"we need to unit test this.","commit_id":"2ae1617cd6763bb9026957aabab770346464ea6f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"ac8ee9addbb3696d2fae0f79335481355ea7fbd0","unresolved":false,"context_lines":[{"line_number":549,"context_line":"            # differently."},{"line_number":550,"context_line":"            fetch(context, base_iso, output_filename)"},{"line_number":551,"context_line":"            # Temporary, return to the caller until we support the combined"},{"line_number":552,"context_line":"            # operation."},{"line_number":553,"context_line":"            return"},{"line_number":554,"context_line":"        else:"},{"line_number":555,"context_line":"            kernel_path \u003d os.path.join(tmpdir, kernel_href.split(\u0027/\u0027)[-1])"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff570b3c_34050247","line":552,"updated":"2020-06-04 09:16:16.000000000","message":"LOG.warning here?","commit_id":"4b0718fd381eb00e800a63447f93534818b5d49f"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"cdfb26f0cc304d0ed3fa9ce703eaa3374f3e75f3","unresolved":false,"context_lines":[{"line_number":549,"context_line":"            # differently."},{"line_number":550,"context_line":"            fetch(context, base_iso, output_filename)"},{"line_number":551,"context_line":"            # Temporary, return to the caller until we support the combined"},{"line_number":552,"context_line":"            # operation."},{"line_number":553,"context_line":"            return"},{"line_number":554,"context_line":"        else:"},{"line_number":555,"context_line":"            kernel_path \u003d os.path.join(tmpdir, kernel_href.split(\u0027/\u0027)[-1])"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff570b3c_acd7fe22","line":552,"in_reply_to":"ff570b3c_34050247","updated":"2020-06-04 17:19:55.000000000","message":"We\u0027d be issuing a warning on every run, when really it is more developer context... for now.","commit_id":"4b0718fd381eb00e800a63447f93534818b5d49f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"f4c55acc046d2e9836c57d78c735b197dea8718b","unresolved":false,"context_lines":[{"line_number":552,"context_line":"    :boot_mode: the boot mode in which the deploy is to happen."},{"line_number":553,"context_line":"    :param configdrive_href: URL to ISO9660 or FAT-formatted OpenStack config"},{"line_number":554,"context_line":"        drive image. This image will be embedded into the built ISO image."},{"line_number":555,"context_line":"        Optional."},{"line_number":556,"context_line":"    :raises: ImageCreationFailed, if creating boot ISO failed."},{"line_number":557,"context_line":"    \"\"\""},{"line_number":558,"context_line":"    with utils.tempdir() as tmpdir:"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf51134e_be5c7d4b","line":555,"updated":"2020-07-10 14:53:00.000000000","message":"nit: document base_iso","commit_id":"8a159fd98fd16e8f361954c00ad4298cf0574fa2"}],"ironic/drivers/modules/deploy_utils.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"b35c7c0ae95099b12f0b420235754b7877f3698c","unresolved":false,"context_lines":[{"line_number":652,"context_line":"    \"\"\""},{"line_number":653,"context_line":"    info \u003d {}"},{"line_number":654,"context_line":""},{"line_number":655,"context_line":"    is_whole_disk_image \u003d node.driver_internal_info.get(\u0027is_whole_disk_image\u0027)"},{"line_number":656,"context_line":"    boot_iso \u003d node.instance_info.get(\u0027boot_iso\u0027)"},{"line_number":657,"context_line":""},{"line_number":658,"context_line":"    if not boot_iso:"},{"line_number":659,"context_line":"        info[\u0027image_source\u0027] \u003d node.instance_info.get(\u0027image_source\u0027)"},{"line_number":660,"context_line":""},{"line_number":661,"context_line":"    if not is_whole_disk_image and not boot_iso:"},{"line_number":662,"context_line":"        if not service_utils.is_glance_image(info[\u0027image_source\u0027]):"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_f10f1185","line":659,"range":{"start_line":655,"start_character":0,"end_line":659,"end_character":69},"updated":"2020-05-20 14:49:30.000000000","message":"likey needs a test","commit_id":"2ae1617cd6763bb9026957aabab770346464ea6f"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"1c6c8f96333a16ef4666e0ea7364da0b4c61e86d","unresolved":false,"context_lines":[{"line_number":654,"context_line":"    is_whole_disk_image \u003d node.driver_internal_info.get(\u0027is_whole_disk_image\u0027)"},{"line_number":655,"context_line":"    boot_iso \u003d node.instance_info.get(\u0027boot_iso\u0027)"},{"line_number":656,"context_line":""},{"line_number":657,"context_line":"    if not boot_iso:"},{"line_number":658,"context_line":"        info[\u0027image_source\u0027] \u003d node.instance_info.get(\u0027image_source\u0027)"},{"line_number":659,"context_line":""},{"line_number":660,"context_line":"    if not is_whole_disk_image and not boot_iso:"},{"line_number":661,"context_line":"        if not service_utils.is_glance_image(info[\u0027image_source\u0027]):"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf51134e_e855e651","line":658,"range":{"start_line":657,"start_character":0,"end_line":658,"end_character":69},"updated":"2020-06-18 16:37:03.000000000","message":"this is problematic for non-ramdisk deploys, if the key is set.","commit_id":"3eaa2e91e2d84d8fbdca8a853d4d5f4de0bc8dea"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"0fabb5820c158c5c6b70c23db1dce6aa9091b738","unresolved":false,"context_lines":[{"line_number":654,"context_line":"    is_whole_disk_image \u003d node.driver_internal_info.get(\u0027is_whole_disk_image\u0027)"},{"line_number":655,"context_line":"    boot_iso \u003d node.instance_info.get(\u0027boot_iso\u0027)"},{"line_number":656,"context_line":""},{"line_number":657,"context_line":"    if not boot_iso:"},{"line_number":658,"context_line":"        info[\u0027image_source\u0027] \u003d node.instance_info.get(\u0027image_source\u0027)"},{"line_number":659,"context_line":""},{"line_number":660,"context_line":"    if not is_whole_disk_image and not boot_iso:"},{"line_number":661,"context_line":"        if not service_utils.is_glance_image(info[\u0027image_source\u0027]):"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf51134e_cf03f30e","line":658,"range":{"start_line":657,"start_character":0,"end_line":658,"end_character":69},"in_reply_to":"bf51134e_e855e651","updated":"2020-07-02 19:53:16.000000000","message":"multiple tests rely on failures when none gets set, so it seems like validation is key.","commit_id":"3eaa2e91e2d84d8fbdca8a853d4d5f4de0bc8dea"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"1c6c8f96333a16ef4666e0ea7364da0b4c61e86d","unresolved":false,"context_lines":[{"line_number":656,"context_line":""},{"line_number":657,"context_line":"    if not boot_iso:"},{"line_number":658,"context_line":"        info[\u0027image_source\u0027] \u003d node.instance_info.get(\u0027image_source\u0027)"},{"line_number":659,"context_line":""},{"line_number":660,"context_line":"    if not is_whole_disk_image and not boot_iso:"},{"line_number":661,"context_line":"        if not service_utils.is_glance_image(info[\u0027image_source\u0027]):"},{"line_number":662,"context_line":"            info[\u0027kernel\u0027] \u003d node.instance_info.get(\u0027kernel\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf51134e_c8d582b9","line":659,"updated":"2020-06-18 16:37:03.000000000","message":"We should fail validation if we have both image_source and boot_iso.  It is likely needed in this file... someplace.","commit_id":"3eaa2e91e2d84d8fbdca8a853d4d5f4de0bc8dea"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"f4c55acc046d2e9836c57d78c735b197dea8718b","unresolved":false,"context_lines":[{"line_number":660,"context_line":"    boot_iso \u003d node.instance_info.get(\u0027boot_iso\u0027)"},{"line_number":661,"context_line":""},{"line_number":662,"context_line":"    if not boot_iso:"},{"line_number":663,"context_line":"        info[\u0027image_source\u0027] \u003d node.instance_info.get(\u0027image_source\u0027)"},{"line_number":664,"context_line":""},{"line_number":665,"context_line":"    if not is_whole_disk_image and not boot_iso:"},{"line_number":666,"context_line":"        if not service_utils.is_glance_image(info[\u0027image_source\u0027]):"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf51134e_3e36ad04","line":663,"updated":"2020-07-10 14:53:00.000000000","message":"should we\n\n else:\n     info[\u0027boot_iso\u0027] \u003d boot_iso\n\n?","commit_id":"8a159fd98fd16e8f361954c00ad4298cf0574fa2"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"7054ee0bfad27172fca7c7732db79f904973f339","unresolved":false,"context_lines":[{"line_number":660,"context_line":"    boot_iso \u003d node.instance_info.get(\u0027boot_iso\u0027)"},{"line_number":661,"context_line":""},{"line_number":662,"context_line":"    if not boot_iso:"},{"line_number":663,"context_line":"        info[\u0027image_source\u0027] \u003d node.instance_info.get(\u0027image_source\u0027)"},{"line_number":664,"context_line":""},{"line_number":665,"context_line":"    if not is_whole_disk_image and not boot_iso:"},{"line_number":666,"context_line":"        if not service_utils.is_glance_image(info[\u0027image_source\u0027]):"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf51134e_397b678c","line":663,"in_reply_to":"bf51134e_3e36ad04","updated":"2020-07-10 15:03:01.000000000","message":"We should, the resulting info is used in the end in https://review.opendev.org/#/c/727480/6/ironic/drivers/modules/redfish/boot.py@784","commit_id":"8a159fd98fd16e8f361954c00ad4298cf0574fa2"}],"ironic/drivers/modules/redfish/boot.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"1c6c8f96333a16ef4666e0ea7364da0b4c61e86d","unresolved":false,"context_lines":[{"line_number":533,"context_line":"            configdrive_href \u003d configdrive"},{"line_number":534,"context_line":""},{"line_number":535,"context_line":"            # FIXME(TheJulia): marking conditional based on base_iso"},{"line_number":536,"context_line":"            # Once we support injection, we should consider this."},{"line_number":537,"context_line":""},{"line_number":538,"context_line":"            if configdrive and not base_iso:"},{"line_number":539,"context_line":"                parsed_url \u003d urlparse.urlparse(configdrive)"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf51134e_681436a1","line":536,"updated":"2020-06-18 16:37:03.000000000","message":"Need to clarify this comment in that it is in regards to supporting any manipulation of the image.","commit_id":"3eaa2e91e2d84d8fbdca8a853d4d5f4de0bc8dea"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"988d660152a9b22b8606ed9dac7228e0baf07941","unresolved":false,"context_lines":[{"line_number":684,"context_line":"        if not ramdisk_href:"},{"line_number":685,"context_line":"            ramdisk_href \u003d image_properties.get(\u0027ramdisk_id\u0027)"},{"line_number":686,"context_line":""},{"line_number":687,"context_line":"    if (not kernel_href or not ramdisk_href) and not base_iso:"},{"line_number":688,"context_line":"        raise exception.InvalidParameterValue(_("},{"line_number":689,"context_line":"            \"Unable to find kernel or ramdisk for \""},{"line_number":690,"context_line":"            \"to generate boot ISO for %(node)s\") %"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf51134e_ef97b08f","line":687,"range":{"start_line":687,"start_character":46,"end_line":687,"end_character":61},"updated":"2020-06-18 14:21:18.000000000","message":"This can be removed by moving this \u0027if\u0027 under \u0027if\u0027 at L673. \n\nif (not kernel_href or not ramdisk_href) and not base_iso:\n    ...\n    if not kernel_href or not ramdisk_href:\n        ...","commit_id":"3eaa2e91e2d84d8fbdca8a853d4d5f4de0bc8dea"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"1c6c8f96333a16ef4666e0ea7364da0b4c61e86d","unresolved":false,"context_lines":[{"line_number":684,"context_line":"        if not ramdisk_href:"},{"line_number":685,"context_line":"            ramdisk_href \u003d image_properties.get(\u0027ramdisk_id\u0027)"},{"line_number":686,"context_line":""},{"line_number":687,"context_line":"    if (not kernel_href or not ramdisk_href) and not base_iso:"},{"line_number":688,"context_line":"        raise exception.InvalidParameterValue(_("},{"line_number":689,"context_line":"            \"Unable to find kernel or ramdisk for \""},{"line_number":690,"context_line":"            \"to generate boot ISO for %(node)s\") %"},{"line_number":691,"context_line":"            {\u0027node\u0027: task.node.uuid})"},{"line_number":692,"context_line":""},{"line_number":693,"context_line":"    bootloader_href \u003d d_info.get(\u0027bootloader\u0027)"},{"line_number":694,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"bf51134e_289fde5f","line":691,"range":{"start_line":687,"start_character":62,"end_line":691,"end_character":37},"updated":"2020-06-18 16:37:03.000000000","message":"Okay, lets move this over four spaces and remove base_iso above as it will then be nested.","commit_id":"3eaa2e91e2d84d8fbdca8a853d4d5f4de0bc8dea"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"988d660152a9b22b8606ed9dac7228e0baf07941","unresolved":false,"context_lines":[{"line_number":780,"context_line":""},{"line_number":781,"context_line":"        if node.driver_internal_info.get(\u0027is_whole_disk_image\u0027):"},{"line_number":782,"context_line":"            props \u003d []"},{"line_number":783,"context_line":"        elif d_info.get(\u0027boot_iso\u0027):"},{"line_number":784,"context_line":"            props \u003d [\u0027boot_iso\u0027]"},{"line_number":785,"context_line":"        elif service_utils.is_glance_image(d_info[\u0027image_source\u0027]):"},{"line_number":786,"context_line":"            props \u003d [\u0027kernel_id\u0027, \u0027ramdisk_id\u0027]"},{"line_number":787,"context_line":""},{"line_number":788,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf51134e_8f7394b1","line":785,"range":{"start_line":783,"start_character":8,"end_line":785,"end_character":67},"updated":"2020-06-18 14:21:18.000000000","message":"Wont it be better to check that both \u0027boot_iso\u0027 and \u0027image_source\u0027 are not present in simultaneously instance_info. Though code  looks like would use \u0027boot_iso\u0027 if both happens to be there.","commit_id":"3eaa2e91e2d84d8fbdca8a853d4d5f4de0bc8dea"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"0fabb5820c158c5c6b70c23db1dce6aa9091b738","unresolved":false,"context_lines":[{"line_number":780,"context_line":""},{"line_number":781,"context_line":"        if node.driver_internal_info.get(\u0027is_whole_disk_image\u0027):"},{"line_number":782,"context_line":"            props \u003d []"},{"line_number":783,"context_line":"        elif d_info.get(\u0027boot_iso\u0027):"},{"line_number":784,"context_line":"            props \u003d [\u0027boot_iso\u0027]"},{"line_number":785,"context_line":"        elif service_utils.is_glance_image(d_info[\u0027image_source\u0027]):"},{"line_number":786,"context_line":"            props \u003d [\u0027kernel_id\u0027, \u0027ramdisk_id\u0027]"},{"line_number":787,"context_line":""},{"line_number":788,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf51134e_55a49008","line":785,"range":{"start_line":783,"start_character":8,"end_line":785,"end_character":67},"in_reply_to":"bf51134e_08c13a2f","updated":"2020-07-02 19:53:16.000000000","message":"Added check into validation.","commit_id":"3eaa2e91e2d84d8fbdca8a853d4d5f4de0bc8dea"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"1c6c8f96333a16ef4666e0ea7364da0b4c61e86d","unresolved":false,"context_lines":[{"line_number":780,"context_line":""},{"line_number":781,"context_line":"        if node.driver_internal_info.get(\u0027is_whole_disk_image\u0027):"},{"line_number":782,"context_line":"            props \u003d []"},{"line_number":783,"context_line":"        elif d_info.get(\u0027boot_iso\u0027):"},{"line_number":784,"context_line":"            props \u003d [\u0027boot_iso\u0027]"},{"line_number":785,"context_line":"        elif service_utils.is_glance_image(d_info[\u0027image_source\u0027]):"},{"line_number":786,"context_line":"            props \u003d [\u0027kernel_id\u0027, \u0027ramdisk_id\u0027]"},{"line_number":787,"context_line":""},{"line_number":788,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf51134e_08c13a2f","line":785,"range":{"start_line":783,"start_character":8,"end_line":785,"end_character":67},"in_reply_to":"bf51134e_8f7394b1","updated":"2020-06-18 16:37:03.000000000","message":"Review jam concurs!","commit_id":"3eaa2e91e2d84d8fbdca8a853d4d5f4de0bc8dea"}]}
