)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":32432,"name":"Owen McGonagle","email":"omcgonag@redhat.com","username":"omcgonag"},"change_message_id":"90297289d1ec39f002aabe5c8d18f3153684fd25","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"ee47b94e_7c458b97","updated":"2026-06-11 19:29:14.000000000","message":"recheck","commit_id":"0e895aedb38a0159bfce641c209930a1f98ce123"},{"author":{"_account_id":32432,"name":"Owen McGonagle","email":"omcgonag@redhat.com","username":"omcgonag"},"change_message_id":"cc21ae5c3572f0051c43bfe1090dd7c4e4b6b38f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"fb88b7f0_92c2c165","updated":"2026-06-12 12:28:02.000000000","message":"recheck","commit_id":"0e895aedb38a0159bfce641c209930a1f98ce123"},{"author":{"_account_id":32432,"name":"Owen McGonagle","email":"omcgonag@redhat.com","username":"omcgonag"},"change_message_id":"b14dc761564a98b10e8de86ca3cf653825778ca1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"77c88ee9_84f21280","updated":"2026-06-24 15:00:43.000000000","message":"recheck","commit_id":"6c258ac2f00f734624bc9b0bebd62976bfa83d9a"},{"author":{"_account_id":32432,"name":"Owen McGonagle","email":"omcgonag@redhat.com","username":"omcgonag"},"change_message_id":"5bae1426d75c4860b543554573ad498f050d810e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"fc7124e3_185ac519","updated":"2026-06-12 18:49:30.000000000","message":"recheck","commit_id":"6c258ac2f00f734624bc9b0bebd62976bfa83d9a"},{"author":{"_account_id":6914,"name":"Tatiana Ovchinnikova","email":"t.v.ovtchinnikova@gmail.com","username":"tmazur"},"change_message_id":"336003a7e6c4f94dcf2e4baa8983fa84497f62ed","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"aaf0fc18_e90a6c18","updated":"2026-06-30 16:59:26.000000000","message":"Thank you for the patch! Let\u0027s start tracking this initiative properly: please add the following line into the commit message:\n\nPartially-Implements: blueprint removing-angularjs\n\n-1 to just mark it as an action item","commit_id":"84000171da6d961c9d83c39155f9c8f155fa9534"},{"author":{"_account_id":6914,"name":"Tatiana Ovchinnikova","email":"t.v.ovtchinnikova@gmail.com","username":"tmazur"},"change_message_id":"29527830f312214338c763e0a34295f1f042ee7f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"6211ea4c_1cd46082","in_reply_to":"12d562b3_e8aedbd7","updated":"2026-07-08 13:59:27.000000000","message":"Hey, the topic can stay, \"de-angularize\" is shorter and clearer. The idea is to track all the deangularization activity in a blueprint, which you just add to your commit message.","commit_id":"84000171da6d961c9d83c39155f9c8f155fa9534"},{"author":{"_account_id":32432,"name":"Owen McGonagle","email":"omcgonag@redhat.com","username":"omcgonag"},"change_message_id":"e706ab2e9009eab2ced3173d005647f8a96ff0b6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"f2b21ecc_6e954821","in_reply_to":"12d562b3_e8aedbd7","updated":"2026-07-08 13:59:23.000000000","message":"I went without the url - marking this as resolved, thank you for catching this...","commit_id":"84000171da6d961c9d83c39155f9c8f155fa9534"},{"author":{"_account_id":32432,"name":"Owen McGonagle","email":"omcgonag@redhat.com","username":"omcgonag"},"change_message_id":"8cd40e7db3a3940483e64926d2729da39ad49319","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":9,"id":"12d562b3_e8aedbd7","in_reply_to":"3a3f70d3_905858e6","updated":"2026-07-07 20:20:50.000000000","message":"I am not sure what I viewed before - but I now see you put in the correct name you have as \u0027removing-angularjs\u0027\n\nDo we put in the url, or the name is good enough\u003e","commit_id":"84000171da6d961c9d83c39155f9c8f155fa9534"},{"author":{"_account_id":6914,"name":"Tatiana Ovchinnikova","email":"t.v.ovtchinnikova@gmail.com","username":"tmazur"},"change_message_id":"a95b2362cd890c5455b716f97190a1438dc5d171","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"5647e005_8df07e84","in_reply_to":"6211ea4c_1cd46082","updated":"2026-07-08 14:03:01.000000000","message":"That\u0027s a standard way, I\u0027m not sure the url will work in the commit message, actually. Also, if you could take care of the BP, that would be great :) You could add your patches there as well and track the progress.","commit_id":"84000171da6d961c9d83c39155f9c8f155fa9534"},{"author":{"_account_id":32432,"name":"Owen McGonagle","email":"omcgonag@redhat.com","username":"omcgonag"},"change_message_id":"c536470153170074175fe084c41dc13ee5dc7bcf","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":9,"id":"3a3f70d3_905858e6","in_reply_to":"aaf0fc18_e90a6c18","updated":"2026-07-07 20:13:55.000000000","message":"I found the blueprint at\nhttps://blueprints.launchpad.net/horizon/+spec/removing-angularjs\n\nI think we need to use removing-angularjs instead of de-angularize?\nPartially-Implements: blueprint removing-angularjs\n\nShould we include the full url:\nPartially-Implements: blueprint https://blueprints.launchpad.net/horizon/+spec/removing-angularjs\n\nShould we change the Gerrit topic to match the launchpad blueprint name of removing-angularjs? or\nis it ok to have different names?","commit_id":"84000171da6d961c9d83c39155f9c8f155fa9534"},{"author":{"_account_id":8648,"name":"Radomir Dopieralski","email":"openstack@dopieralski.pl","username":"thesheep"},"change_message_id":"ff42cb04390e67553da89a826b1f0b0d16f08d47","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"d4dd2364_89b541a2","updated":"2026-07-08 15:03:02.000000000","message":"looks good to me, I didn\u0027t test it","commit_id":"e35c9484cbc930d0936fc193e3fc3dcbee14cacb"}],"openstack_dashboard/test/selenium/integration/test_keypairs.py":[{"author":{"_account_id":35133,"name":"Jan Jasek","email":"jjasek@redhat.com","username":"janjasek"},"change_message_id":"b5a14e1e5687e06bba30aa3f2d1b9e4b798c3415","unresolved":true,"context_lines":[{"line_number":58,"context_line":"        By.CSS_SELECTOR, \u0027option[value\u003d\"ssh\"]\u0027).click()"},{"line_number":59,"context_line":"    keypair_form.find_element(By.CSS_SELECTOR, \".btn-primary\").click()"},{"line_number":60,"context_line":"    messages \u003d widgets.get_and_dismiss_messages(driver, config)"},{"line_number":61,"context_line":"    assert any(keypair_name in m for m in messages)"},{"line_number":62,"context_line":"    assert openstack_demo.compute.find_keypair(keypair_name) is not None"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"665bf274_212fe7f4","line":61,"range":{"start_line":61,"start_character":4,"end_line":61,"end_character":51},"updated":"2026-06-25 12:49:25.000000000","message":"Hi @omcgonag@redhat.com,\nYour current implementation just checks if the name is existing in the message and it does not care in what context it is there.\nSo if the message will be:\n```\nSuccess: Deleted Key Pair: lalala - test pass\nError: Unable to delete key pair: lalala - test pass\n```\nEtc…\n\nI would definitely prefer to stay with the current implementation, just with modified messages for Django message output.","commit_id":"6c258ac2f00f734624bc9b0bebd62976bfa83d9a"},{"author":{"_account_id":32432,"name":"Owen McGonagle","email":"omcgonag@redhat.com","username":"omcgonag"},"change_message_id":"173b0717095958a3621ab8d72134947ca9302a0a","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        By.CSS_SELECTOR, \u0027option[value\u003d\"ssh\"]\u0027).click()"},{"line_number":59,"context_line":"    keypair_form.find_element(By.CSS_SELECTOR, \".btn-primary\").click()"},{"line_number":60,"context_line":"    messages \u003d widgets.get_and_dismiss_messages(driver, config)"},{"line_number":61,"context_line":"    assert any(keypair_name in m for m in messages)"},{"line_number":62,"context_line":"    assert openstack_demo.compute.find_keypair(keypair_name) is not None"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"9add5c0a_cedfbabe","line":61,"range":{"start_line":61,"start_character":4,"end_line":61,"end_character":51},"in_reply_to":"665bf274_212fe7f4","updated":"2026-06-26 21:48:20.000000000","message":"Done","commit_id":"6c258ac2f00f734624bc9b0bebd62976bfa83d9a"},{"author":{"_account_id":35133,"name":"Jan Jasek","email":"jjasek@redhat.com","username":"janjasek"},"change_message_id":"b5a14e1e5687e06bba30aa3f2d1b9e4b798c3415","unresolved":true,"context_lines":[{"line_number":79,"context_line":"        \".//ancestor::tr/td[contains(@class,\u0027actions_column\u0027)]\").click()"},{"line_number":80,"context_line":"    widgets.confirm_modal(driver)"},{"line_number":81,"context_line":"    messages \u003d widgets.get_and_dismiss_messages(driver, config)"},{"line_number":82,"context_line":"    assert any(new_keypair_demo.name in m for m in messages)"},{"line_number":83,"context_line":"    assert openstack_demo.compute.find_keypair(new_keypair_demo.name) is None"}],"source_content_type":"text/x-python","patch_set":8,"id":"70bcbf44_bb99d598","line":82,"range":{"start_line":82,"start_character":4,"end_line":82,"end_character":60},"updated":"2026-06-25 12:49:25.000000000","message":"ditto","commit_id":"6c258ac2f00f734624bc9b0bebd62976bfa83d9a"},{"author":{"_account_id":32432,"name":"Owen McGonagle","email":"omcgonag@redhat.com","username":"omcgonag"},"change_message_id":"173b0717095958a3621ab8d72134947ca9302a0a","unresolved":false,"context_lines":[{"line_number":79,"context_line":"        \".//ancestor::tr/td[contains(@class,\u0027actions_column\u0027)]\").click()"},{"line_number":80,"context_line":"    widgets.confirm_modal(driver)"},{"line_number":81,"context_line":"    messages \u003d widgets.get_and_dismiss_messages(driver, config)"},{"line_number":82,"context_line":"    assert any(new_keypair_demo.name in m for m in messages)"},{"line_number":83,"context_line":"    assert openstack_demo.compute.find_keypair(new_keypair_demo.name) is None"}],"source_content_type":"text/x-python","patch_set":8,"id":"31318a47_c54cc1d3","line":82,"range":{"start_line":82,"start_character":4,"end_line":82,"end_character":60},"in_reply_to":"70bcbf44_bb99d598","updated":"2026-06-26 21:48:20.000000000","message":"Done","commit_id":"6c258ac2f00f734624bc9b0bebd62976bfa83d9a"}]}
