)]}'
{"tests/unit/test_gitlab_driver.py":[{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"f0f22a991ec3e958773dc3e35f3922975564b910","unresolved":false,"context_lines":[{"line_number":58,"context_line":"#                         self.getJobFromHistory(\u0027project-test1\u0027).result)"},{"line_number":59,"context_line":"#        self.assertEqual(\u0027SUCCESS\u0027,"},{"line_number":60,"context_line":"#                         self.getJobFromHistory(\u0027project-test2\u0027).result)"},{"line_number":61,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_de173e54","line":61,"updated":"2019-10-21 16:20:01.000000000","message":"?","commit_id":"f246f390f86b9b60a7cf8156f7283884be7d7426"},{"author":{"_account_id":16068,"name":"Tobias Henkel","email":"tobias.henkel@bmw.de","username":"tobias.henkel"},"change_message_id":"e198b27f2b875f98bbfdb8723695ca1b638d1992","unresolved":false,"context_lines":[{"line_number":22,"context_line":"    config_file \u003d \u0027zuul-gitlab-driver.conf\u0027"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    def setUp(self):"},{"line_number":25,"context_line":"        super(TestGitlabWebhook, self).setUp()"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"        # Start the web server"},{"line_number":28,"context_line":"        self.web \u003d self.useFixture("}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_256ba8f0","line":25,"updated":"2020-01-18 16:02:20.000000000","message":"nit: python 3 allows to write this simpler:\n\n  super().setUp()","commit_id":"7811dbf92738e05429a64b4bf0a5bb107fa3996a"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"e1e2b7b07235059cda23f54b514c014f022c3d86","unresolved":false,"context_lines":[{"line_number":22,"context_line":"    config_file \u003d \u0027zuul-gitlab-driver.conf\u0027"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    def setUp(self):"},{"line_number":25,"context_line":"        super(TestGitlabWebhook, self).setUp()"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"        # Start the web server"},{"line_number":28,"context_line":"        self.web \u003d self.useFixture("}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_a6f09f61","line":25,"in_reply_to":"3fa7e38b_256ba8f0","updated":"2020-02-12 17:33:25.000000000","message":"Done","commit_id":"7811dbf92738e05429a64b4bf0a5bb107fa3996a"}],"zuul/driver/gitlab/gitlabconnection.py":[{"author":{"_account_id":16068,"name":"Tobias Henkel","email":"tobias.henkel@bmw.de","username":"tobias.henkel"},"change_message_id":"e198b27f2b875f98bbfdb8723695ca1b638d1992","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    def start(self):"},{"line_number":93,"context_line":"        self._running \u003d True"},{"line_number":94,"context_line":"        server \u003d self.config.get(\u0027gearman\u0027, \u0027server\u0027)"},{"line_number":95,"context_line":"        port \u003d get_default(self.config, \u0027gearman\u0027, \u0027port\u0027, 4730)"},{"line_number":96,"context_line":"        ssl_key \u003d get_default(self.config, \u0027gearman\u0027, \u0027ssl_key\u0027)"},{"line_number":97,"context_line":"        ssl_cert \u003d get_default(self.config, \u0027gearman\u0027, \u0027ssl_cert\u0027)"},{"line_number":98,"context_line":"        ssl_ca \u003d get_default(self.config, \u0027gearman\u0027, \u0027ssl_ca\u0027)"},{"line_number":99,"context_line":"        self.gearman \u003d gear.TextWorker(\u0027Zuul Gitlab Connector\u0027)"},{"line_number":100,"context_line":"        self.log.debug(\"Connect to gearman\")"},{"line_number":101,"context_line":"        self.gearman.addServer(server, port, ssl_key, ssl_cert, ssl_ca)"},{"line_number":102,"context_line":"        self.log.debug(\"Waiting for server\")"},{"line_number":103,"context_line":"        self.gearman.waitForServer()"},{"line_number":104,"context_line":"        self.log.debug(\"Registering\")"},{"line_number":105,"context_line":"        for job in self.jobs:"},{"line_number":106,"context_line":"            self.gearman.registerFunction(job)"},{"line_number":107,"context_line":"        self.thread.start()"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def stop(self):"},{"line_number":110,"context_line":"        self._running \u003d False"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_857b7cbd","line":107,"range":{"start_line":94,"start_character":0,"end_line":107,"end_character":27},"updated":"2020-01-18 16:02:20.000000000","message":"The gearman worker handling has been refactored and unified (and simplified) throughout the codebase in [1]. The github driver looks quite similar in that regard. You can look how this is implemented there.\n\n[1] https://review.opendev.org/664948","commit_id":"7811dbf92738e05429a64b4bf0a5bb107fa3996a"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"e1e2b7b07235059cda23f54b514c014f022c3d86","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    def start(self):"},{"line_number":93,"context_line":"        self._running \u003d True"},{"line_number":94,"context_line":"        server \u003d self.config.get(\u0027gearman\u0027, \u0027server\u0027)"},{"line_number":95,"context_line":"        port \u003d get_default(self.config, \u0027gearman\u0027, \u0027port\u0027, 4730)"},{"line_number":96,"context_line":"        ssl_key \u003d get_default(self.config, \u0027gearman\u0027, \u0027ssl_key\u0027)"},{"line_number":97,"context_line":"        ssl_cert \u003d get_default(self.config, \u0027gearman\u0027, \u0027ssl_cert\u0027)"},{"line_number":98,"context_line":"        ssl_ca \u003d get_default(self.config, \u0027gearman\u0027, \u0027ssl_ca\u0027)"},{"line_number":99,"context_line":"        self.gearman \u003d gear.TextWorker(\u0027Zuul Gitlab Connector\u0027)"},{"line_number":100,"context_line":"        self.log.debug(\"Connect to gearman\")"},{"line_number":101,"context_line":"        self.gearman.addServer(server, port, ssl_key, ssl_cert, ssl_ca)"},{"line_number":102,"context_line":"        self.log.debug(\"Waiting for server\")"},{"line_number":103,"context_line":"        self.gearman.waitForServer()"},{"line_number":104,"context_line":"        self.log.debug(\"Registering\")"},{"line_number":105,"context_line":"        for job in self.jobs:"},{"line_number":106,"context_line":"            self.gearman.registerFunction(job)"},{"line_number":107,"context_line":"        self.thread.start()"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def stop(self):"},{"line_number":110,"context_line":"        self._running \u003d False"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_86a32344","line":107,"range":{"start_line":94,"start_character":0,"end_line":107,"end_character":27},"in_reply_to":"3fa7e38b_857b7cbd","updated":"2020-02-12 17:33:25.000000000","message":"Done","commit_id":"7811dbf92738e05429a64b4bf0a5bb107fa3996a"},{"author":{"_account_id":16068,"name":"Tobias Henkel","email":"tobias.henkel@bmw.de","username":"tobias.henkel"},"change_message_id":"e198b27f2b875f98bbfdb8723695ca1b638d1992","unresolved":false,"context_lines":[{"line_number":115,"context_line":"        self.gearman.shutdown()"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"class GitlabEventConnector(threading.Thread):"},{"line_number":119,"context_line":"    \"\"\"Move events from Gitlab into the scheduler\"\"\""},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    log \u003d logging.getLogger(\"zuul.GitlabEventConnector\")"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_4547c47b","line":118,"updated":"2020-01-18 16:02:20.000000000","message":"When using the gitlab driver at scale you might or might not want to think about parallelizing the event processing as in [1]. This is not meant for this change but just as an idea for the future in case you face event processing lags.\n\n[1] https://review.opendev.org/666982","commit_id":"7811dbf92738e05429a64b4bf0a5bb107fa3996a"}]}
