)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6889,"name":"Fabien Boucher","email":"fboucher@redhat.com","username":"fabien-boucher"},"change_message_id":"58b74f13cb4f1f2ae2809f59c0eed8aaa36437be","unresolved":false,"context_lines":[{"line_number":9,"context_line":"\u0027approvals_left\u0027 key is not present when \u0027Required Merge Request"},{"line_number":10,"context_line":"Approvals\u0027 feature isn\u0027t available. With enterprise edition,"},{"line_number":11,"context_line":"\u0027approved\u0027 key can not be used since the related value is always true"},{"line_number":12,"context_line":"when \u0027approvals_required\u0027 is equal to zero."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The exception was:"},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9f560f44_2d18001c","line":12,"updated":"2020-09-11 15:32:37.000000000","message":"Ok, I\u0027ve did all my testing with gitlab.com via a free account. So I cannot say for enterprise version.\n\nI cannot remember why I decided to use \u0027approvals_lefts\u0027 instead of \u0027approved\u0027 field, but my test today showed me that a PR that does not require any approval then \u0027approved\u0027 is to true, and this seems good to me. If at least one approval is needed then \u0027approved\u0027 is set to false and then to true if all approval rules are satisfied.\n\nSo what about just using \u0027approved\u0027 instead of \u0027approval_left\u0027 ?","commit_id":"17f07b1eca88c5b1ba7374926567ba5ea6b154e2"},{"author":{"_account_id":25403,"name":"Pierre-Louis Bonicoli","email":"pierre-louis.bonicoli@libregerbil.fr","username":"pilou"},"change_message_id":"7ef17784991b2474c27b2a98ba55dafa52a10f3b","unresolved":false,"context_lines":[{"line_number":9,"context_line":"\u0027approvals_left\u0027 key is not present when \u0027Required Merge Request"},{"line_number":10,"context_line":"Approvals\u0027 feature isn\u0027t available. With enterprise edition,"},{"line_number":11,"context_line":"\u0027approved\u0027 key can not be used since the related value is always true"},{"line_number":12,"context_line":"when \u0027approvals_required\u0027 is equal to zero."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The exception was:"},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9f560f44_08952a40","line":12,"in_reply_to":"9f560f44_2d18001c","updated":"2020-09-11 16:11:34.000000000","message":"\u003e Ok, I\u0027ve did all my testing with gitlab.com via a free account. So\n \u003e I cannot say for enterprise version.\n\nI have tested this patch with a \"self hosted\" GitLab (https://forge.tedomum.net/, gitlab version: 13.3.1).\n\n \u003e my test today showed me that a PR that does\n \u003e not require any approval then \u0027approved\u0027 is to true, and this seems\n \u003e good to me. If at least one approval is needed then \u0027approved\u0027 is\n \u003e set to false and then to true if all approval rules are satisfied.\n \u003e \n \u003e So what about just using \u0027approved\u0027 instead of \u0027approval_left\u0027 ?\n\n\u0027approved\u0027 being true when nobody approved a merge-request seems to me to be an unexpected/surprising behavior, even if this merge-request does not require any approval. Using \u0027approved\u0027 would require an update of the documentation related to the Zuul gitlab driver. What do you think ?","commit_id":"17f07b1eca88c5b1ba7374926567ba5ea6b154e2"}],"tests/base.py":[{"author":{"_account_id":6889,"name":"Fabien Boucher","email":"fboucher@redhat.com","username":"fabien-boucher"},"change_message_id":"344b870bb789cca890390a745bd93a258826ad1b","unresolved":false,"context_lines":[{"line_number":1676,"context_line":"            r\u0027.+/projects/(.+)/merge_requests/(\\d+)/approvals$\u0027, url)"},{"line_number":1677,"context_line":"        if match:"},{"line_number":1678,"context_line":"            mr \u003d self._get_mr(match)"},{"line_number":1679,"context_line":"            if \u0027community-edition\u0027 not in mr.labels:"},{"line_number":1680,"context_line":"                return {"},{"line_number":1681,"context_line":"                    \u0027approvals_left\u0027: 0 if mr.approved else 1,"},{"line_number":1682,"context_line":"                }, 200, \"\", \"GET\""}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_e1f411f4","line":1679,"range":{"start_line":1679,"start_character":16,"end_line":1679,"end_character":34},"updated":"2020-09-16 07:58:41.000000000","message":"I would have preferred to use a different switch mechanism. Indeed in a real use case this label is not set.\nThen I think it should be done in an other way. You could add a community_edition: Bool in FakeGitlabConnection and pass it to FakeGitlabAPIClient. Then react on it to send or not \u0027approved\u0027 instead of \u0027approvals_left\u0027. The test will set the self.fake_gitlab.community_edition \u003d True instead of the label.","commit_id":"17f07b1eca88c5b1ba7374926567ba5ea6b154e2"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"298a0aebb7aa93c9e54a1a219b716796668ff6b2","unresolved":false,"context_lines":[{"line_number":1560,"context_line":"                                                   connection_config)"},{"line_number":1561,"context_line":"        self.merge_requests \u003d changes_db"},{"line_number":1562,"context_line":"        self.gl_client \u003d FakeGitlabAPIClient(self.baseurl, self.api_token,"},{"line_number":1563,"context_line":"            community_edition, merge_requests_db\u003dchanges_db)"},{"line_number":1564,"context_line":"        self.rpcclient \u003d rpcclient"},{"line_number":1565,"context_line":"        self.upstream_root \u003d upstream_root"},{"line_number":1566,"context_line":"        self.mr_number \u003d 0"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_08f20570","line":1563,"updated":"2020-09-16 10:37:49.000000000","message":"linters: E128 continuation line under-indented for visual indent","commit_id":"6edf8e8b9be0f3b68adbcbcb22dc71c220bd029b"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"298a0aebb7aa93c9e54a1a219b716796668ff6b2","unresolved":false,"context_lines":[{"line_number":1633,"context_line":"    log \u003d logging.getLogger(\"zuul.test.FakeGitlabAPIClient\")"},{"line_number":1634,"context_line":""},{"line_number":1635,"context_line":"    def __init__(self, baseurl, api_token, community_edition,"},{"line_number":1636,"context_line":"            merge_requests_db\u003d{}):"},{"line_number":1637,"context_line":"        super(FakeGitlabAPIClient, self).__init__(baseurl, api_token)"},{"line_number":1638,"context_line":"        self.merge_requests \u003d merge_requests_db"},{"line_number":1639,"context_line":"        self.community_edition \u003d community_edition"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_68e741ae","line":1636,"updated":"2020-09-16 10:37:49.000000000","message":"linters: E128 continuation line under-indented for visual indent","commit_id":"6edf8e8b9be0f3b68adbcbcb22dc71c220bd029b"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"298a0aebb7aa93c9e54a1a219b716796668ff6b2","unresolved":false,"context_lines":[{"line_number":4024,"context_line":"                self.rpcclient,"},{"line_number":4025,"context_line":"                changes_db\u003ddb,"},{"line_number":4026,"context_line":"                upstream_root\u003dself.upstream_root,"},{"line_number":4027,"context_line":"                community_edition \u003d community_edition)"},{"line_number":4028,"context_line":"            self.additional_event_queues.append(con.event_queue)"},{"line_number":4029,"context_line":"            setattr(self, \u0027fake_\u0027 + name, con)"},{"line_number":4030,"context_line":"            return con"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_48ecfd8e","line":4027,"updated":"2020-09-16 10:37:49.000000000","message":"linters: E251 unexpected spaces around keyword / parameter equals","commit_id":"6edf8e8b9be0f3b68adbcbcb22dc71c220bd029b"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"298a0aebb7aa93c9e54a1a219b716796668ff6b2","unresolved":false,"context_lines":[{"line_number":4024,"context_line":"                self.rpcclient,"},{"line_number":4025,"context_line":"                changes_db\u003ddb,"},{"line_number":4026,"context_line":"                upstream_root\u003dself.upstream_root,"},{"line_number":4027,"context_line":"                community_edition \u003d community_edition)"},{"line_number":4028,"context_line":"            self.additional_event_queues.append(con.event_queue)"},{"line_number":4029,"context_line":"            setattr(self, \u0027fake_\u0027 + name, con)"},{"line_number":4030,"context_line":"            return con"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_a8003937","line":4027,"updated":"2020-09-16 10:37:49.000000000","message":"linters: E251 unexpected spaces around keyword / parameter equals","commit_id":"6edf8e8b9be0f3b68adbcbcb22dc71c220bd029b"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"20658cdea2040d311949ea0af4234623f4f75cfb","unresolved":false,"context_lines":[{"line_number":1560,"context_line":"                                                   connection_config)"},{"line_number":1561,"context_line":"        self.merge_requests \u003d changes_db"},{"line_number":1562,"context_line":"        self.gl_client \u003d FakeGitlabAPIClient(self.baseurl, self.api_token,"},{"line_number":1563,"context_line":"            community_edition, merge_requests_db\u003dchanges_db)"},{"line_number":1564,"context_line":"        self.rpcclient \u003d rpcclient"},{"line_number":1565,"context_line":"        self.upstream_root \u003d upstream_root"},{"line_number":1566,"context_line":"        self.mr_number \u003d 0"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_0e916d47","line":1563,"updated":"2020-09-16 12:00:09.000000000","message":"linters: E128 continuation line under-indented for visual indent","commit_id":"4c91ec02eb104c1c6d1322d69be64491872ff2c4"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"20658cdea2040d311949ea0af4234623f4f75cfb","unresolved":false,"context_lines":[{"line_number":1633,"context_line":"    log \u003d logging.getLogger(\"zuul.test.FakeGitlabAPIClient\")"},{"line_number":1634,"context_line":""},{"line_number":1635,"context_line":"    def __init__(self, baseurl, api_token, community_edition,"},{"line_number":1636,"context_line":"            merge_requests_db\u003d{}):"},{"line_number":1637,"context_line":"        super(FakeGitlabAPIClient, self).__init__(baseurl, api_token)"},{"line_number":1638,"context_line":"        self.merge_requests \u003d merge_requests_db"},{"line_number":1639,"context_line":"        self.community_edition \u003d community_edition"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_6e962941","line":1636,"updated":"2020-09-16 12:00:09.000000000","message":"linters: E128 continuation line under-indented for visual indent","commit_id":"4c91ec02eb104c1c6d1322d69be64491872ff2c4"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"20658cdea2040d311949ea0af4234623f4f75cfb","unresolved":false,"context_lines":[{"line_number":4024,"context_line":"                self.rpcclient,"},{"line_number":4025,"context_line":"                changes_db\u003ddb,"},{"line_number":4026,"context_line":"                upstream_root\u003dself.upstream_root,"},{"line_number":4027,"context_line":"                community_edition \u003d community_edition)"},{"line_number":4028,"context_line":"            self.additional_event_queues.append(con.event_queue)"},{"line_number":4029,"context_line":"            setattr(self, \u0027fake_\u0027 + name, con)"},{"line_number":4030,"context_line":"            return con"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_4e9b6565","line":4027,"updated":"2020-09-16 12:00:09.000000000","message":"linters: E251 unexpected spaces around keyword / parameter equals","commit_id":"4c91ec02eb104c1c6d1322d69be64491872ff2c4"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"20658cdea2040d311949ea0af4234623f4f75cfb","unresolved":false,"context_lines":[{"line_number":4024,"context_line":"                self.rpcclient,"},{"line_number":4025,"context_line":"                changes_db\u003ddb,"},{"line_number":4026,"context_line":"                upstream_root\u003dself.upstream_root,"},{"line_number":4027,"context_line":"                community_edition \u003d community_edition)"},{"line_number":4028,"context_line":"            self.additional_event_queues.append(con.event_queue)"},{"line_number":4029,"context_line":"            setattr(self, \u0027fake_\u0027 + name, con)"},{"line_number":4030,"context_line":"            return con"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_ae9fa14f","line":4027,"updated":"2020-09-16 12:00:09.000000000","message":"linters: E251 unexpected spaces around keyword / parameter equals","commit_id":"4c91ec02eb104c1c6d1322d69be64491872ff2c4"}],"tests/unit/test_gitlab_driver.py":[{"author":{"_account_id":6889,"name":"Fabien Boucher","email":"fboucher@redhat.com","username":"fabien-boucher"},"change_message_id":"1b1dce27b1fa44b6fa9c2f271f1fbd34d82dcefc","unresolved":false,"context_lines":[{"line_number":564,"context_line":""},{"line_number":565,"context_line":"        A \u003d self.fake_gitlab_ce.openFakeMergeRequest("},{"line_number":566,"context_line":"            \u0027org/project2\u0027, \u0027master\u0027, \u0027A\u0027)"},{"line_number":567,"context_line":""},{"line_number":568,"context_line":"        self.fake_gitlab_ce.emitEvent(A.getMergeRequestOpenedEvent())"},{"line_number":569,"context_line":"        self.waitUntilSettled()"},{"line_number":570,"context_line":"        self.assertEqual(0, len(self.history))"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f560f44_b9dec9d7","line":567,"updated":"2020-09-16 13:10:10.000000000","message":"Isn \u0027t it possible to just do here self.fake_gitlab.community_edition \u003d True instead of defining a new connection \"fake_gitlab_ce\" ?","commit_id":"26489facda694b0c0dba0612ab9461ae6e58b505"}]}
