)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":30637,"name":"Jan Kubovy","email":"jan.kubovy@bmw.de","username":"kubovy"},"change_message_id":"a7261621cfd4808547aeefe523dc4f3abe7b812a","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Dequeue changes via github checks API"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The Github checks API allows us to define custom actions on a check run."},{"line_number":10,"context_line":"With that, we can define a custom \"abort\" action, that enableds users to"},{"line_number":11,"context_line":"directly aborting a running change by clicking on a respective button in"},{"line_number":12,"context_line":"Github\u0027s checks tab."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"1fa4df85_ac5e0710","line":10,"range":{"start_line":10,"start_character":55,"end_line":10,"end_character":63},"updated":"2020-03-11 11:31:08.000000000","message":"nit: enables","commit_id":"24b0eaa363582c366823fdf4982aaa67d4ba2914"},{"author":{"_account_id":30637,"name":"Jan Kubovy","email":"jan.kubovy@bmw.de","username":"kubovy"},"change_message_id":"a7261621cfd4808547aeefe523dc4f3abe7b812a","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The Github checks API allows us to define custom actions on a check run."},{"line_number":10,"context_line":"With that, we can define a custom \"abort\" action, that enableds users to"},{"line_number":11,"context_line":"directly aborting a running change by clicking on a respective button in"},{"line_number":12,"context_line":"Github\u0027s checks tab."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"A click on this button will emit a Github webhook event that is now"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"1fa4df85_4c9993ce","line":11,"range":{"start_line":11,"start_character":9,"end_line":11,"end_character":17},"updated":"2020-03-11 11:31:08.000000000","message":"nit: abort","commit_id":"24b0eaa363582c366823fdf4982aaa67d4ba2914"}],"releasenotes/notes/github-checks-dequeue-643b7f757ca4d49b.yaml":[{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"641fd0436811520d2ce1e3c36a75d50fc770ea11","unresolved":false,"context_lines":[{"line_number":9,"context_line":"    aborted check runs will get \"lost in space\". Meaning, the dequeue event"},{"line_number":10,"context_line":"    won\u0027t update the check run and it will stay in state \"in progress\". You"},{"line_number":11,"context_line":"    could configure your Github driver to trigger on PR comments and use those"},{"line_number":12,"context_line":"    to trigger a recheck/regate/... to re-run the stuck check run."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"ff570b3c_59096d2a","line":12,"updated":"2020-05-12 15:45:08.000000000","message":"How about adding a dequeue reporter?  We added \"enqueue\" for the Gerrit checks API, we could likely use a dequeue for both gerrit and github checks.","commit_id":"dd8676ac9b0e83fea6b7ef9e0b5a8587b3a79665"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"1ff29047b2db3e7690af9794fb708f575ca032cf","unresolved":false,"context_lines":[{"line_number":9,"context_line":"    aborted check runs will get \"lost in space\". Meaning, the dequeue event"},{"line_number":10,"context_line":"    won\u0027t update the check run and it will stay in state \"in progress\". You"},{"line_number":11,"context_line":"    could configure your Github driver to trigger on PR comments and use those"},{"line_number":12,"context_line":"    to trigger a recheck/regate/... to re-run the stuck check run."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"ff570b3c_392d9943","line":12,"updated":"2020-05-12 15:53:36.000000000","message":"Oh that\u0027s in https://review.opendev.org/711023  -- maybe we should merge that first then we don\u0027t need to put this in the release note?","commit_id":"dd8676ac9b0e83fea6b7ef9e0b5a8587b3a79665"},{"author":{"_account_id":27952,"name":"Felix Edel","email":"felix.edel@bmw.de","username":"felix.schmidt"},"change_message_id":"0455004de99f937cdf115ea778e7ef93a02a4524","unresolved":false,"context_lines":[{"line_number":9,"context_line":"    aborted check runs will get \"lost in space\". Meaning, the dequeue event"},{"line_number":10,"context_line":"    won\u0027t update the check run and it will stay in state \"in progress\". You"},{"line_number":11,"context_line":"    could configure your Github driver to trigger on PR comments and use those"},{"line_number":12,"context_line":"    to trigger a recheck/regate/... to re-run the stuck check run."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"ff570b3c_bcd4e9be","line":12,"in_reply_to":"ff570b3c_392d9943","updated":"2020-05-13 05:38:56.000000000","message":"Yes, I can update the release note if we merge https://review.opendev.org/711023 before this one.","commit_id":"dd8676ac9b0e83fea6b7ef9e0b5a8587b3a79665"}],"zuul/driver/github/githubconnection.py":[{"author":{"_account_id":27582,"name":"Simon Westphahl","email":"simon.westphahl@bmw.de","username":"simon.westphahl"},"change_message_id":"07e913240e8ac05e68e1e3ec875795aa0fd8bd73","unresolved":false,"context_lines":[{"line_number":627,"context_line":"        event.check_run \u003d check_run_tuple"},{"line_number":628,"context_line":"        return event"},{"line_number":629,"context_line":""},{"line_number":630,"context_line":"    def _dequeue_check_run(self, check_run, project):"},{"line_number":631,"context_line":"        # Extract necessary values from the check\u0027s external id to dequeue"},{"line_number":632,"context_line":"        # the corresponding change in Zuul"},{"line_number":633,"context_line":"        dequeue_attrs \u003d json.loads(check_run[\"external_id\"])"}],"source_content_type":"text/x-python","patch_set":6,"id":"1fa4df85_32540021","line":630,"updated":"2020-03-05 14:16:53.000000000","message":"nit: maybe _check_run_action_to_event() or something along those lines would be a better name for this method (just to make it clear that we are creating an event)","commit_id":"092fb6a2d287441f1d21bf533f3a2e085867c054"}],"zuul/driver/github/githubreporter.py":[{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"641fd0436811520d2ce1e3c36a75d50fc770ea11","unresolved":false,"context_lines":[{"line_number":241,"context_line":"            {"},{"line_number":242,"context_line":"                \"tenant\": item.pipeline.tenant.name,"},{"line_number":243,"context_line":"                \"pipeline\": item.pipeline.name,"},{"line_number":244,"context_line":"                \"queue\": item.queue.name,"},{"line_number":245,"context_line":"                \"change\": item.change.number,"},{"line_number":246,"context_line":"            }"},{"line_number":247,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":9,"id":"ff570b3c_390e3934","line":244,"updated":"2020-05-12 15:45:08.000000000","message":"Queue seems risky here, and likely to change out from under us.\n\nSince what we really want to do is dequeue the item, how about we give every item a uuid, and use that instead?","commit_id":"dd8676ac9b0e83fea6b7ef9e0b5a8587b3a79665"},{"author":{"_account_id":27952,"name":"Felix Edel","email":"felix.edel@bmw.de","username":"felix.schmidt"},"change_message_id":"0455004de99f937cdf115ea778e7ef93a02a4524","unresolved":false,"context_lines":[{"line_number":241,"context_line":"            {"},{"line_number":242,"context_line":"                \"tenant\": item.pipeline.tenant.name,"},{"line_number":243,"context_line":"                \"pipeline\": item.pipeline.name,"},{"line_number":244,"context_line":"                \"queue\": item.queue.name,"},{"line_number":245,"context_line":"                \"change\": item.change.number,"},{"line_number":246,"context_line":"            }"},{"line_number":247,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":9,"id":"ff570b3c_7cf37174","line":244,"in_reply_to":"ff570b3c_390e3934","updated":"2020-05-13 05:38:56.000000000","message":"I was just wondering why I used the queue here at all, because originally I intended to use the same parameters as the dequeue command in the zuul cli. So I looked up the other code place where the dequeue event is built from the external_id and I think that the \"queue\" here is just a leftover from testing as it\u0027s never evaluated. I will check that again and remove it if my assumption is correct.\n\nIn that case, I don\u0027t think we need add an additional uuid for the QueueItem here. Although it would simplify this part, we would need another lookup mechanism to find a QueueItem by its uuid. Unless there are other use cases for that I would not add this as the zuul cli dequeue also works without that additional id.","commit_id":"dd8676ac9b0e83fea6b7ef9e0b5a8587b3a79665"}],"zuul/scheduler.py":[{"author":{"_account_id":27582,"name":"Simon Westphahl","email":"simon.westphahl@bmw.de","username":"simon.westphahl"},"change_message_id":"07e913240e8ac05e68e1e3ec875795aa0fd8bd73","unresolved":false,"context_lines":[{"line_number":454,"context_line":"        self.statsd.gauge(\u0027zuul.executors.jobs_queued\u0027, execute_queue)"},{"line_number":455,"context_line":""},{"line_number":456,"context_line":"    def addEvent(self, event):"},{"line_number":457,"context_line":"        self.log.debug(\"FE: addEvent() %s\", event)"},{"line_number":458,"context_line":"        # Check the event type and put it in the corresponding queue"},{"line_number":459,"context_line":"        if isinstance(event, TriggerEvent):"},{"line_number":460,"context_line":"            return self._addTriggerEvent(event)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1fa4df85_9d24e5b0","line":457,"updated":"2020-03-05 14:16:53.000000000","message":"debug leftover?","commit_id":"092fb6a2d287441f1d21bf533f3a2e085867c054"},{"author":{"_account_id":27582,"name":"Simon Westphahl","email":"simon.westphahl@bmw.de","username":"simon.westphahl"},"change_message_id":"07e913240e8ac05e68e1e3ec875795aa0fd8bd73","unresolved":false,"context_lines":[{"line_number":466,"context_line":"            return self._addResultEvent(event)"},{"line_number":467,"context_line":""},{"line_number":468,"context_line":"        self.log.warning("},{"line_number":469,"context_line":"            \"Unable to found appropriate queue for event %s\", event"},{"line_number":470,"context_line":"        )"},{"line_number":471,"context_line":""},{"line_number":472,"context_line":"    def _addTriggerEvent(self, event):"}],"source_content_type":"text/x-python","patch_set":6,"id":"1fa4df85_fd32b9f1","line":469,"range":{"start_line":469,"start_character":23,"end_line":469,"end_character":28},"updated":"2020-03-05 14:16:53.000000000","message":"nit: typo \"find\"","commit_id":"092fb6a2d287441f1d21bf533f3a2e085867c054"},{"author":{"_account_id":27582,"name":"Simon Westphahl","email":"simon.westphahl@bmw.de","username":"simon.westphahl"},"change_message_id":"07e913240e8ac05e68e1e3ec875795aa0fd8bd73","unresolved":false,"context_lines":[{"line_number":470,"context_line":"        )"},{"line_number":471,"context_line":""},{"line_number":472,"context_line":"    def _addTriggerEvent(self, event):"},{"line_number":473,"context_line":"        self.log.debug(\"FE: _addTriggerEvent()\")"},{"line_number":474,"context_line":"        self.trigger_event_queue.put(event)"},{"line_number":475,"context_line":"        self.wake_event.set()"},{"line_number":476,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1fa4df85_3d42913f","line":473,"updated":"2020-03-05 14:16:53.000000000","message":"debug leftover?","commit_id":"092fb6a2d287441f1d21bf533f3a2e085867c054"},{"author":{"_account_id":27582,"name":"Simon Westphahl","email":"simon.westphahl@bmw.de","username":"simon.westphahl"},"change_message_id":"07e913240e8ac05e68e1e3ec875795aa0fd8bd73","unresolved":false,"context_lines":[{"line_number":475,"context_line":"        self.wake_event.set()"},{"line_number":476,"context_line":""},{"line_number":477,"context_line":"    def _addManagementEvent(self, event):"},{"line_number":478,"context_line":"        self.log.debug(\"FE: _addManagementEvent()\")"},{"line_number":479,"context_line":"        self.management_event_queue.put(event)"},{"line_number":480,"context_line":"        self.wake_event.set()"},{"line_number":481,"context_line":"        event.wait()"}],"source_content_type":"text/x-python","patch_set":6,"id":"1fa4df85_5d3f4db3","line":478,"updated":"2020-03-05 14:16:53.000000000","message":"debug leftover?","commit_id":"092fb6a2d287441f1d21bf533f3a2e085867c054"},{"author":{"_account_id":27582,"name":"Simon Westphahl","email":"simon.westphahl@bmw.de","username":"simon.westphahl"},"change_message_id":"07e913240e8ac05e68e1e3ec875795aa0fd8bd73","unresolved":false,"context_lines":[{"line_number":481,"context_line":"        event.wait()"},{"line_number":482,"context_line":""},{"line_number":483,"context_line":"    def _addResultEvent(self, event):"},{"line_number":484,"context_line":"        self.log.debug(\"FE: _addResultEvent()\")"},{"line_number":485,"context_line":"        self.result_event_queue.put(event)"},{"line_number":486,"context_line":"        self.wake_event.set()"},{"line_number":487,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1fa4df85_1d455543","line":484,"updated":"2020-03-05 14:16:53.000000000","message":"debug leftover?","commit_id":"092fb6a2d287441f1d21bf533f3a2e085867c054"},{"author":{"_account_id":16068,"name":"Tobias Henkel","email":"tobias.henkel@bmw.de","username":"tobias.henkel"},"change_message_id":"0d561f58b44d5ba8b53d629032053d6f6d19c614","unresolved":false,"context_lines":[{"line_number":467,"context_line":"            return self._addResultEvent(event)"},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"        self.log.warning("},{"line_number":470,"context_line":"            \"Unable to found appropriate queue for event %s\", event"},{"line_number":471,"context_line":"        )"},{"line_number":472,"context_line":""},{"line_number":473,"context_line":"    def _addTriggerEvent(self, event):"}],"source_content_type":"text/x-python","patch_set":9,"id":"ff570b3c_53282c33","line":470,"range":{"start_line":470,"start_character":23,"end_line":470,"end_character":28},"updated":"2020-05-12 15:04:54.000000000","message":"nit: find","commit_id":"dd8676ac9b0e83fea6b7ef9e0b5a8587b3a79665"}]}
