)]}'
{"doc/source/admin/drivers/gerrit.rst":[{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"bbb5494f660b9ccf395dc03e809341298d5c5bc7","unresolved":false,"context_lines":[{"line_number":353,"context_line":"backward-compatible support will be provided and configurations may"},{"line_number":354,"context_line":"need to be updated frequently."},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"Caveats include (but are not limited to):"},{"line_number":357,"context_line":""},{"line_number":358,"context_line":"* This documentation is brief."},{"line_number":359,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"5faad753_9d8b7bc1","line":356,"updated":"2019-09-16 10:36:23.000000000","message":"I started to list questions about the caveats, but then realized they were all the same question. I suppose this is caveats with the current state of the checks plugin, and are potentially all things we want to see addressed before we consider the checks api and zuul\u0027s support for it stable, yes?","commit_id":"193db992f3dccea863e87aca0219660d6897a590"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"f94aca8939bc797249ac8017e98824b25c81195a","unresolved":false,"context_lines":[{"line_number":353,"context_line":"backward-compatible support will be provided and configurations may"},{"line_number":354,"context_line":"need to be updated frequently."},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"Caveats include (but are not limited to):"},{"line_number":357,"context_line":""},{"line_number":358,"context_line":"* This documentation is brief."},{"line_number":359,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa7e38b_9deec286","line":356,"updated":"2019-09-17 16:35:17.000000000","message":"Yes exactly.  I elaborated on future thoughts a bit.","commit_id":"193db992f3dccea863e87aca0219660d6897a590"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"f94aca8939bc797249ac8017e98824b25c81195a","unresolved":false,"context_lines":[{"line_number":355,"context_line":""},{"line_number":356,"context_line":"Caveats include (but are not limited to):"},{"line_number":357,"context_line":""},{"line_number":358,"context_line":"* This documentation is brief."},{"line_number":359,"context_line":""},{"line_number":360,"context_line":"* Access control for the `checks` API in Gerrit depends on a single"},{"line_number":361,"context_line":"  global administrative permission, ``administrateCheckers``.  This is"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa7e38b_3d030e45","line":358,"updated":"2019-09-17 16:35:17.000000000","message":"Obviously, we\u0027ll expand documentation when it\u0027s ready.","commit_id":"193db992f3dccea863e87aca0219660d6897a590"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"f94aca8939bc797249ac8017e98824b25c81195a","unresolved":false,"context_lines":[{"line_number":361,"context_line":"  global administrative permission, ``administrateCheckers``.  This is"},{"line_number":362,"context_line":"  required in order to use the `checks` API and can not be restricted"},{"line_number":363,"context_line":"  by project.  This means that any system using the `checks` API can"},{"line_number":364,"context_line":"  interfere with any other."},{"line_number":365,"context_line":""},{"line_number":366,"context_line":"* Checkers are restricted to a single project.  This means that a"},{"line_number":367,"context_line":"  system with many projects will require many checkers to be defined"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa7e38b_5d004a35","line":364,"updated":"2019-09-17 16:35:17.000000000","message":"Probably not a blocker for some systems, but certainly for a system with third-party CI\u0027s, especially less-than-completely-trusted ones.  No current effort to fix this; I think we should help with it once we get some of the other stuff out of the way.\n\nWearing my OpenDev hat -- this is a blocker for OpenDev third-party CI.","commit_id":"193db992f3dccea863e87aca0219660d6897a590"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"f94aca8939bc797249ac8017e98824b25c81195a","unresolved":false,"context_lines":[{"line_number":365,"context_line":""},{"line_number":366,"context_line":"* Checkers are restricted to a single project.  This means that a"},{"line_number":367,"context_line":"  system with many projects will require many checkers to be defined"},{"line_number":368,"context_line":"  in Gerrit -- one for each project+pipeline."},{"line_number":369,"context_line":""},{"line_number":370,"context_line":"* No support is provided for attaching checks to tags or commits,"},{"line_number":371,"context_line":"  meaning that tag, release, and post pipelines are unable to be used"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa7e38b_fdfc963f","line":368,"updated":"2019-09-17 16:35:17.000000000","message":"This is a blocker for OpenDev first-party CI.","commit_id":"193db992f3dccea863e87aca0219660d6897a590"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"bbb5494f660b9ccf395dc03e809341298d5c5bc7","unresolved":false,"context_lines":[{"line_number":369,"context_line":""},{"line_number":370,"context_line":"* No support is provided for attaching checks to tags or commits,"},{"line_number":371,"context_line":"  meaning that tag, release, and post pipelines are unable to be used"},{"line_number":372,"context_line":"  with the `checks` API and must rely on `stream-events`."},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"* Sub-checks are not implemented yet, so in order to see the results"},{"line_number":375,"context_line":"  of individual jobs on a change, users must either follow the"}],"source_content_type":"text/x-rst","patch_set":10,"id":"5faad753_7d8c7fd6","line":372,"range":{"start_line":372,"start_character":41,"end_line":372,"end_character":57},"updated":"2019-09-16 10:36:23.000000000","message":"Do we have a story for this for non-ssh gerrits yet? I suppose that woudl be the webhooks plugin?","commit_id":"193db992f3dccea863e87aca0219660d6897a590"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"f94aca8939bc797249ac8017e98824b25c81195a","unresolved":false,"context_lines":[{"line_number":369,"context_line":""},{"line_number":370,"context_line":"* No support is provided for attaching checks to tags or commits,"},{"line_number":371,"context_line":"  meaning that tag, release, and post pipelines are unable to be used"},{"line_number":372,"context_line":"  with the `checks` API and must rely on `stream-events`."},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"* Sub-checks are not implemented yet, so in order to see the results"},{"line_number":375,"context_line":"  of individual jobs on a change, users must either follow the"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa7e38b_1dfad241","line":372,"updated":"2019-09-17 16:35:17.000000000","message":"Yeah, I think webhooks and not using the checks plugin is the most likely near-term option there.  This might be a good opportunity to revisit the idea of reviewed tags though.  If that happened, that could integrate with the checks plugin.","commit_id":"193db992f3dccea863e87aca0219660d6897a590"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"fc7a58fff59e1bf8d02625c3a3c3514e4757edc8","unresolved":false,"context_lines":[{"line_number":369,"context_line":""},{"line_number":370,"context_line":"* No support is provided for attaching checks to tags or commits,"},{"line_number":371,"context_line":"  meaning that tag, release, and post pipelines are unable to be used"},{"line_number":372,"context_line":"  with the `checks` API and must rely on `stream-events`."},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"* Sub-checks are not implemented yet, so in order to see the results"},{"line_number":375,"context_line":"  of individual jobs on a change, users must either follow the"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa7e38b_5d7a8a24","line":372,"range":{"start_line":372,"start_character":41,"end_line":372,"end_character":57},"in_reply_to":"5faad753_7d8c7fd6","updated":"2019-09-17 16:34:59.000000000","message":"Seems like this is a fairly big deficiency in the gerrit checks api. Maybe we can work with them to extend it to more than change refs?","commit_id":"193db992f3dccea863e87aca0219660d6897a590"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"f94aca8939bc797249ac8017e98824b25c81195a","unresolved":false,"context_lines":[{"line_number":374,"context_line":"* Sub-checks are not implemented yet, so in order to see the results"},{"line_number":375,"context_line":"  of individual jobs on a change, users must either follow the"},{"line_number":376,"context_line":"  buildset link, or the pipeline must be configured to leave a"},{"line_number":377,"context_line":"  traditional comment."},{"line_number":378,"context_line":""},{"line_number":379,"context_line":"* Familiarity with the `checks` API is recommended."},{"line_number":380,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa7e38b_bd94dee9","line":377,"updated":"2019-09-17 16:35:17.000000000","message":"Spec in progress.","commit_id":"193db992f3dccea863e87aca0219660d6897a590"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"73b53768f515b814bcfb1fb0ab7347b1387aa3dc","unresolved":false,"context_lines":[{"line_number":376,"context_line":"  buildset link, or the pipeline must be configured to leave a"},{"line_number":377,"context_line":"  traditional comment."},{"line_number":378,"context_line":""},{"line_number":379,"context_line":"* Familiarity with the `checks` API is recommended."},{"line_number":380,"context_line":""},{"line_number":381,"context_line":"* Checkers may not be permanently deleted from Gerrit (only"},{"line_number":382,"context_line":"  \"soft-deleted\" so they no longer apply), so any experiments you"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa7e38b_dd50ba35","line":379,"updated":"2019-09-17 16:39:27.000000000","message":"Can do.  It\u0027s an abandoned change; I\u0027ll dig it up.","commit_id":"193db992f3dccea863e87aca0219660d6897a590"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"f94aca8939bc797249ac8017e98824b25c81195a","unresolved":false,"context_lines":[{"line_number":376,"context_line":"  buildset link, or the pipeline must be configured to leave a"},{"line_number":377,"context_line":"  traditional comment."},{"line_number":378,"context_line":""},{"line_number":379,"context_line":"* Familiarity with the `checks` API is recommended."},{"line_number":380,"context_line":""},{"line_number":381,"context_line":"* Checkers may not be permanently deleted from Gerrit (only"},{"line_number":382,"context_line":"  \"soft-deleted\" so they no longer apply), so any experiments you"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa7e38b_dd999a1f","line":379,"updated":"2019-09-17 16:35:17.000000000","message":"There\u0027s no hand-holding with setting up pipelines to do the right state transitions yet.","commit_id":"193db992f3dccea863e87aca0219660d6897a590"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"fc7a58fff59e1bf8d02625c3a3c3514e4757edc8","unresolved":false,"context_lines":[{"line_number":376,"context_line":"  buildset link, or the pipeline must be configured to leave a"},{"line_number":377,"context_line":"  traditional comment."},{"line_number":378,"context_line":""},{"line_number":379,"context_line":"* Familiarity with the `checks` API is recommended."},{"line_number":380,"context_line":""},{"line_number":381,"context_line":"* Checkers may not be permanently deleted from Gerrit (only"},{"line_number":382,"context_line":"  \"soft-deleted\" so they no longer apply), so any experiments you"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa7e38b_9db6c2d9","line":379,"updated":"2019-09-17 16:34:59.000000000","message":"When I went looking for info on this new API I couldn\u0027t find the original spec doc which was way more helpful than the raw API docs for figuring out intended usage.\n\nMaybe we can find useful links like that and link from our docs?","commit_id":"193db992f3dccea863e87aca0219660d6897a590"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"f94aca8939bc797249ac8017e98824b25c81195a","unresolved":false,"context_lines":[{"line_number":380,"context_line":""},{"line_number":381,"context_line":"* Checkers may not be permanently deleted from Gerrit (only"},{"line_number":382,"context_line":"  \"soft-deleted\" so they no longer apply), so any experiments you"},{"line_number":383,"context_line":"  perform on a production system will leave data there forever."},{"line_number":384,"context_line":""},{"line_number":385,"context_line":"In order to use the `checks` API, you must have HTTP access configured"},{"line_number":386,"context_line":"in `zuul.conf`."}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa7e38b_7d9e6608","line":383,"updated":"2019-09-17 16:35:17.000000000","message":"This is likely a permanent thing, so we\u0027ll probably keep a ..note:: with this in our docs as an FYI.","commit_id":"193db992f3dccea863e87aca0219660d6897a590"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"73b53768f515b814bcfb1fb0ab7347b1387aa3dc","unresolved":false,"context_lines":[{"line_number":455,"context_line":"             scheme: \u0027zuul_check\u0027"},{"line_number":456,"context_line":"       enqueue:"},{"line_number":457,"context_line":"         gerrit:"},{"line_number":458,"context_line":"           checks_plugin:"},{"line_number":459,"context_line":"             scheme: \u0027zuul_check\u0027"},{"line_number":460,"context_line":"             state: SCHEDULED"},{"line_number":461,"context_line":"             message: \u0027Change has been enqueued in check\u0027"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa7e38b_7d450670","line":458,"updated":"2019-09-17 16:39:27.000000000","message":"It\u0027s actually a plugin currently.  It might become a \"core\" plugin though, or maybe even be built-in.  Anyway, I think you\u0027re right; let\u0027s change it to \"checks_api\" (I think that\u0027s the best name).","commit_id":"193db992f3dccea863e87aca0219660d6897a590"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"fc7a58fff59e1bf8d02625c3a3c3514e4757edc8","unresolved":false,"context_lines":[{"line_number":455,"context_line":"             scheme: \u0027zuul_check\u0027"},{"line_number":456,"context_line":"       enqueue:"},{"line_number":457,"context_line":"         gerrit:"},{"line_number":458,"context_line":"           checks_plugin:"},{"line_number":459,"context_line":"             scheme: \u0027zuul_check\u0027"},{"line_number":460,"context_line":"             state: SCHEDULED"},{"line_number":461,"context_line":"             message: \u0027Change has been enqueued in check\u0027"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa7e38b_5dd7eac0","line":458,"range":{"start_line":458,"start_character":18,"end_line":458,"end_character":24},"updated":"2019-09-17 16:34:59.000000000","message":"This use of plugin here is weird to me. The checker api is built into gerrit right? as is support for this in Zuul. Maybe this is more accurate:\n\n  enqueue:\n    gerrit:\n      checker_api:\n        stuff","commit_id":"193db992f3dccea863e87aca0219660d6897a590"}],"tests/unit/test_gerrit.py":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"fc7a58fff59e1bf8d02625c3a3c3514e4757edc8","unresolved":false,"context_lines":[{"line_number":313,"context_line":"        self.assertEqual(A.checks_history[3][\u0027zuul_check:abcd\u0027][\u0027state\u0027],"},{"line_number":314,"context_line":"                         \u0027SUCCESSFUL\u0027)"},{"line_number":315,"context_line":"        self.assertHistory(["},{"line_number":316,"context_line":"            dict(name\u003d\u0027test-job\u0027, result\u003d\u0027SUCCESS\u0027, changes\u003d\u00271,1\u0027)])"}],"source_content_type":"text/x-python","patch_set":10,"id":"3fa7e38b_5d3b6a37","line":316,"updated":"2019-09-17 16:34:59.000000000","message":"A test specifically for the no jobs case may be worthwhile since that is a new behavior we won\u0027t get coverage for elsewhere?","commit_id":"193db992f3dccea863e87aca0219660d6897a590"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"73b53768f515b814bcfb1fb0ab7347b1387aa3dc","unresolved":false,"context_lines":[{"line_number":313,"context_line":"        self.assertEqual(A.checks_history[3][\u0027zuul_check:abcd\u0027][\u0027state\u0027],"},{"line_number":314,"context_line":"                         \u0027SUCCESSFUL\u0027)"},{"line_number":315,"context_line":"        self.assertHistory(["},{"line_number":316,"context_line":"            dict(name\u003d\u0027test-job\u0027, result\u003d\u0027SUCCESS\u0027, changes\u003d\u00271,1\u0027)])"}],"source_content_type":"text/x-python","patch_set":10,"id":"3fa7e38b_9d4a427e","line":316,"updated":"2019-09-17 16:39:27.000000000","message":"Good point.","commit_id":"193db992f3dccea863e87aca0219660d6897a590"}],"zuul/driver/gerrit/gerritconnection.py":[{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"75f3cfd912141f2d8e96a749ad7f2806d4f4271a","unresolved":false,"context_lines":[{"line_number":341,"context_line":"            if self._stopped:"},{"line_number":342,"context_line":"                break"},{"line_number":343,"context_line":"            last_start \u003d time.time()"},{"line_number":344,"context_line":"            self._run()"},{"line_number":345,"context_line":""},{"line_number":346,"context_line":"    def stop(self):"},{"line_number":347,"context_line":"        self.log.debug(\"Stopping watcher\")"}],"source_content_type":"text/x-python","patch_set":10,"id":"3fa7e38b_c0d1b159","line":344,"updated":"2019-09-17 16:55:10.000000000","message":"I\u0027m not too worried about that -- AIUI, it\u0027s meant to be a fairly efficient query so high-frequency polling should be okay.","commit_id":"193db992f3dccea863e87aca0219660d6897a590"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"fc7a58fff59e1bf8d02625c3a3c3514e4757edc8","unresolved":false,"context_lines":[{"line_number":341,"context_line":"            if self._stopped:"},{"line_number":342,"context_line":"                break"},{"line_number":343,"context_line":"            last_start \u003d time.time()"},{"line_number":344,"context_line":"            self._run()"},{"line_number":345,"context_line":""},{"line_number":346,"context_line":"    def stop(self):"},{"line_number":347,"context_line":"        self.log.debug(\"Stopping watcher\")"}],"source_content_type":"text/x-python","patch_set":10,"id":"3fa7e38b_5d692a23","line":344,"updated":"2019-09-17 16:34:59.000000000","message":"Thinking out loud here it might be better to poll continuously with a very small delay per action, but only check a checker at a time? This way we don\u0027t burst to the gerrit api every 30 seconds but instead have continuous load.\n\nThe downside with this is your effectively poll interval for a specific checker will increase based on the number of checkers there are.","commit_id":"193db992f3dccea863e87aca0219660d6897a590"}]}
