)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"dcff69678589bde57f103f8971a4d71fc9685588","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"9bae5b49_aa6080a6","updated":"2024-05-30 18:33:21.000000000","message":"This will fail as it detect many issues on incorrect retirement. I will work on fixing those and make it pass","commit_id":"55510ae86348539dbb4ef2e91796e10b7db60131"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"68d90f5c951f3cfcca3668db511c13ee16ad1536","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"d5866e25_63e4bee5","updated":"2024-06-18 19:03:05.000000000","message":"Thanks Ghanshyam!","commit_id":"aa230b6bbd076b0c26ebd79939f05844db6e1cff"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"d1231bad6610fad83714817071300313e86a0e43","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"db24df64_c401e22a","updated":"2024-06-14 06:08:40.000000000","message":"thx","commit_id":"aa230b6bbd076b0c26ebd79939f05844db6e1cff"}],"tools/validate-legacy.py":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"c06c3b1b571223dcc14302bad26d5c669e6bdfd7","unresolved":true,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"FILES_URL \u003d \"https://opendev.org/api/v1/repos/{}/git/trees/master\""},{"line_number":24,"context_line":"IGNORED_REPOS \u003d ["},{"line_number":25,"context_line":"    # NOTE(gmann): The below list of repositories are the old uncleaned"},{"line_number":26,"context_line":"    # one and they are too many and not worth to cleanup those."},{"line_number":27,"context_line":"    # For more details, ref to https://etherpad.opendev.org/p/tc-retirement-cleanup"},{"line_number":28,"context_line":"    \u0027openstack/deb\u0027, \u0027openstack/openstack-salt\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"667eea6b_ef6581fa","line":25,"range":{"start_line":25,"start_character":37,"end_line":25,"end_character":49},"updated":"2024-06-12 10:33:57.000000000","message":"\"openstack/deb\" isn\u0027t a repo, just the common prefix for a long list of repos, this should be mentioned in this note for clarity.","commit_id":"1df33167c4ac0430090e9cded544c0293aadd0e8"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"c81e0b921e1ec2639c41712121d6d6e4a445a42d","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"FILES_URL \u003d \"https://opendev.org/api/v1/repos/{}/git/trees/master\""},{"line_number":24,"context_line":"IGNORED_REPOS \u003d ["},{"line_number":25,"context_line":"    # NOTE(gmann): The below list of repositories are the old uncleaned"},{"line_number":26,"context_line":"    # one and they are too many and not worth to cleanup those."},{"line_number":27,"context_line":"    # For more details, ref to https://etherpad.opendev.org/p/tc-retirement-cleanup"},{"line_number":28,"context_line":"    \u0027openstack/deb\u0027, \u0027openstack/openstack-salt\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"e8da4135_9b40fa14","line":25,"range":{"start_line":25,"start_character":37,"end_line":25,"end_character":49},"in_reply_to":"667eea6b_ef6581fa","updated":"2024-06-13 19:01:00.000000000","message":"Done","commit_id":"1df33167c4ac0430090e9cded544c0293aadd0e8"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"c06c3b1b571223dcc14302bad26d5c669e6bdfd7","unresolved":true,"context_lines":[{"line_number":23,"context_line":"FILES_URL \u003d \"https://opendev.org/api/v1/repos/{}/git/trees/master\""},{"line_number":24,"context_line":"IGNORED_REPOS \u003d ["},{"line_number":25,"context_line":"    # NOTE(gmann): The below list of repositories are the old uncleaned"},{"line_number":26,"context_line":"    # one and they are too many and not worth to cleanup those."},{"line_number":27,"context_line":"    # For more details, ref to https://etherpad.opendev.org/p/tc-retirement-cleanup"},{"line_number":28,"context_line":"    \u0027openstack/deb\u0027, \u0027openstack/openstack-salt\u0027,"},{"line_number":29,"context_line":"    \u0027openstack/salt\u0027, \u0027openstack/app-catalog\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"8a916797_48ce17bd","line":26,"range":{"start_line":26,"start_character":6,"end_line":26,"end_character":9},"updated":"2024-06-12 10:33:57.000000000","message":"nit: ones?","commit_id":"1df33167c4ac0430090e9cded544c0293aadd0e8"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"c81e0b921e1ec2639c41712121d6d6e4a445a42d","unresolved":false,"context_lines":[{"line_number":23,"context_line":"FILES_URL \u003d \"https://opendev.org/api/v1/repos/{}/git/trees/master\""},{"line_number":24,"context_line":"IGNORED_REPOS \u003d ["},{"line_number":25,"context_line":"    # NOTE(gmann): The below list of repositories are the old uncleaned"},{"line_number":26,"context_line":"    # one and they are too many and not worth to cleanup those."},{"line_number":27,"context_line":"    # For more details, ref to https://etherpad.opendev.org/p/tc-retirement-cleanup"},{"line_number":28,"context_line":"    \u0027openstack/deb\u0027, \u0027openstack/openstack-salt\u0027,"},{"line_number":29,"context_line":"    \u0027openstack/salt\u0027, \u0027openstack/app-catalog\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"37e81306_6cd16fc4","line":26,"range":{"start_line":26,"start_character":6,"end_line":26,"end_character":9},"in_reply_to":"8a916797_48ce17bd","updated":"2024-06-13 19:01:00.000000000","message":"Done","commit_id":"1df33167c4ac0430090e9cded544c0293aadd0e8"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"c06c3b1b571223dcc14302bad26d5c669e6bdfd7","unresolved":true,"context_lines":[{"line_number":30,"context_line":"    \u0027openstack/python-appcatalogclient\u0027, \u0027openstack/congress-dashboard\u0027,"},{"line_number":31,"context_line":"    \u0027openstack/cue\u0027, \u0027openstack/refstack\u0027, \u0027openstack/security-doc\u0027,"},{"line_number":32,"context_line":"    \u0027openstack/python-cueclient\u0027, \u0027openstack/magnetodb\u0027, \u0027openstack/ossa\u0027,"},{"line_number":33,"context_line":"    \u0027openstack/python-magnetodbclient\u0027, \u0027openstack/openstack-chef-repo\u0027]"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"parser \u003d argparse.ArgumentParser()"},{"line_number":36,"context_line":"parser.add_argument("}],"source_content_type":"text/x-python","patch_set":4,"id":"a71aeac0_8f16f07e","line":33,"updated":"2024-06-12 10:33:57.000000000","message":"having one entry per line and alphabetically sorted would make this much easier to check and possibly update","commit_id":"1df33167c4ac0430090e9cded544c0293aadd0e8"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"c81e0b921e1ec2639c41712121d6d6e4a445a42d","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    \u0027openstack/python-appcatalogclient\u0027, \u0027openstack/congress-dashboard\u0027,"},{"line_number":31,"context_line":"    \u0027openstack/cue\u0027, \u0027openstack/refstack\u0027, \u0027openstack/security-doc\u0027,"},{"line_number":32,"context_line":"    \u0027openstack/python-cueclient\u0027, \u0027openstack/magnetodb\u0027, \u0027openstack/ossa\u0027,"},{"line_number":33,"context_line":"    \u0027openstack/python-magnetodbclient\u0027, \u0027openstack/openstack-chef-repo\u0027]"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"parser \u003d argparse.ArgumentParser()"},{"line_number":36,"context_line":"parser.add_argument("}],"source_content_type":"text/x-python","patch_set":4,"id":"766d3ba8_0e706b56","line":33,"in_reply_to":"a71aeac0_8f16f07e","updated":"2024-06-13 19:01:00.000000000","message":"Done","commit_id":"1df33167c4ac0430090e9cded544c0293aadd0e8"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"c06c3b1b571223dcc14302bad26d5c669e6bdfd7","unresolved":true,"context_lines":[{"line_number":81,"context_line":"                continue"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    for deliverable_name, deliverable_data in deliverables.items():"},{"line_number":84,"context_line":"        # Ensure that the repositories has no content."},{"line_number":85,"context_line":"        repo_ignored \u003d False"},{"line_number":86,"context_line":"        for repo in deliverable_data[\u0027repos\u0027]:"},{"line_number":87,"context_line":"            for ir in IGNORED_REPOS:"}],"source_content_type":"text/x-python","patch_set":4,"id":"7fe6a104_73422c16","line":84,"range":{"start_line":84,"start_character":39,"end_line":84,"end_character":42},"updated":"2024-06-12 10:33:57.000000000","message":"nit: have","commit_id":"1df33167c4ac0430090e9cded544c0293aadd0e8"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"c81e0b921e1ec2639c41712121d6d6e4a445a42d","unresolved":false,"context_lines":[{"line_number":81,"context_line":"                continue"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    for deliverable_name, deliverable_data in deliverables.items():"},{"line_number":84,"context_line":"        # Ensure that the repositories has no content."},{"line_number":85,"context_line":"        repo_ignored \u003d False"},{"line_number":86,"context_line":"        for repo in deliverable_data[\u0027repos\u0027]:"},{"line_number":87,"context_line":"            for ir in IGNORED_REPOS:"}],"source_content_type":"text/x-python","patch_set":4,"id":"fd93ebc1_e32f1e6a","line":84,"range":{"start_line":84,"start_character":39,"end_line":84,"end_character":42},"in_reply_to":"7fe6a104_73422c16","updated":"2024-06-13 19:01:00.000000000","message":"Done","commit_id":"1df33167c4ac0430090e9cded544c0293aadd0e8"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"c06c3b1b571223dcc14302bad26d5c669e6bdfd7","unresolved":true,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    for deliverable_name, deliverable_data in deliverables.items():"},{"line_number":84,"context_line":"        # Ensure that the repositories has no content."},{"line_number":85,"context_line":"        repo_ignored \u003d False"},{"line_number":86,"context_line":"        for repo in deliverable_data[\u0027repos\u0027]:"},{"line_number":87,"context_line":"            for ir in IGNORED_REPOS:"},{"line_number":88,"context_line":"                if repo.startswith(ir):"}],"source_content_type":"text/x-python","patch_set":4,"id":"b9fface4_08fc7284","line":85,"updated":"2024-06-12 10:33:57.000000000","message":"I think this needs to be re-set within the loop, so move it to the next line?","commit_id":"1df33167c4ac0430090e9cded544c0293aadd0e8"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"d1231bad6610fad83714817071300313e86a0e43","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    for deliverable_name, deliverable_data in deliverables.items():"},{"line_number":84,"context_line":"        # Ensure that the repositories has no content."},{"line_number":85,"context_line":"        repo_ignored \u003d False"},{"line_number":86,"context_line":"        for repo in deliverable_data[\u0027repos\u0027]:"},{"line_number":87,"context_line":"            for ir in IGNORED_REPOS:"},{"line_number":88,"context_line":"                if repo.startswith(ir):"}],"source_content_type":"text/x-python","patch_set":4,"id":"30e582fc_ef3cec2c","line":85,"in_reply_to":"2912351a_b465f7da","updated":"2024-06-14 06:08:40.000000000","message":"Done","commit_id":"1df33167c4ac0430090e9cded544c0293aadd0e8"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"c81e0b921e1ec2639c41712121d6d6e4a445a42d","unresolved":true,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    for deliverable_name, deliverable_data in deliverables.items():"},{"line_number":84,"context_line":"        # Ensure that the repositories has no content."},{"line_number":85,"context_line":"        repo_ignored \u003d False"},{"line_number":86,"context_line":"        for repo in deliverable_data[\u0027repos\u0027]:"},{"line_number":87,"context_line":"            for ir in IGNORED_REPOS:"},{"line_number":88,"context_line":"                if repo.startswith(ir):"}],"source_content_type":"text/x-python","patch_set":4,"id":"2912351a_b465f7da","line":85,"in_reply_to":"b9fface4_08fc7284","updated":"2024-06-13 19:01:00.000000000","message":"If repo_ignored is True then I am continue the loop @ L94 which works fine for the case where it will come back to the for loop @L83 and reset the repo_ignored but it will not work if any deliverable has more than one repos.\n\nNice catch, done.","commit_id":"1df33167c4ac0430090e9cded544c0293aadd0e8"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"68d90f5c951f3cfcca3668db511c13ee16ad1536","unresolved":true,"context_lines":[{"line_number":38,"context_line":"    \u0027openstack/python-magnetodbclient\u0027,"},{"line_number":39,"context_line":"    \u0027openstack/refstack\u0027,"},{"line_number":40,"context_line":"    \u0027openstack/salt\u0027,"},{"line_number":41,"context_line":"    \u0027openstack/security-doc\u0027]"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"parser \u003d argparse.ArgumentParser()"},{"line_number":44,"context_line":"parser.add_argument("}],"source_content_type":"text/x-python","patch_set":5,"id":"e0f1462b_5912cc03","line":41,"range":{"start_line":41,"start_character":28,"end_line":41,"end_character":29},"updated":"2024-06-18 19:03:05.000000000","message":"nit:\n```suggestion\n    \u0027openstack/security-doc\u0027,\n]\n```","commit_id":"aa230b6bbd076b0c26ebd79939f05844db6e1cff"}]}
