)]}'
{"openstack_governance/governance.py":[{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"cffa8bf6520fc55fc5e21dccc25ced8aba56ceb9","unresolved":false,"context_lines":[{"line_number":126,"context_line":"                        for repo in wg_info"},{"line_number":127,"context_line":"                    }"},{"line_number":128,"context_line":"                }"},{"line_number":129,"context_line":"            except AttributeError:"},{"line_number":130,"context_line":"                # For some period of time reference/foundation-board-repos.yaml"},{"line_number":131,"context_line":"                # was the wrong data structure resulting in:"},{"line_number":132,"context_line":"                # AttributeError: \u0027list\u0027 object has no attribute \u0027partition\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_e3579527","line":129,"updated":"2018-12-19 07:15:12.000000000","message":"Compare:\n\n * http://git.openstack.org/cgit/openstack/governance/tree/reference/foundation-board-repos.yaml\n * http://git.openstack.org/cgit/openstack/governance/tree/reference/foundation-board-repos.yaml?h\u003dsept-2018-elections \n * http://git.openstack.org/cgit/openstack/governance/tree/reference/foundation-board-repos.yaml?h\u003daug-2018-elections","commit_id":"495b4a3faf3c3092e48ad763d0d62088080016b6"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"8209dcfb88927ecd39cef17171202e2c47bae9fa","unresolved":false,"context_lines":[{"line_number":136,"context_line":"                        tmp_list.append({\u0027repo\u0027: repo})"},{"line_number":137,"context_line":"                wg_info \u003d tmp_list"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"                team_data[wg_name] \u003d {"},{"line_number":140,"context_line":"                    \u0027deliverables\u0027: {"},{"line_number":141,"context_line":"                        repo[\u0027repo\u0027].partition(\u0027/\u0027)[-1]: {\u0027repos\u0027: [repo[\u0027repo\u0027]]}"},{"line_number":142,"context_line":"                        for repo in wg_info"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_89559b53","line":139,"updated":"2018-12-07 14:00:24.000000000","message":"This block is the same as the one in the try/except. I wonder if we can test for the old data format explicitly before line 122, do the work on lines 133-137 if we find it, and then only have 1 copy of this? Alternatively, we could use a different generator expression to build the deliverables list based on the other data structure. I think the only difference is that the repo entry isn\u0027t a dict but a str, right?","commit_id":"495b4a3faf3c3092e48ad763d0d62088080016b6"},{"author":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"change_message_id":"5c69ef103eb448f165280fe4080cdef270ce3247","unresolved":false,"context_lines":[{"line_number":169,"context_line":"    def from_remote_repo(cls, repo_url_base\u003dREPO_URL_BASE, gittag\u003dNone):"},{"line_number":170,"context_line":"        query_options \u003d {}"},{"line_number":171,"context_line":"        if gittag:"},{"line_number":172,"context_line":"            query_options.update({\u0027h\u0027: gittag})"},{"line_number":173,"context_line":"        team_url \u003d REPO_URL_BASE + \u0027/reference/projects.yaml\u0027"},{"line_number":174,"context_line":"        LOG.debug(\u0027fetching team data from %s\u0027, team_url)"},{"line_number":175,"context_line":"        r \u003d requests.get(team_url, params\u003dquery_options)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fdfeff1_ee194388","line":172,"updated":"2019-01-21 22:59:03.000000000","message":"We could replace this with calls to the Gitea API (or more likely some Python SDK for it), but I expect we\u0027d continue running the cgit interface in parallel to it for a transitional period.","commit_id":"e4196ed6ea925e81763859536aa077e805ca7eb2"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"fb36babe7be0a8c80306a2505058955fcb5ecbca","unresolved":false,"context_lines":[{"line_number":169,"context_line":"    def from_remote_repo(cls, repo_url_base\u003dREPO_URL_BASE, gittag\u003dNone):"},{"line_number":170,"context_line":"        query_options \u003d {}"},{"line_number":171,"context_line":"        if gittag:"},{"line_number":172,"context_line":"            query_options.update({\u0027h\u0027: gittag})"},{"line_number":173,"context_line":"        team_url \u003d REPO_URL_BASE + \u0027/reference/projects.yaml\u0027"},{"line_number":174,"context_line":"        LOG.debug(\u0027fetching team data from %s\u0027, team_url)"},{"line_number":175,"context_line":"        r \u003d requests.get(team_url, params\u003dquery_options)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fdfeff1_9583f256","line":172,"range":{"start_line":172,"start_character":33,"end_line":172,"end_character":46},"updated":"2019-01-21 09:20:26.000000000","message":"would this still work when repos will be migrated away from cgit? Should we think of being more flexible here?","commit_id":"e4196ed6ea925e81763859536aa077e805ca7eb2"},{"author":{"_account_id":17068,"name":"Jean-Philippe Evrard","email":"openstack@a.spamming.party","username":"evrardjp"},"change_message_id":"0414c8d61c797831eb27947227c1c3e9fdc4e9d5","unresolved":false,"context_lines":[{"line_number":169,"context_line":"    def from_remote_repo(cls, repo_url_base\u003dREPO_URL_BASE, gittag\u003dNone):"},{"line_number":170,"context_line":"        query_options \u003d {}"},{"line_number":171,"context_line":"        if gittag:"},{"line_number":172,"context_line":"            query_options.update({\u0027h\u0027: gittag})"},{"line_number":173,"context_line":"        team_url \u003d REPO_URL_BASE + \u0027/reference/projects.yaml\u0027"},{"line_number":174,"context_line":"        LOG.debug(\u0027fetching team data from %s\u0027, team_url)"},{"line_number":175,"context_line":"        r \u003d requests.get(team_url, params\u003dquery_options)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fdfeff1_6397a192","line":172,"in_reply_to":"9fdfeff1_54325ef3","updated":"2019-01-22 12:26:30.000000000","message":"Agreed there.","commit_id":"e4196ed6ea925e81763859536aa077e805ca7eb2"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"3f019ca2f9208b8b778677c5dba0d43ac0a75c03","unresolved":false,"context_lines":[{"line_number":169,"context_line":"    def from_remote_repo(cls, repo_url_base\u003dREPO_URL_BASE, gittag\u003dNone):"},{"line_number":170,"context_line":"        query_options \u003d {}"},{"line_number":171,"context_line":"        if gittag:"},{"line_number":172,"context_line":"            query_options.update({\u0027h\u0027: gittag})"},{"line_number":173,"context_line":"        team_url \u003d REPO_URL_BASE + \u0027/reference/projects.yaml\u0027"},{"line_number":174,"context_line":"        LOG.debug(\u0027fetching team data from %s\u0027, team_url)"},{"line_number":175,"context_line":"        r \u003d requests.get(team_url, params\u003dquery_options)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fdfeff1_54325ef3","line":172,"in_reply_to":"9fdfeff1_ee194388","updated":"2019-01-22 00:48:25.000000000","message":"+1 to parallel operation because cgit URLs are in the docs, the code, and even notes we\u0027ve created all over the internet. That being said, I think we should add a in-line note that it might require being revisited","commit_id":"e4196ed6ea925e81763859536aa077e805ca7eb2"}]}
