)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":7294,"name":"Leif Madsen","email":"lmadsen@redhat.com","username":"leifmadsen"},"change_message_id":"7d460e9d0a3153d1a33e3f504af2d25a7a83fb19","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"44525e85_46d09c95","updated":"2022-03-01 13:28:14.000000000","message":"Looks pretty useful. Is this still relevant?","commit_id":"9ad2f14694472793bb1a3f0b435656b55726fa31"},{"author":{"_account_id":32240,"name":"Yadnesh Kulkarni","email":"yadnesh_kulkarni@proton.me","username":"ykulkarn"},"change_message_id":"da6f9d2a1cfeea8bf08ea960242abf8ebfbe894d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"c92df9cc_a2e8a852","updated":"2023-03-13 12:00:30.000000000","message":"recheck","commit_id":"9ad2f14694472793bb1a3f0b435656b55726fa31"}],"ceilometer/compute/virt/libvirt/inspector.py":[{"author":{"_account_id":10311,"name":"Joseph Davis","email":"joseph.davis@suse.com","username":"joadavis"},"change_message_id":"4b05f798fba6e474aba2bc65b6b3ba65359a80a3","unresolved":false,"context_lines":[{"line_number":14,"context_line":"# under the License."},{"line_number":15,"context_line":"\"\"\"Implementation of Inspector abstraction for libvirt.\"\"\""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from defusedxml import lxml as etree"},{"line_number":19,"context_line":"from oslo_log import log as logging"},{"line_number":20,"context_line":"from oslo_utils import units"}],"source_content_type":"text/x-python","patch_set":15,"id":"5f7c97a3_871a8d15","line":17,"updated":"2018-07-27 15:40:21.000000000","message":"nit: extra space added, not a problem","commit_id":"87257fd15d38c9956893513ab18d5c32c44b3fb9"},{"author":{"_account_id":22604,"name":"Samuel Pilla","email":"sp516w@att.com","username":"samuel.pilla"},"change_message_id":"bd072dd0f57748597c8c11516fc4ca49ef465cf5","unresolved":false,"context_lines":[{"line_number":14,"context_line":"# under the License."},{"line_number":15,"context_line":"\"\"\"Implementation of Inspector abstraction for libvirt.\"\"\""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from defusedxml import lxml as etree"},{"line_number":19,"context_line":"from oslo_log import log as logging"},{"line_number":20,"context_line":"from oslo_utils import units"}],"source_content_type":"text/x-python","patch_set":15,"id":"5f7c97a3_db801d4c","line":17,"in_reply_to":"5f7c97a3_871a8d15","updated":"2018-07-31 18:24:20.000000000","message":"Done","commit_id":"87257fd15d38c9956893513ab18d5c32c44b3fb9"}],"ceilometer/publisher/utils.py":[{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"589243ebce223ff628fdf5ffb030547ad8e6cdff","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    if isinstance(secret, six.text_type):"},{"line_number":49,"context_line":"        secret \u003d secret.encode(\u0027utf-8\u0027)"},{"line_number":50,"context_line":"    digest_maker \u003d hmac.new(secret, b\u0027\u0027, hashlib.md5)  # nosec"},{"line_number":51,"context_line":"    for name, value in utils.recursive_keypairs(message):"},{"line_number":52,"context_line":"        if name \u003d\u003d \u0027message_signature\u0027:"},{"line_number":53,"context_line":"            # Skip any existing signature value, which would not have"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_e3847f60","line":50,"updated":"2017-08-11 16:07:48.000000000","message":"does not seem like something that is compatible","commit_id":"4caa6a71e7d345e8fc84a6c59cf2c5f51e321886"},{"author":{"_account_id":22604,"name":"Samuel Pilla","email":"sp516w@att.com","username":"samuel.pilla"},"change_message_id":"1e6f40d63a56ae926abb45fab451c2c1c4843611","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    if isinstance(secret, six.text_type):"},{"line_number":49,"context_line":"        secret \u003d secret.encode(\u0027utf-8\u0027)"},{"line_number":50,"context_line":"    digest_maker \u003d hmac.new(secret, b\u0027\u0027, hashlib.md5)  # nosec"},{"line_number":51,"context_line":"    for name, value in utils.recursive_keypairs(message):"},{"line_number":52,"context_line":"        if name \u003d\u003d \u0027message_signature\u0027:"},{"line_number":53,"context_line":"            # Skip any existing signature value, which would not have"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_b8d434ea","line":50,"in_reply_to":"9f436f4f_e3847f60","updated":"2017-08-14 18:13:00.000000000","message":"oops, didn\u0027t mean to change this","commit_id":"4caa6a71e7d345e8fc84a6c59cf2c5f51e321886"}],"ceilometer/storage/impl_sqlalchemy.py":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"df4674f0bbff7ac508b311215890ff8ef3c81448","unresolved":false,"context_lines":[{"line_number":292,"context_line":"            m_hash \u003d jsonutils.dumps(rmeta, sort_keys\u003dTrue)"},{"line_number":293,"context_line":"            if six.PY3:"},{"line_number":294,"context_line":"                m_hash \u003d m_hash.encode(\u0027utf-8\u0027)"},{"line_number":295,"context_line":"            m_hash \u003d hashlib.sha256(m_hash).hexdigest()"},{"line_number":296,"context_line":"            trans \u003d conn.begin_nested()"},{"line_number":297,"context_line":"            if conn.dialect.name \u003d\u003d \u0027sqlite\u0027:"},{"line_number":298,"context_line":"                trans \u003d conn.begin()"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f436f4f_e604d57d","line":295,"updated":"2017-08-09 16:13:34.000000000","message":"this breaks backward compatibility... also it\u0027s deprecated.\n\ni would suggest ignoring this as we do not use the hash for cryptography... only to generate a hash for cache (so we don\u0027t really care if it can broken)","commit_id":"cf40184cc07cf2258928026e11288aa939d8ac76"}],"requirements.txt":[{"author":{"_account_id":10311,"name":"Joseph Davis","email":"joseph.davis@suse.com","username":"joadavis"},"change_message_id":"4b05f798fba6e474aba2bc65b6b3ba65359a80a3","unresolved":false,"context_lines":[{"line_number":36,"context_line":"tooz[zake]\u003e\u003d1.47.0 # Apache-2.0"},{"line_number":37,"context_line":"os-xenapi\u003e\u003d0.1.1 # Apache-2.0"},{"line_number":38,"context_line":"defusedxml\u003e\u003d0.5.0 # PSF"},{"line_number":39,"context_line":""}],"source_content_type":"text/plain","patch_set":15,"id":"5f7c97a3_c7d96555","line":39,"updated":"2018-07-27 15:40:21.000000000","message":"nit: extra newline, not a problem","commit_id":"87257fd15d38c9956893513ab18d5c32c44b3fb9"},{"author":{"_account_id":22604,"name":"Samuel Pilla","email":"sp516w@att.com","username":"samuel.pilla"},"change_message_id":"bd072dd0f57748597c8c11516fc4ca49ef465cf5","unresolved":false,"context_lines":[{"line_number":36,"context_line":"tooz[zake]\u003e\u003d1.47.0 # Apache-2.0"},{"line_number":37,"context_line":"os-xenapi\u003e\u003d0.1.1 # Apache-2.0"},{"line_number":38,"context_line":"defusedxml\u003e\u003d0.5.0 # PSF"},{"line_number":39,"context_line":""}],"source_content_type":"text/plain","patch_set":15,"id":"5f7c97a3_bb79a181","line":39,"in_reply_to":"5f7c97a3_c7d96555","updated":"2018-07-31 18:24:20.000000000","message":"Done","commit_id":"87257fd15d38c9956893513ab18d5c32c44b3fb9"}],"tox.ini":[{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"e4412bb46e5732fc77fd3d214abc36cf46c548e0","unresolved":false,"context_lines":[{"line_number":39,"context_line":"basepython \u003d python3"},{"line_number":40,"context_line":"deps \u003d hacking\u003c0.13,\u003e\u003d0.12"},{"line_number":41,"context_line":"       doc8"},{"line_number":42,"context_line":"       .[bandit]"},{"line_number":43,"context_line":"       {[testenv]deps}"},{"line_number":44,"context_line":"commands \u003d"},{"line_number":45,"context_line":"    flake8"}],"source_content_type":"text/x-properties","patch_set":14,"id":"5f7c97a3_44440f19","line":42,"range":{"start_line":42,"start_character":7,"end_line":42,"end_character":16},"updated":"2018-07-10 08:23:32.000000000","message":"bandit is added to test-requirements and not to extras, please remove.","commit_id":"2aa29924cf6917efe773f2b1ca0ad0b49aded379"},{"author":{"_account_id":22604,"name":"Samuel Pilla","email":"sp516w@att.com","username":"samuel.pilla"},"change_message_id":"fd7bda1549b96fa894cca0dfa0c8c1807fe28d03","unresolved":false,"context_lines":[{"line_number":39,"context_line":"basepython \u003d python3"},{"line_number":40,"context_line":"deps \u003d hacking\u003c0.13,\u003e\u003d0.12"},{"line_number":41,"context_line":"       doc8"},{"line_number":42,"context_line":"       .[bandit]"},{"line_number":43,"context_line":"       {[testenv]deps}"},{"line_number":44,"context_line":"commands \u003d"},{"line_number":45,"context_line":"    flake8"}],"source_content_type":"text/x-properties","patch_set":14,"id":"5f7c97a3_14664056","line":42,"range":{"start_line":42,"start_character":7,"end_line":42,"end_character":16},"in_reply_to":"5f7c97a3_44440f19","updated":"2018-07-10 14:26:04.000000000","message":"Done","commit_id":"2aa29924cf6917efe773f2b1ca0ad0b49aded379"}]}
