)]}'
{".zuul.yaml":[{"author":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"change_message_id":"6e4cfa3595b6269e7455f955f5dc279b2f0a1ca6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"- project:"},{"line_number":3,"context_line":"    name: openstack/ci-log-processing"},{"line_number":4,"context_line":"    templates:"},{"line_number":5,"context_line":"      - build-tox-docs"},{"line_number":6,"context_line":"    check: \u0026logcheck"}],"source_content_type":"text/x-yaml","patch_set":21,"id":"f6d67b05_126f5828","line":3,"updated":"2021-11-12 15:46:33.000000000","message":"The project name is unnecessary, as it will be inferred from the containing repository anyway.","commit_id":"a18a228cc66da582e176059fc7de391a045cc528"}],"/COMMIT_MSG":[{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"fcf7f287e4c710e32063879329399f20d82904da","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"DNM Initial project commit"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This commit provides Zuul log scrapper tool with Ansible"},{"line_number":10,"context_line":"playbook and role that will be able to configure host with it."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Iff45fbcb6d4813cc60dc705c60e95f3045984b5c"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"2a8258b2_b2d0756c","line":9,"range":{"start_line":9,"start_character":30,"end_line":9,"end_character":38},"updated":"2021-11-02 20:28:43.000000000","message":"Do you mean \"scraper\" here (and other places)?  As in \"scraping\" small parts of a bigger stack one by one.  \"scrapper\" to me would be like a pronoun for someone who works in a scrap-metal yard and implies throwing things away (\"the car is all rusty, we\u0027re sending it to the scrapper\").  \n\nProbably just a typo but want to make sure we\u0027re talking about the same thing 😊","commit_id":"866e4afac4c0027dbd4e531f14b9604fd5afd8be"},{"author":{"_account_id":20676,"name":"daniel.pawlik","display_name":"Daniel Pawlik","email":"dpawlik@redhat.com","username":"daniel.pawlik"},"change_message_id":"7371636ac22cacd862fb0a50cdf4945df3617cf7","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"DNM Initial project commit"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This commit provides Zuul log scrapper tool with Ansible"},{"line_number":10,"context_line":"playbook and role that will be able to configure host with it."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Iff45fbcb6d4813cc60dc705c60e95f3045984b5c"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"ba71e577_c5c0af36","line":9,"range":{"start_line":9,"start_character":30,"end_line":9,"end_character":38},"in_reply_to":"2a8258b2_b2d0756c","updated":"2021-11-03 08:57:24.000000000","message":"that is an explanation that I was looking for!\nWill change name in next ps.","commit_id":"866e4afac4c0027dbd4e531f14b9604fd5afd8be"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":20676,"name":"daniel.pawlik","display_name":"Daniel Pawlik","email":"dpawlik@redhat.com","username":"daniel.pawlik"},"change_message_id":"b84768da6507928e1e3bc5038c2785ff9577d260","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"97f3be81_1d8bdfe3","updated":"2021-10-28 11:31:48.000000000","message":"PS will be splitted to few commits.","commit_id":"85d3dc2c33e3e662830272a32f6e49d11e26e51b"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"bcaca1448e0eb590c86c48c1ca1c206d6ae6ad89","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"99dbf21a_1a1cd22c","updated":"2021-11-05 00:00:27.000000000","message":"I am not an infra expert but from a cursory review, this looks reasonable to me. Just noted some typos and such inline.","commit_id":"71b37431a488c92f0996c443e81f17115d90bafa"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"5f2264ceb7d63d29bfccacf34f8085dc45e4e8e6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"85e681f4_81b60b56","updated":"2021-11-08 02:26:35.000000000","message":"There seems to be a odd mix of licenses here -- there is an Apache License file, the logscraper/locscraper.py has an AGPL license header, and then Dockerfile has a GPL license.  Is this really the intention?","commit_id":"2aa14461913837ab492b8c7d59e9f89d5ff4586d"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"af80919cf79fc2c905bb466bb04a2af0d7736089","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"4915fe0d_0d1c4898","updated":"2021-11-08 14:33:42.000000000","message":"It seems like my suggestion to use end_time as a marker needs more work as the builds may be out of order. Perhaps we also need also to keep track of the latest uuid too, as you initially implemented in sf-infra.","commit_id":"ce20cd847a272e40ec6d6cd3bd4bb48d00998132"},{"author":{"_account_id":20676,"name":"daniel.pawlik","display_name":"Daniel Pawlik","email":"dpawlik@redhat.com","username":"daniel.pawlik"},"change_message_id":"de1a10918f8ac5103574b612b1ce0e30b474a99d","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":14,"id":"bd717d70_3fb617ee","in_reply_to":"4915fe0d_0d1c4898","updated":"2021-11-09 08:19:36.000000000","message":"maybe only uuid is enough to track, end_time can be just a \"helper\".\nIt would be good to have a feature in zuul like: \"since_uuid\" or \"since_end_time\" and it will show results from some point to the end.","commit_id":"ce20cd847a272e40ec6d6cd3bd4bb48d00998132"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"1ecaca46db2de8f39200f042545bcc6b80e81e3c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"03768564_5decb294","updated":"2021-11-09 12:37:16.000000000","message":"Thinking about this service over night, here are some suggestion we may want to implement in follow-ups:\n\n- Retry network requests to be more resilient in case of failure.\n- Log builds that failed processing so that they can be investigated post mortem.\n- Monitor throughput, in particular to check if the service is processing build faster than they are produced.","commit_id":"73aad86cf9a5c11c431547b8d266462011b90d59"},{"author":{"_account_id":20676,"name":"daniel.pawlik","display_name":"Daniel Pawlik","email":"dpawlik@redhat.com","username":"daniel.pawlik"},"change_message_id":"a4174e707a6f2563788a8d060377b1c639e8f504","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"0a85d733_695abc50","updated":"2021-11-10 09:27:53.000000000","message":"recheck","commit_id":"8216a447ac1aa8a4c0e9223ef34b8c5b2470ee18"},{"author":{"_account_id":20676,"name":"daniel.pawlik","display_name":"Daniel Pawlik","email":"dpawlik@redhat.com","username":"daniel.pawlik"},"change_message_id":"1dcd10a478ffdf8add13024612863054f2c26f03","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"72041b34_3e5ac385","updated":"2021-11-10 14:33:30.000000000","message":"recheck","commit_id":"ede1f270f5d09435393ea10d40ba2a5f07ec867d"},{"author":{"_account_id":20676,"name":"daniel.pawlik","display_name":"Daniel Pawlik","email":"dpawlik@redhat.com","username":"daniel.pawlik"},"change_message_id":"734c205956b010907496c422e27e891e18ab7784","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"83cc61b3_c933dd1c","updated":"2021-11-10 12:50:46.000000000","message":"recheck","commit_id":"ede1f270f5d09435393ea10d40ba2a5f07ec867d"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"f743e69a76b8b16ecd51ddb9495eb13ed1ee3212","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":25,"id":"8ae0d2f0_eb8a7630","updated":"2021-11-16 11:57:27.000000000","message":"+2","commit_id":"a6bdcc96b46bf88d48875cee7c76d187e257e82d"},{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"9771a9039d5bc442931079aeb5e24eb438234342","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":25,"id":"70ada93b_a94c77ff","updated":"2021-11-17 07:23:20.000000000","message":"cant spot something wrong from inspection but its a pretty big patch  ;)\n\nI think once you address any outstanding comments we should merge this as it\u0027s the first commit so by definition we shouldn\u0027t be able to break anything (but you *never* know ;) :D )","commit_id":"a6bdcc96b46bf88d48875cee7c76d187e257e82d"},{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"f1192350f1bcb7d5fe5285f8e99017af552dd4f9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":25,"id":"e0919ab2_70c77864","updated":"2021-11-18 08:44:26.000000000","message":"since there are no further comments or any objections I am going to workflow this initial commit to unblock Daniel so he can start merging the series he has lined up","commit_id":"a6bdcc96b46bf88d48875cee7c76d187e257e82d"}],"README.rst":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"bcaca1448e0eb590c86c48c1ca1c206d6ae6ad89","unresolved":true,"context_lines":[{"line_number":12,"context_line":"check by using Zuul CI API if there are new builds available"},{"line_number":13,"context_line":"and if there are some, it would push the informations to"},{"line_number":14,"context_line":"the log processing system."},{"line_number":15,"context_line":"Additional informations how to setup and configure the tool"},{"line_number":16,"context_line":"you can find in dedicated ansible role: `zuul-log-scraper`."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Testing"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7984c7ef_858e4b02","line":15,"range":{"start_line":15,"start_character":11,"end_line":15,"end_character":23},"updated":"2021-11-05 00:00:27.000000000","message":"information","commit_id":"71b37431a488c92f0996c443e81f17115d90bafa"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"bcaca1448e0eb590c86c48c1ca1c206d6ae6ad89","unresolved":true,"context_lines":[{"line_number":68,"context_line":"The latest documentation is available at"},{"line_number":69,"context_line":"http://docs.openstack.org/infra/system-config/"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"That documentation is generated from this repository.  You can geneate"},{"line_number":72,"context_line":"it yourself with ``tox -e docs``."}],"source_content_type":"text/x-rst","patch_set":12,"id":"2038584f_b8618690","line":71,"range":{"start_line":71,"start_character":63,"end_line":71,"end_character":70},"updated":"2021-11-05 00:00:27.000000000","message":"generate","commit_id":"71b37431a488c92f0996c443e81f17115d90bafa"},{"author":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"change_message_id":"6e4cfa3595b6269e7455f955f5dc279b2f0a1ca6","unresolved":false,"context_lines":[{"line_number":25,"context_line":"Any changes to logscraper script or tests will trigger jobs to"},{"line_number":26,"context_line":"thoroughly test those changes."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Continuous Deployment"},{"line_number":29,"context_line":"---------------------"},{"line_number":30,"context_line":"Once changes are reviewed and committed, they will be applied"},{"line_number":31,"context_line":"automatically to the production hosts.  This is done by Zuul jobs"}],"source_content_type":"text/x-rst","patch_set":21,"id":"b351af07_1493f3ae","line":28,"updated":"2021-11-12 15:46:33.000000000","message":"This section is incorrect, seems to have been copied from an OpenDev infrastructure project.","commit_id":"a18a228cc66da582e176059fc7de391a045cc528"},{"author":{"_account_id":20676,"name":"daniel.pawlik","display_name":"Daniel Pawlik","email":"dpawlik@redhat.com","username":"daniel.pawlik"},"change_message_id":"b12f29e602f293705d828ee1768aadc3e4767231","unresolved":false,"context_lines":[{"line_number":25,"context_line":"Any changes to logscraper script or tests will trigger jobs to"},{"line_number":26,"context_line":"thoroughly test those changes."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Continuous Deployment"},{"line_number":29,"context_line":"---------------------"},{"line_number":30,"context_line":"Once changes are reviewed and committed, they will be applied"},{"line_number":31,"context_line":"automatically to the production hosts.  This is done by Zuul jobs"}],"source_content_type":"text/x-rst","patch_set":21,"id":"8c87bf65_7a55d041","line":28,"in_reply_to":"b351af07_1493f3ae","updated":"2021-11-15 14:17:34.000000000","message":"yes, it was closest to the content of this project.\n\nI hope that in the future, changes will be also applied via Zuul","commit_id":"a18a228cc66da582e176059fc7de391a045cc528"},{"author":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"change_message_id":"bd5425877c63e07a808833fc9b7b667328b1138b","unresolved":false,"context_lines":[{"line_number":54,"context_line":"deploying to production will require new compute resources (servers,"},{"line_number":55,"context_line":"volumes, etc.) these will have to be deployed by an Openstack"},{"line_number":56,"context_line":"administrator before your code is committed.  Thus if you know you"},{"line_number":57,"context_line":"will need new resources, it is best to coordinate this before review."},{"line_number":58,"context_line":"The `#openstack-infra` IRC on OFTC"},{"line_number":59,"context_line":"channel is the main place for interactive discussion.  Feel free to"},{"line_number":60,"context_line":"ask any questions and someone will try to help ASAP."}],"source_content_type":"text/x-rst","patch_set":21,"id":"b8d117ae_93261edc","line":57,"updated":"2021-11-15 15:46:43.000000000","message":"It\u0027s possible we weren\u0027t especially clear on this during prior discussions, but I don\u0027t expect and didn\u0027t plan on OpenDev\u0027s deployment automation being used for this. It\u0027s also worth noting that the CentOS instance I booted for you to start with would have been unsuitable for that anyway, as our general host configuration roles are fairly Ubuntu-specific and so can\u0027t be reused easily there (and I wouldn\u0027t want OpenDev sysadmins to take on the review and maintenance burden of extending those to be cross-distro-capable).\n\nIf you plan to write complete deployment automation integrated into this repository, that will probably work, just be aware you\u0027re creating it from scratch, not adding it to the OpenDev Collaboratory\u0027s Ansible inventory nor leveraging OpenDev\u0027s deployment bastion.","commit_id":"a18a228cc66da582e176059fc7de391a045cc528"},{"author":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"change_message_id":"6e4cfa3595b6269e7455f955f5dc279b2f0a1ca6","unresolved":false,"context_lines":[{"line_number":54,"context_line":"deploying to production will require new compute resources (servers,"},{"line_number":55,"context_line":"volumes, etc.) these will have to be deployed by an Openstack"},{"line_number":56,"context_line":"administrator before your code is committed.  Thus if you know you"},{"line_number":57,"context_line":"will need new resources, it is best to coordinate this before review."},{"line_number":58,"context_line":"The `#openstack-infra` IRC on OFTC"},{"line_number":59,"context_line":"channel is the main place for interactive discussion.  Feel free to"},{"line_number":60,"context_line":"ask any questions and someone will try to help ASAP."}],"source_content_type":"text/x-rst","patch_set":21,"id":"16336ac7_1bf85b8c","line":57,"updated":"2021-11-12 15:46:33.000000000","message":"The above sentences about deployment automation should probably be removed.","commit_id":"a18a228cc66da582e176059fc7de391a045cc528"},{"author":{"_account_id":20676,"name":"daniel.pawlik","display_name":"Daniel Pawlik","email":"dpawlik@redhat.com","username":"daniel.pawlik"},"change_message_id":"b12f29e602f293705d828ee1768aadc3e4767231","unresolved":false,"context_lines":[{"line_number":54,"context_line":"deploying to production will require new compute resources (servers,"},{"line_number":55,"context_line":"volumes, etc.) these will have to be deployed by an Openstack"},{"line_number":56,"context_line":"administrator before your code is committed.  Thus if you know you"},{"line_number":57,"context_line":"will need new resources, it is best to coordinate this before review."},{"line_number":58,"context_line":"The `#openstack-infra` IRC on OFTC"},{"line_number":59,"context_line":"channel is the main place for interactive discussion.  Feel free to"},{"line_number":60,"context_line":"ask any questions and someone will try to help ASAP."}],"source_content_type":"text/x-rst","patch_set":21,"id":"c1479415_db4dabc0","line":57,"in_reply_to":"16336ac7_1bf85b8c","updated":"2021-11-15 14:17:34.000000000","message":"Why? The future patch sets will provide ansible role, playbooks. After that I would like to add basic functional test for validating new changes.","commit_id":"a18a228cc66da582e176059fc7de391a045cc528"},{"author":{"_account_id":20676,"name":"daniel.pawlik","display_name":"Daniel Pawlik","email":"dpawlik@redhat.com","username":"daniel.pawlik"},"change_message_id":"739bc6b7fc69782344785a0808e2574cd3082308","unresolved":false,"context_lines":[{"line_number":54,"context_line":"deploying to production will require new compute resources (servers,"},{"line_number":55,"context_line":"volumes, etc.) these will have to be deployed by an Openstack"},{"line_number":56,"context_line":"administrator before your code is committed.  Thus if you know you"},{"line_number":57,"context_line":"will need new resources, it is best to coordinate this before review."},{"line_number":58,"context_line":"The `#openstack-infra` IRC on OFTC"},{"line_number":59,"context_line":"channel is the main place for interactive discussion.  Feel free to"},{"line_number":60,"context_line":"ask any questions and someone will try to help ASAP."}],"source_content_type":"text/x-rst","patch_set":21,"id":"b494b9e5_61a9b2dc","line":57,"in_reply_to":"b8d117ae_93261edc","updated":"2021-11-16 07:19:27.000000000","message":"ok, I will remove the section and add it in the future.","commit_id":"a18a228cc66da582e176059fc7de391a045cc528"},{"author":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"change_message_id":"6e4cfa3595b6269e7455f955f5dc279b2f0a1ca6","unresolved":false,"context_lines":[{"line_number":63,"context_line":"discussion; even if you can not attend, you can raise your issue and"},{"line_number":64,"context_line":"check back on the logs later."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Documentation"},{"line_number":67,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":68,"context_line":"The latest documentation is available at"},{"line_number":69,"context_line":"http://docs.openstack.org/infra/system-config/"}],"source_content_type":"text/x-rst","patch_set":21,"id":"b304b05d_4f0419e4","line":66,"updated":"2021-11-12 15:46:33.000000000","message":"This section needs to be rewritten, since the project won\u0027t be covered in OpenDev\u0027s systen-config docs.","commit_id":"a18a228cc66da582e176059fc7de391a045cc528"},{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"84463a8d05e94a09a947ba30c2c1332866b282b8","unresolved":true,"context_lines":[{"line_number":1,"context_line":"Openstack CI log processing"},{"line_number":2,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"The goal of that repository is to provide and check"},{"line_number":5,"context_line":"functionality of new log processing system base on"},{"line_number":6,"context_line":"zuul log scraper tool."},{"line_number":7,"context_line":""}],"source_content_type":"text/x-rst","patch_set":24,"id":"e9ceff71_59ef4195","line":4,"range":{"start_line":4,"start_character":12,"end_line":4,"end_character":16},"updated":"2021-11-16 08:09:27.000000000","message":"this","commit_id":"59c36f6487900d800d4a4ac3bd90454253abc6e1"},{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"84463a8d05e94a09a947ba30c2c1332866b282b8","unresolved":true,"context_lines":[{"line_number":13,"context_line":"and if there are some, it would push the informations to"},{"line_number":14,"context_line":"the log processing system."},{"line_number":15,"context_line":"Additional information how to setup and configure the tool"},{"line_number":16,"context_line":"you can find in dedicated ansible role: `zuul-log-scraper`."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Testing"},{"line_number":19,"context_line":"-------"}],"source_content_type":"text/x-rst","patch_set":24,"id":"a825a70c_52b4b52e","line":16,"range":{"start_line":16,"start_character":26,"end_line":16,"end_character":38},"updated":"2021-11-16 08:09:27.000000000","message":"is that somethign that is coming (doesn\u0027t exist yet?) - i just see the python script here","commit_id":"59c36f6487900d800d4a4ac3bd90454253abc6e1"},{"author":{"_account_id":20676,"name":"daniel.pawlik","display_name":"Daniel Pawlik","email":"dpawlik@redhat.com","username":"daniel.pawlik"},"change_message_id":"9156c9d005fdb331cea6f6190353c57f93561068","unresolved":true,"context_lines":[{"line_number":13,"context_line":"and if there are some, it would push the informations to"},{"line_number":14,"context_line":"the log processing system."},{"line_number":15,"context_line":"Additional information how to setup and configure the tool"},{"line_number":16,"context_line":"you can find in dedicated ansible role: `zuul-log-scraper`."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Testing"},{"line_number":19,"context_line":"-------"}],"source_content_type":"text/x-rst","patch_set":24,"id":"4caab6b4_3dc579a5","line":16,"range":{"start_line":16,"start_character":26,"end_line":16,"end_character":38},"in_reply_to":"a825a70c_52b4b52e","updated":"2021-11-16 10:51:18.000000000","message":"Yeah, it was moved to another PS","commit_id":"59c36f6487900d800d4a4ac3bd90454253abc6e1"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"1ca5187ff3fbd9dd06f5c6e21b44f3dd9c95bba4","unresolved":true,"context_lines":[{"line_number":1,"context_line":"Openstack CI log processing"},{"line_number":2,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"The goal of this repository is to provide and check"}],"source_content_type":"text/x-rst","patch_set":25,"id":"4589ebc8_ad4221e4","line":1,"updated":"2021-11-16 16:52:05.000000000","message":"Same, use proper casing throughout:\n\ns/Openstack/OpenStack/g","commit_id":"a6bdcc96b46bf88d48875cee7c76d187e257e82d"}],"doc/source/conf.py":[{"author":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"change_message_id":"6e4cfa3595b6269e7455f955f5dc279b2f0a1ca6","unresolved":false,"context_lines":[{"line_number":47,"context_line":"#  author, documentclass [howto, manual, or own class])."},{"line_number":48,"context_line":"latex_documents \u003d ["},{"line_number":49,"context_line":"  (\u0027index\u0027, \u0027system-config.tex\u0027, u\u0027system-config Documentation\u0027,"},{"line_number":50,"context_line":"   u\u0027OpenStack Infrastructure Team\u0027, \u0027manual\u0027),"},{"line_number":51,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":21,"id":"5ac983a7_57b805cd","line":50,"updated":"2021-11-12 15:46:33.000000000","message":"Incorrect, needs updating.","commit_id":"a18a228cc66da582e176059fc7de391a045cc528"}],"doc/source/index.rst":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"1ca5187ff3fbd9dd06f5c6e21b44f3dd9c95bba4","unresolved":true,"context_lines":[{"line_number":1,"context_line":"Openstack CI Log Processing"},{"line_number":2,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"This documentation covers the installation and maintenance of the"}],"source_content_type":"text/x-rst","patch_set":25,"id":"2ec9d58c_204759e2","line":1,"updated":"2021-11-16 16:52:05.000000000","message":"Should use proper OpenStack casing.","commit_id":"a6bdcc96b46bf88d48875cee7c76d187e257e82d"}],"doc/source/logscraper.rst":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"bcaca1448e0eb590c86c48c1ca1c206d6ae6ad89","unresolved":true,"context_lines":[{"line_number":1,"context_line":"Logscraper"},{"line_number":2,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"The logscraper tool can be running as a one-shot log scrap or"},{"line_number":5,"context_line":"as periodical check, if some new log jobs are available."},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"The tool have help function, that is showing available options for it."}],"source_content_type":"text/x-rst","patch_set":12,"id":"9a5eff4d_d197849d","line":4,"range":{"start_line":4,"start_character":53,"end_line":4,"end_character":58},"updated":"2021-11-05 00:00:27.000000000","message":"scrape","commit_id":"71b37431a488c92f0996c443e81f17115d90bafa"},{"author":{"_account_id":20676,"name":"daniel.pawlik","display_name":"Daniel Pawlik","email":"dpawlik@redhat.com","username":"daniel.pawlik"},"change_message_id":"e943a5fe04b048fdeb9b9ce0b8d2f5b66fb4ca0d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"Logscraper"},{"line_number":2,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"The logscraper tool can be running as a one-shot log scrap or"},{"line_number":5,"context_line":"as periodical check, if some new log jobs are available."},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"The tool have help function, that is showing available options for it."}],"source_content_type":"text/x-rst","patch_set":12,"id":"37c218a3_d708a983","line":4,"range":{"start_line":4,"start_character":53,"end_line":4,"end_character":58},"in_reply_to":"9a5eff4d_d197849d","updated":"2021-11-05 10:25:03.000000000","message":"Done","commit_id":"71b37431a488c92f0996c443e81f17115d90bafa"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"bcaca1448e0eb590c86c48c1ca1c206d6ae6ad89","unresolved":true,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"  logscraper --gearman-server localhost --zuul-api-url https://zuul.opendev.org/api/tenant/zuul --checkpoint-file /tmp/zuul-result-timestamp.txt"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"* scrap periodicaly logs from tenants: `openstack`, `zuul` and `local`"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":".. code-block::"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"8f65c771_c7bf503f","line":34,"range":{"start_line":34,"start_character":2,"end_line":34,"end_character":19},"updated":"2021-11-05 00:00:27.000000000","message":"periodically scrape","commit_id":"71b37431a488c92f0996c443e81f17115d90bafa"},{"author":{"_account_id":20676,"name":"daniel.pawlik","display_name":"Daniel Pawlik","email":"dpawlik@redhat.com","username":"daniel.pawlik"},"change_message_id":"e943a5fe04b048fdeb9b9ce0b8d2f5b66fb4ca0d","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"  logscraper --gearman-server localhost --zuul-api-url https://zuul.opendev.org/api/tenant/zuul --checkpoint-file /tmp/zuul-result-timestamp.txt"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"* scrap periodicaly logs from tenants: `openstack`, `zuul` and `local`"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":".. code-block::"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"2a0fb4e1_88cee025","line":34,"range":{"start_line":34,"start_character":2,"end_line":34,"end_character":19},"in_reply_to":"8f65c771_c7bf503f","updated":"2021-11-05 10:25:03.000000000","message":"Done","commit_id":"71b37431a488c92f0996c443e81f17115d90bafa"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"bcaca1448e0eb590c86c48c1ca1c206d6ae6ad89","unresolved":true,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"  logscraper --gearman-server localhost --zuul-api-url https://zuul.opendev.org/api/tenant/openstack --zuul-api-url https://zuul.opendev.org/api/tenant/zuul --zuul-api-url https://zuul.opendev.org/api/tenant/local --checkpoint-file /tmp/someresults.txt --follow"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"* scrap logs from two defined job names: `tripleo-ci-centos-8-containers-multinode` and `openstack-tox-linters` for tenants: `openstack` and `local` and ignore checkpoint file:"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":".. code-block::"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"44e27ac8_24622b8b","line":40,"range":{"start_line":40,"start_character":2,"end_line":40,"end_character":7},"updated":"2021-11-05 00:00:27.000000000","message":"scrape","commit_id":"71b37431a488c92f0996c443e81f17115d90bafa"},{"author":{"_account_id":20676,"name":"daniel.pawlik","display_name":"Daniel Pawlik","email":"dpawlik@redhat.com","username":"daniel.pawlik"},"change_message_id":"e943a5fe04b048fdeb9b9ce0b8d2f5b66fb4ca0d","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"  logscraper --gearman-server localhost --zuul-api-url https://zuul.opendev.org/api/tenant/openstack --zuul-api-url https://zuul.opendev.org/api/tenant/zuul --zuul-api-url https://zuul.opendev.org/api/tenant/local --checkpoint-file /tmp/someresults.txt --follow"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"* scrap logs from two defined job names: `tripleo-ci-centos-8-containers-multinode` and `openstack-tox-linters` for tenants: `openstack` and `local` and ignore checkpoint file:"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":".. code-block::"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"24aab97e_193e5ff2","line":40,"range":{"start_line":40,"start_character":2,"end_line":40,"end_character":7},"in_reply_to":"44e27ac8_24622b8b","updated":"2021-11-05 10:25:03.000000000","message":"Done","commit_id":"71b37431a488c92f0996c443e81f17115d90bafa"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"bcaca1448e0eb590c86c48c1ca1c206d6ae6ad89","unresolved":true,"context_lines":[{"line_number":44,"context_line":"  logscraper --gearman-server localhost --job-name tripleo-ci-centos-8-containers-multinode --job-name openstack-tox-linters --zuul-api-url https://zuul.opendev.org/api/tenant/openstack --zuul-api-url https://zuul.opendev.org/api/tenant/local --ignore-checkpoint"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Contenerize tool"},{"line_number":48,"context_line":"----------------"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Instead of using `pip` tool, you can build your own container image"}],"source_content_type":"text/x-rst","patch_set":12,"id":"271329d9_fa3c9f94","line":47,"range":{"start_line":47,"start_character":0,"end_line":47,"end_character":11},"updated":"2021-11-05 00:00:27.000000000","message":"Containerize","commit_id":"71b37431a488c92f0996c443e81f17115d90bafa"},{"author":{"_account_id":20676,"name":"daniel.pawlik","display_name":"Daniel Pawlik","email":"dpawlik@redhat.com","username":"daniel.pawlik"},"change_message_id":"e943a5fe04b048fdeb9b9ce0b8d2f5b66fb4ca0d","unresolved":true,"context_lines":[{"line_number":44,"context_line":"  logscraper --gearman-server localhost --job-name tripleo-ci-centos-8-containers-multinode --job-name openstack-tox-linters --zuul-api-url https://zuul.opendev.org/api/tenant/openstack --zuul-api-url https://zuul.opendev.org/api/tenant/local --ignore-checkpoint"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Contenerize tool"},{"line_number":48,"context_line":"----------------"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Instead of using `pip` tool, you can build your own container image"}],"source_content_type":"text/x-rst","patch_set":12,"id":"294331a8_35158318","line":47,"range":{"start_line":47,"start_character":0,"end_line":47,"end_character":11},"in_reply_to":"271329d9_fa3c9f94","updated":"2021-11-05 10:25:03.000000000","message":"ooh, I\u0027m wondering why vim got bad version in cache. Good catch","commit_id":"71b37431a488c92f0996c443e81f17115d90bafa"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"bcaca1448e0eb590c86c48c1ca1c206d6ae6ad89","unresolved":true,"context_lines":[{"line_number":48,"context_line":"----------------"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Instead of using `pip` tool, you can build your own container image"},{"line_number":51,"context_line":"that contains logscrapp tool, for example:"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":".. code-block::"},{"line_number":54,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"94741fa8_3b01dbac","line":51,"range":{"start_line":51,"start_character":14,"end_line":51,"end_character":23},"updated":"2021-11-05 00:00:27.000000000","message":"logscraper","commit_id":"71b37431a488c92f0996c443e81f17115d90bafa"},{"author":{"_account_id":20676,"name":"daniel.pawlik","display_name":"Daniel Pawlik","email":"dpawlik@redhat.com","username":"daniel.pawlik"},"change_message_id":"e943a5fe04b048fdeb9b9ce0b8d2f5b66fb4ca0d","unresolved":false,"context_lines":[{"line_number":48,"context_line":"----------------"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Instead of using `pip` tool, you can build your own container image"},{"line_number":51,"context_line":"that contains logscrapp tool, for example:"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":".. code-block::"},{"line_number":54,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"bab169cf_404e1fca","line":51,"range":{"start_line":51,"start_character":14,"end_line":51,"end_character":23},"in_reply_to":"94741fa8_3b01dbac","updated":"2021-11-05 10:25:03.000000000","message":"Done","commit_id":"71b37431a488c92f0996c443e81f17115d90bafa"}],"logscraper/logscraper.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"bcaca1448e0eb590c86c48c1ca1c206d6ae6ad89","unresolved":true,"context_lines":[{"line_number":133,"context_line":"                        action\u003d\u0027append\u0027)"},{"line_number":134,"context_line":"    parser.add_argument("},{"line_number":135,"context_line":"        \"--job-name\","},{"line_number":136,"context_line":"        help\u003d\"CI job name(s). Prameter can be set multiple times.\""},{"line_number":137,"context_line":"             \"If not set it would scrap every latest builds.\","},{"line_number":138,"context_line":"             action\u003d\u0027append\u0027,"},{"line_number":139,"context_line":"    )"}],"source_content_type":"text/x-python","patch_set":12,"id":"80811ea8_c2ec081e","line":136,"range":{"start_line":136,"start_character":30,"end_line":136,"end_character":38},"updated":"2021-11-05 00:00:27.000000000","message":"Parameter","commit_id":"71b37431a488c92f0996c443e81f17115d90bafa"},{"author":{"_account_id":20676,"name":"daniel.pawlik","display_name":"Daniel Pawlik","email":"dpawlik@redhat.com","username":"daniel.pawlik"},"change_message_id":"e943a5fe04b048fdeb9b9ce0b8d2f5b66fb4ca0d","unresolved":false,"context_lines":[{"line_number":133,"context_line":"                        action\u003d\u0027append\u0027)"},{"line_number":134,"context_line":"    parser.add_argument("},{"line_number":135,"context_line":"        \"--job-name\","},{"line_number":136,"context_line":"        help\u003d\"CI job name(s). Prameter can be set multiple times.\""},{"line_number":137,"context_line":"             \"If not set it would scrap every latest builds.\","},{"line_number":138,"context_line":"             action\u003d\u0027append\u0027,"},{"line_number":139,"context_line":"    )"}],"source_content_type":"text/x-python","patch_set":12,"id":"ebcb12c0_9b3c1000","line":136,"range":{"start_line":136,"start_character":30,"end_line":136,"end_character":38},"in_reply_to":"80811ea8_c2ec081e","updated":"2021-11-05 10:25:03.000000000","message":"Done","commit_id":"71b37431a488c92f0996c443e81f17115d90bafa"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"bcaca1448e0eb590c86c48c1ca1c206d6ae6ad89","unresolved":true,"context_lines":[{"line_number":134,"context_line":"    parser.add_argument("},{"line_number":135,"context_line":"        \"--job-name\","},{"line_number":136,"context_line":"        help\u003d\"CI job name(s). Prameter can be set multiple times.\""},{"line_number":137,"context_line":"             \"If not set it would scrap every latest builds.\","},{"line_number":138,"context_line":"             action\u003d\u0027append\u0027,"},{"line_number":139,"context_line":"    )"},{"line_number":140,"context_line":"    parser.add_argument(\"--gearman-server\", help\u003d\"Gearman host addresss\","}],"source_content_type":"text/x-python","patch_set":12,"id":"e6caa766_b95e80df","line":137,"range":{"start_line":137,"start_character":34,"end_line":137,"end_character":39},"updated":"2021-11-05 00:00:27.000000000","message":"scrape","commit_id":"71b37431a488c92f0996c443e81f17115d90bafa"},{"author":{"_account_id":20676,"name":"daniel.pawlik","display_name":"Daniel Pawlik","email":"dpawlik@redhat.com","username":"daniel.pawlik"},"change_message_id":"e943a5fe04b048fdeb9b9ce0b8d2f5b66fb4ca0d","unresolved":false,"context_lines":[{"line_number":134,"context_line":"    parser.add_argument("},{"line_number":135,"context_line":"        \"--job-name\","},{"line_number":136,"context_line":"        help\u003d\"CI job name(s). Prameter can be set multiple times.\""},{"line_number":137,"context_line":"             \"If not set it would scrap every latest builds.\","},{"line_number":138,"context_line":"             action\u003d\u0027append\u0027,"},{"line_number":139,"context_line":"    )"},{"line_number":140,"context_line":"    parser.add_argument(\"--gearman-server\", help\u003d\"Gearman host addresss\","}],"source_content_type":"text/x-python","patch_set":12,"id":"581ed0f8_0b6e0127","line":137,"range":{"start_line":137,"start_character":34,"end_line":137,"end_character":39},"in_reply_to":"e6caa766_b95e80df","updated":"2021-11-05 10:25:03.000000000","message":"Done","commit_id":"71b37431a488c92f0996c443e81f17115d90bafa"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"bcaca1448e0eb590c86c48c1ca1c206d6ae6ad89","unresolved":true,"context_lines":[{"line_number":141,"context_line":"                        required\u003dTrue)"},{"line_number":142,"context_line":"    parser.add_argument("},{"line_number":143,"context_line":"        \"--gearman-port\","},{"line_number":144,"context_line":"        help\u003d\"Gearman listen port. \" \"Defaults to 4731.\","},{"line_number":145,"context_line":"        default\u003d4731,"},{"line_number":146,"context_line":"    )"},{"line_number":147,"context_line":"    parser.add_argument(\"--follow\", help\u003d\"Keep polling zuul builds\","}],"source_content_type":"text/x-python","patch_set":12,"id":"183d2b53_680acf18","line":144,"range":{"start_line":144,"start_character":36,"end_line":144,"end_character":37},"updated":"2021-11-05 00:00:27.000000000","message":"Supposed to be a linebreak here?","commit_id":"71b37431a488c92f0996c443e81f17115d90bafa"},{"author":{"_account_id":20676,"name":"daniel.pawlik","display_name":"Daniel Pawlik","email":"dpawlik@redhat.com","username":"daniel.pawlik"},"change_message_id":"e943a5fe04b048fdeb9b9ce0b8d2f5b66fb4ca0d","unresolved":true,"context_lines":[{"line_number":141,"context_line":"                        required\u003dTrue)"},{"line_number":142,"context_line":"    parser.add_argument("},{"line_number":143,"context_line":"        \"--gearman-port\","},{"line_number":144,"context_line":"        help\u003d\"Gearman listen port. \" \"Defaults to 4731.\","},{"line_number":145,"context_line":"        default\u003d4731,"},{"line_number":146,"context_line":"    )"},{"line_number":147,"context_line":"    parser.add_argument(\"--follow\", help\u003d\"Keep polling zuul builds\","}],"source_content_type":"text/x-python","patch_set":12,"id":"70eecf8d_362d0458","line":144,"range":{"start_line":144,"start_character":36,"end_line":144,"end_character":37},"in_reply_to":"183d2b53_680acf18","updated":"2021-11-05 10:25:03.000000000","message":"in first version proposed in software factory-project was formatted with \"black\" tool. Seems that it does not work correctly all the time","commit_id":"71b37431a488c92f0996c443e81f17115d90bafa"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"bcaca1448e0eb590c86c48c1ca1c206d6ae6ad89","unresolved":true,"context_lines":[{"line_number":151,"context_line":"    )"},{"line_number":152,"context_line":"    parser.add_argument("},{"line_number":153,"context_line":"        \"--checkpoint-file\","},{"line_number":154,"context_line":"        help\u003d\"File that will keep\" \"information about last uuid timestamp for \""},{"line_number":155,"context_line":"             \" a job.\","},{"line_number":156,"context_line":"    )"},{"line_number":157,"context_line":"    parser.add_argument("}],"source_content_type":"text/x-python","patch_set":12,"id":"a36e2555_dcef9c2a","line":154,"range":{"start_line":154,"start_character":34,"end_line":154,"end_character":35},"updated":"2021-11-05 00:00:27.000000000","message":"Supposed to be a linebreak here?","commit_id":"71b37431a488c92f0996c443e81f17115d90bafa"},{"author":{"_account_id":20676,"name":"daniel.pawlik","display_name":"Daniel Pawlik","email":"dpawlik@redhat.com","username":"daniel.pawlik"},"change_message_id":"e943a5fe04b048fdeb9b9ce0b8d2f5b66fb4ca0d","unresolved":false,"context_lines":[{"line_number":151,"context_line":"    )"},{"line_number":152,"context_line":"    parser.add_argument("},{"line_number":153,"context_line":"        \"--checkpoint-file\","},{"line_number":154,"context_line":"        help\u003d\"File that will keep\" \"information about last uuid timestamp for \""},{"line_number":155,"context_line":"             \" a job.\","},{"line_number":156,"context_line":"    )"},{"line_number":157,"context_line":"    parser.add_argument("}],"source_content_type":"text/x-python","patch_set":12,"id":"878e4027_c886d4fb","line":154,"range":{"start_line":154,"start_character":34,"end_line":154,"end_character":35},"in_reply_to":"a36e2555_dcef9c2a","updated":"2021-11-05 10:25:03.000000000","message":"Done","commit_id":"71b37431a488c92f0996c443e81f17115d90bafa"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"bcaca1448e0eb590c86c48c1ca1c206d6ae6ad89","unresolved":true,"context_lines":[{"line_number":156,"context_line":"    )"},{"line_number":157,"context_line":"    parser.add_argument("},{"line_number":158,"context_line":"        \"--ignore-checkpoint\","},{"line_number":159,"context_line":"        help\u003d\"Ignore last job uuid \" \"that is set in --checkpoint-file\","},{"line_number":160,"context_line":"        action\u003d\"store_true\","},{"line_number":161,"context_line":"    )"},{"line_number":162,"context_line":"    parser.add_argument("}],"source_content_type":"text/x-python","patch_set":12,"id":"12905461_7c74f41f","line":159,"range":{"start_line":159,"start_character":36,"end_line":159,"end_character":37},"updated":"2021-11-05 00:00:27.000000000","message":"Supposed to be a linebreak here?","commit_id":"71b37431a488c92f0996c443e81f17115d90bafa"},{"author":{"_account_id":20676,"name":"daniel.pawlik","display_name":"Daniel Pawlik","email":"dpawlik@redhat.com","username":"daniel.pawlik"},"change_message_id":"e943a5fe04b048fdeb9b9ce0b8d2f5b66fb4ca0d","unresolved":false,"context_lines":[{"line_number":156,"context_line":"    )"},{"line_number":157,"context_line":"    parser.add_argument("},{"line_number":158,"context_line":"        \"--ignore-checkpoint\","},{"line_number":159,"context_line":"        help\u003d\"Ignore last job uuid \" \"that is set in --checkpoint-file\","},{"line_number":160,"context_line":"        action\u003d\"store_true\","},{"line_number":161,"context_line":"    )"},{"line_number":162,"context_line":"    parser.add_argument("}],"source_content_type":"text/x-python","patch_set":12,"id":"d58cc2d9_bd29e364","line":159,"range":{"start_line":159,"start_character":36,"end_line":159,"end_character":37},"in_reply_to":"12905461_7c74f41f","updated":"2021-11-05 10:25:03.000000000","message":"Done","commit_id":"71b37431a488c92f0996c443e81f17115d90bafa"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"bcaca1448e0eb590c86c48c1ca1c206d6ae6ad89","unresolved":true,"context_lines":[{"line_number":168,"context_line":"    parser.add_argument(\"--workers\", help\u003d\"Worker processes for logscraper\","},{"line_number":169,"context_line":"                        default\u003dNone)"},{"line_number":170,"context_line":"    parser.add_argument(\"--debug\", action\u003d\"store_true\","},{"line_number":171,"context_line":"                        help\u003d\"Print more informations\")"},{"line_number":172,"context_line":"    args \u003d parser.parse_args()"},{"line_number":173,"context_line":"    return args"},{"line_number":174,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"bdf8604d_da2d0a32","line":171,"range":{"start_line":171,"start_character":41,"end_line":171,"end_character":53},"updated":"2021-11-05 00:00:27.000000000","message":"information","commit_id":"71b37431a488c92f0996c443e81f17115d90bafa"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"af80919cf79fc2c905bb466bb04a2af0d7736089","unresolved":true,"context_lines":[{"line_number":347,"context_line":"        jobs_result \u003d requests.get(url, verify\u003dinsecure)"},{"line_number":348,"context_line":"        jobs_result.raise_for_status()"},{"line_number":349,"context_line":"        for job in jobs_result.json():"},{"line_number":350,"context_line":"            yield job"},{"line_number":351,"context_line":"        pos +\u003d size"},{"line_number":352,"context_line":""},{"line_number":353,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"0129596b_55666f30","line":350,"updated":"2021-11-08 14:33:42.000000000","message":"It seems like this could yield duplicate build. Here is a scenario:\n\n- fetch page 0 returns build [0..10]\n- new build gets reported, the database now has [-5..]\n- fetch page 1 returns build [5..15]\n\nThus we need to keep track of yielded build uuids to ensure we don\u0027t yield a build more than one time.","commit_id":"ce20cd847a272e40ec6d6cd3bd4bb48d00998132"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"af80919cf79fc2c905bb466bb04a2af0d7736089","unresolved":true,"context_lines":[{"line_number":426,"context_line":"    builds \u003d []"},{"line_number":427,"context_line":"    for build in get_last_job_results(zuul_api_url, job_name,"},{"line_number":428,"context_line":"                                      args.insecure):"},{"line_number":429,"context_line":"        if not config.is_recent(build):"},{"line_number":430,"context_line":"            break"},{"line_number":431,"context_line":"        # add missing informations"},{"line_number":432,"context_line":"        build[\"tenant\"] \u003d config.tenant"}],"source_content_type":"text/x-python","patch_set":14,"id":"1058b9f8_411fb63b","line":429,"updated":"2021-11-08 14:33:42.000000000","message":"Actually, I don\u0027t think that is correct, I though the builds result would be ordered by end_time, but it is not the case and more recent build can be found after an old one.","commit_id":"ce20cd847a272e40ec6d6cd3bd4bb48d00998132"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"eeffd29eaca7842e889aa27bc1aa8a0bc877806b","unresolved":true,"context_lines":[{"line_number":141,"context_line":"                        \" can be set multiple times.\","},{"line_number":142,"context_line":"                        required\u003dTrue,"},{"line_number":143,"context_line":"                        action\u003d\u0027append\u0027)"},{"line_number":144,"context_line":"    parser.add_argument(\"--job-name\", help\u003d\"CI job name(s). Parameter can be \""},{"line_number":145,"context_line":"                        \"set multiple times. If not set it would scrape \""},{"line_number":146,"context_line":"                        \"every latest builds.\","},{"line_number":147,"context_line":"                        action\u003d\u0027append\u0027)"}],"source_content_type":"text/x-python","patch_set":16,"id":"8beee17c_65deff95","line":144,"updated":"2021-11-09 12:43:04.000000000","message":"Not sure when is this `--job-name` argument supposed to be used. Shouldn\u0027t we process all the builds?","commit_id":"73aad86cf9a5c11c431547b8d266462011b90d59"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"eeffd29eaca7842e889aa27bc1aa8a0bc877806b","unresolved":true,"context_lines":[{"line_number":154,"context_line":"                        action\u003d\"store_true\")"},{"line_number":155,"context_line":"    parser.add_argument(\"--insecure\", help\u003d\"Skip validating SSL cert\","},{"line_number":156,"context_line":"                        action\u003d\"store_false\")"},{"line_number":157,"context_line":"    parser.add_argument(\"--checkpoint-file\", help\u003d\"File that will keep \""},{"line_number":158,"context_line":"                        \"information about last uuid timestamp for a job.\")"},{"line_number":159,"context_line":"    parser.add_argument(\"--ignore-checkpoint\", help\u003d\"Ignore last job uuid that\""},{"line_number":160,"context_line":"                        \" is set in --checkpoint-file\","}],"source_content_type":"text/x-python","patch_set":16,"id":"81ac47cf_a2bfa84f","line":157,"updated":"2021-11-09 12:43:04.000000000","message":"Perhaps the most recent processed build could be discovered from the logstash url?","commit_id":"73aad86cf9a5c11c431547b8d266462011b90d59"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"eeffd29eaca7842e889aa27bc1aa8a0bc877806b","unresolved":true,"context_lines":[{"line_number":158,"context_line":"                        \"information about last uuid timestamp for a job.\")"},{"line_number":159,"context_line":"    parser.add_argument(\"--ignore-checkpoint\", help\u003d\"Ignore last job uuid that\""},{"line_number":160,"context_line":"                        \" is set in --checkpoint-file\","},{"line_number":161,"context_line":"                        action\u003d\"store_true\")"},{"line_number":162,"context_line":"    parser.add_argument(\"--logstash-url\", help\u003d\"When provided, script will \""},{"line_number":163,"context_line":"                        \"check connection to Logstash service before sending \""},{"line_number":164,"context_line":"                        \"to log processing system. For example: \""}],"source_content_type":"text/x-python","patch_set":16,"id":"283bd31b_560b65c3","line":161,"updated":"2021-11-09 12:43:04.000000000","message":"Ditto, when is the `--ignore-checkpoint` argument supposed to be used?","commit_id":"73aad86cf9a5c11c431547b8d266462011b90d59"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"e33117c13e0f2c7f9747e40a9a77be93ff76f27f","unresolved":true,"context_lines":[{"line_number":228,"context_line":"                                               for jobuuid in checkpoint_text]"},{"line_number":229,"context_line":"                            f_out.writelines(checkpoint_text)"},{"line_number":230,"context_line":"                            job_in_file \u003d True"},{"line_number":231,"context_line":"                            break"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"            if not job_in_file:"},{"line_number":234,"context_line":"                with open(checkpoint_file, \"a\") as f:"}],"source_content_type":"text/x-python","patch_set":16,"id":"0c9e763d_96f25b2a","line":231,"updated":"2021-11-09 12:04:45.000000000","message":"why is this writing multiple line in the checkpoint file?","commit_id":"73aad86cf9a5c11c431547b8d266462011b90d59"},{"author":{"_account_id":20676,"name":"daniel.pawlik","display_name":"Daniel Pawlik","email":"dpawlik@redhat.com","username":"daniel.pawlik"},"change_message_id":"9dc39e63d63522cdf618b9f50ed66b5874312db8","unresolved":true,"context_lines":[{"line_number":228,"context_line":"                                               for jobuuid in checkpoint_text]"},{"line_number":229,"context_line":"                            f_out.writelines(checkpoint_text)"},{"line_number":230,"context_line":"                            job_in_file \u003d True"},{"line_number":231,"context_line":"                            break"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"            if not job_in_file:"},{"line_number":234,"context_line":"                with open(checkpoint_file, \"a\") as f:"}],"source_content_type":"text/x-python","patch_set":16,"id":"5b5ecc5a_c72df12d","line":231,"in_reply_to":"0c9e763d_96f25b2a","updated":"2021-11-09 13:36:50.000000000","message":"so if multiple jobs provided, only one file contains all the checkpoint uuids. For example:\n    logscraper --job-name test --job-name test2 --checkpoint-file /tmp/checkpoint --zuul-api-url http://localhost/api/tenant/mytenant\n\nwill create a file: /tmp/checkpoint-mytenant:\n    test \u003csome uuid\u003e\n    test2 \u003csome other uuid\u003e\n\ninstead of\n\n    /tmp/checkpoint-mytenant-test\n    /tmp/checkpoint-mytenant-test2\n\nand each of that file will only store uuid. I think it can be more logical to understand and track, but probably it can be less efficient.","commit_id":"73aad86cf9a5c11c431547b8d266462011b90d59"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"0a41ddc387369d970cc9d203f8e9464a10271470","unresolved":true,"context_lines":[{"line_number":228,"context_line":"                                               for jobuuid in checkpoint_text]"},{"line_number":229,"context_line":"                            f_out.writelines(checkpoint_text)"},{"line_number":230,"context_line":"                            job_in_file \u003d True"},{"line_number":231,"context_line":"                            break"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"            if not job_in_file:"},{"line_number":234,"context_line":"                with open(checkpoint_file, \"a\") as f:"}],"source_content_type":"text/x-python","patch_set":16,"id":"9dda3812_94504816","line":231,"in_reply_to":"5b5ecc5a_c72df12d","updated":"2021-11-09 13:48:43.000000000","message":"I wonder if it is worth adding such complexity just to avoid using multiple files. At that point, we might want to use a better storage like sqlite.\n\nBut as suggested previously, perhaps we don\u0027t even need to store anything locally, and we could simply query logstash to check what was the last indexed build?","commit_id":"73aad86cf9a5c11c431547b8d266462011b90d59"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"e33117c13e0f2c7f9747e40a9a77be93ff76f27f","unresolved":true,"context_lines":[{"line_number":411,"context_line":"    jobs_result \u003d requests.get(base_url, verify\u003dinsecure)"},{"line_number":412,"context_line":"    jobs_result.raise_for_status()"},{"line_number":413,"context_line":"    sorted_results \u003d sort_results(jobs_result.json())"},{"line_number":414,"context_line":"    return cleanup_results(sorted_results, last_uuid)"},{"line_number":415,"context_line":""},{"line_number":416,"context_line":""},{"line_number":417,"context_line":"def filter_available_jobs(zuul_api_url, job_names, insecure):"}],"source_content_type":"text/x-python","patch_set":16,"id":"5cf6f79f_5ca9e666","line":414,"updated":"2021-11-09 12:04:45.000000000","message":"Why not keeping the generator to scan the pages (in case there are more than 100 builds to process)?","commit_id":"73aad86cf9a5c11c431547b8d266462011b90d59"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"e33117c13e0f2c7f9747e40a9a77be93ff76f27f","unresolved":true,"context_lines":[{"line_number":515,"context_line":"        for build in builds:"},{"line_number":516,"context_line":"            run_build(build)"},{"line_number":517,"context_line":"            config.save(build[\u0027uuid\u0027], job_name)"},{"line_number":518,"context_line":""},{"line_number":519,"context_line":""},{"line_number":520,"context_line":"def run(args):"},{"line_number":521,"context_line":"    for zuul_api_url in args.zuul_api_url:"}],"source_content_type":"text/x-python","patch_set":16,"id":"db4341c8_bd0aee1c","line":518,"updated":"2021-11-09 12:04:45.000000000","message":"Perhaps both case could be identical, e.g.:\n\n  pool \u003d multiprocessing.Pool(int(args.workers) if args.workers else 1)\n  try:\n    pool.map(run_build, builds)\n  finally:\n    config.save(builds[0][\u0027uuid\u0027], job_name)\n\nSo that we always record the most recent build processed.","commit_id":"73aad86cf9a5c11c431547b8d266462011b90d59"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"0cd7ecb768b141d72bb292da02ad07311bab5bcc","unresolved":true,"context_lines":[{"line_number":224,"context_line":""},{"line_number":225,"context_line":"            with open(checkpoint_file, \u0027r\u0027) as f:"},{"line_number":226,"context_line":"                checkpoint_text \u003d f.readlines()"},{"line_number":227,"context_line":"                with open(checkpoint_file, \u0027w\u0027) as f_out:"},{"line_number":228,"context_line":"                    for line in checkpoint_text:"},{"line_number":229,"context_line":"                        key, val \u003d line.split()"},{"line_number":230,"context_line":"                        if key \u003d\u003d job_name:"}],"source_content_type":"text/x-python","patch_set":17,"id":"b5d7e95b_d5c01f64","line":227,"updated":"2021-11-09 16:06:58.000000000","message":"nit: such `with` context are usually not meant to be nested using the same object, It seems like this should be:\n\n  checkpoint_text \u003d open(checkpoint_file).readlines()\n  with open(checkpoint_file, \u0027w\u0027) as f_out:\n    ...","commit_id":"00fa553a95aa0937adbba41763481d5036d4ccf3"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"acd160cf98788f87bc519481a752b996fd3f9b33","unresolved":true,"context_lines":[{"line_number":416,"context_line":"        for job in jobs_result.json():"},{"line_number":417,"context_line":"            yield job"},{"line_number":418,"context_line":""},{"line_number":419,"context_line":"        uuid_in_results \u003d check_if_uuid_in_job_result(jobs_result.json(),"},{"line_number":420,"context_line":"                                                      last_uuid)"},{"line_number":421,"context_line":"        # if there are no new uuid to parse, index of that uuid will be 0"},{"line_number":422,"context_line":"        # in jobs_result"}],"source_content_type":"text/x-python","patch_set":17,"id":"29cf1648_80b557f0","line":419,"updated":"2021-11-09 15:41:52.000000000","message":"This can still yield duplicate build (when new build are added between two page query). To avoid that we could use a simple known_uuid set, and around the yield do:\n\n  for job in jobs_result.json():\n    if job[\"uuid\"] not in known_uuid:\n      yield job\n    known_uuid.add(job[\"uuid\"])","commit_id":"00fa553a95aa0937adbba41763481d5036d4ccf3"},{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"84463a8d05e94a09a947ba30c2c1332866b282b8","unresolved":true,"context_lines":[{"line_number":70,"context_line":"  - name: apache/horizon_error.txt"},{"line_number":71,"context_line":"    tags:"},{"line_number":72,"context_line":"      - apacheerror"},{"line_number":73,"context_line":"  # TODO(clarkb) Add swift proxy logs here."},{"line_number":74,"context_line":"  - name: syslog.txt"},{"line_number":75,"context_line":"    tags:"},{"line_number":76,"context_line":"      - syslog"}],"source_content_type":"text/x-python","patch_set":24,"id":"cfcbb376_bb11f5e8","line":73,"range":{"start_line":73,"start_character":2,"end_line":73,"end_character":16},"updated":"2021-11-16 08:09:27.000000000","message":"was wondering where that came from :) but hound helped me find it https://opendev.org/opendev/base-jobs/src/branch/master/roles/submit-logstash-jobs/defaults/main.yaml","commit_id":"59c36f6487900d800d4a4ac3bd90454253abc6e1"},{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"9771a9039d5bc442931079aeb5e24eb438234342","unresolved":true,"context_lines":[{"line_number":49,"context_line":"    \"var/log/extra/errors.txt.gz\","},{"line_number":50,"context_line":"]"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"# From: https://opendev.org/opendev/base-jobs/src/branch/master/roles/submit-logstash-jobs/defaults/main.yaml # noqa"},{"line_number":53,"context_line":"logstash_processor_config \u003d \"\"\""},{"line_number":54,"context_line":"files:"},{"line_number":55,"context_line":"  - name: job-output.txt"}],"source_content_type":"text/x-python","patch_set":25,"id":"14cd7ac7_09049641","line":52,"range":{"start_line":52,"start_character":0,"end_line":52,"end_character":1},"updated":"2021-11-17 07:23:20.000000000","message":"thanks for adding... might be worth pointing out that *logstash_processor_config* specifically comes from there, as the rest of this file is new.","commit_id":"a6bdcc96b46bf88d48875cee7c76d187e257e82d"}],"requirements.txt":[{"author":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"change_message_id":"6e4cfa3595b6269e7455f955f5dc279b2f0a1ca6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"pbr\u003e\u003d1.6         # Apache-2.0"},{"line_number":2,"context_line":"gear\u003c\u003d0.16.0"},{"line_number":3,"context_line":"requests\u003c\u003d2.26.0 # Apache-2.0"},{"line_number":4,"context_line":"PyYAML\u003c\u003d6.0      # MIT"}],"source_content_type":"text/plain","patch_set":21,"id":"54ad84ee_efe6870a","line":4,"updated":"2021-11-12 15:46:33.000000000","message":"You might consider saving yourself some churn by making these gear\u003c0.17, requests\u003c2.27, and PyYAML\u003c6.1 (looks like they\u0027ve used a third component at times) unless you\u0027re concerned about the possibility that patch releases will break something.","commit_id":"a18a228cc66da582e176059fc7de391a045cc528"}],"setup.cfg":[{"author":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"change_message_id":"6e4cfa3595b6269e7455f955f5dc279b2f0a1ca6","unresolved":false,"context_lines":[{"line_number":4,"context_line":"description-file \u003d"},{"line_number":5,"context_line":"    README.rst"},{"line_number":6,"context_line":"author \u003d Openstack Contributors"},{"line_number":7,"context_line":"author-email \u003d service-discuss@lists.opendev.org"},{"line_number":8,"context_line":"home-page \u003d http://docs.openstack.org/infra/ci-log-processing"},{"line_number":9,"context_line":"classifier \u003d"},{"line_number":10,"context_line":"    Environment :: OpenStack"}],"source_content_type":"text/x-ttcn-cfg","patch_set":21,"id":"4a749b05_6913d95c","line":7,"updated":"2021-11-12 15:46:33.000000000","message":"Let\u0027s make this openstack-discuss@lists.openstack.org since it\u0027s produced under the OpenStack TaCT SIG, not part of the OpenDev Collaboratory infrastructure.","commit_id":"a18a228cc66da582e176059fc7de391a045cc528"},{"author":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"change_message_id":"6e4cfa3595b6269e7455f955f5dc279b2f0a1ca6","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    README.rst"},{"line_number":6,"context_line":"author \u003d Openstack Contributors"},{"line_number":7,"context_line":"author-email \u003d service-discuss@lists.opendev.org"},{"line_number":8,"context_line":"home-page \u003d http://docs.openstack.org/infra/ci-log-processing"},{"line_number":9,"context_line":"classifier \u003d"},{"line_number":10,"context_line":"    Environment :: OpenStack"},{"line_number":11,"context_line":"    Intended Audience :: Information Technology"}],"source_content_type":"text/x-ttcn-cfg","patch_set":21,"id":"d067de91_683df8b1","line":8,"updated":"2021-11-12 15:46:33.000000000","message":"Hard to know if this will be the correct URL until we get the docs publication jobs working.","commit_id":"a18a228cc66da582e176059fc7de391a045cc528"},{"author":{"_account_id":20676,"name":"daniel.pawlik","display_name":"Daniel Pawlik","email":"dpawlik@redhat.com","username":"daniel.pawlik"},"change_message_id":"b12f29e602f293705d828ee1768aadc3e4767231","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    README.rst"},{"line_number":6,"context_line":"author \u003d Openstack Contributors"},{"line_number":7,"context_line":"author-email \u003d service-discuss@lists.opendev.org"},{"line_number":8,"context_line":"home-page \u003d http://docs.openstack.org/infra/ci-log-processing"},{"line_number":9,"context_line":"classifier \u003d"},{"line_number":10,"context_line":"    Environment :: OpenStack"},{"line_number":11,"context_line":"    Intended Audience :: Information Technology"}],"source_content_type":"text/x-ttcn-cfg","patch_set":21,"id":"874e2521_17130c4b","line":8,"in_reply_to":"d067de91_683df8b1","updated":"2021-11-15 14:17:34.000000000","message":"let\u0027s assume that is like it is now. If it will be changed, also README.rst needs to be changed.","commit_id":"a18a228cc66da582e176059fc7de391a045cc528"},{"author":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"change_message_id":"6e4cfa3595b6269e7455f955f5dc279b2f0a1ca6","unresolved":false,"context_lines":[{"line_number":12,"context_line":"    Intended Audience :: System Administrators"},{"line_number":13,"context_line":"    License :: OSI Approved :: Apache Software License"},{"line_number":14,"context_line":"    Operating System :: POSIX :: Linux"},{"line_number":15,"context_line":"    Programming Language :: Python"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"[build_sphinx]"},{"line_number":18,"context_line":"all_files \u003d 1"}],"source_content_type":"text/x-ttcn-cfg","patch_set":21,"id":"3740bb7c_ebc24288","line":15,"updated":"2021-11-12 15:46:33.000000000","message":"Consider adding classifiers for specific Python versions you expect this to work with. Also it might help to add an [options] section with python_requires stating the lower-bound interpreter version you expect. See other projects for numerous examples: https://codesearch.opendev.org/?q\u003dpython_requires","commit_id":"a18a228cc66da582e176059fc7de391a045cc528"},{"author":{"_account_id":20676,"name":"daniel.pawlik","display_name":"Daniel Pawlik","email":"dpawlik@redhat.com","username":"daniel.pawlik"},"change_message_id":"b12f29e602f293705d828ee1768aadc3e4767231","unresolved":false,"context_lines":[{"line_number":12,"context_line":"    Intended Audience :: System Administrators"},{"line_number":13,"context_line":"    License :: OSI Approved :: Apache Software License"},{"line_number":14,"context_line":"    Operating System :: POSIX :: Linux"},{"line_number":15,"context_line":"    Programming Language :: Python"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"[build_sphinx]"},{"line_number":18,"context_line":"all_files \u003d 1"}],"source_content_type":"text/x-ttcn-cfg","patch_set":21,"id":"67cf8ef4_2559dc88","line":15,"in_reply_to":"3740bb7c_ebc24288","updated":"2021-11-15 14:17:34.000000000","message":"ok","commit_id":"a18a228cc66da582e176059fc7de391a045cc528"},{"author":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"change_message_id":"6e4cfa3595b6269e7455f955f5dc279b2f0a1ca6","unresolved":false,"context_lines":[{"line_number":14,"context_line":"    Operating System :: POSIX :: Linux"},{"line_number":15,"context_line":"    Programming Language :: Python"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"[build_sphinx]"},{"line_number":18,"context_line":"all_files \u003d 1"},{"line_number":19,"context_line":"build-dir \u003d doc/build"},{"line_number":20,"context_line":"source-dir \u003d doc/source"}],"source_content_type":"text/x-ttcn-cfg","patch_set":21,"id":"bc326371_87742f79","line":17,"updated":"2021-11-12 15:46:33.000000000","message":"This section is no longer needed, as we call sphinx-build directly in tox these days rather than relying on PBR to do it via calls to setup.py.","commit_id":"a18a228cc66da582e176059fc7de391a045cc528"},{"author":{"_account_id":20676,"name":"daniel.pawlik","display_name":"Daniel Pawlik","email":"dpawlik@redhat.com","username":"daniel.pawlik"},"change_message_id":"b12f29e602f293705d828ee1768aadc3e4767231","unresolved":false,"context_lines":[{"line_number":14,"context_line":"    Operating System :: POSIX :: Linux"},{"line_number":15,"context_line":"    Programming Language :: Python"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"[build_sphinx]"},{"line_number":18,"context_line":"all_files \u003d 1"},{"line_number":19,"context_line":"build-dir \u003d doc/build"},{"line_number":20,"context_line":"source-dir \u003d doc/source"}],"source_content_type":"text/x-ttcn-cfg","patch_set":21,"id":"ca6f3c35_f844b3b9","line":17,"in_reply_to":"bc326371_87742f79","updated":"2021-11-15 14:17:34.000000000","message":"ok","commit_id":"a18a228cc66da582e176059fc7de391a045cc528"}],"test-requirements.txt":[{"author":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"change_message_id":"6e4cfa3595b6269e7455f955f5dc279b2f0a1ca6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"hacking\u003e\u003d3.2.0 # Apache-2.0"},{"line_number":2,"context_line":"flake8"},{"line_number":3,"context_line":"pep8"},{"line_number":4,"context_line":"nose\u003c\u003d1.3.7 # LGPL"},{"line_number":5,"context_line":"testtools\u003e\u003d2.3.0 # MIT"},{"line_number":6,"context_line":"stestr\u003e\u003d2.0.0 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":21,"id":"03953079_15d7f9bb","line":3,"updated":"2021-11-12 15:46:33.000000000","message":"I find it interesting that you\u0027re pinning dependencies aggressively in requirements.txt but not any of your static analysis tools here. Usually it would be the other way around?","commit_id":"a18a228cc66da582e176059fc7de391a045cc528"},{"author":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"change_message_id":"6e4cfa3595b6269e7455f955f5dc279b2f0a1ca6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"hacking\u003e\u003d3.2.0 # Apache-2.0"},{"line_number":2,"context_line":"flake8"},{"line_number":3,"context_line":"pep8"},{"line_number":4,"context_line":"nose\u003c\u003d1.3.7 # LGPL"},{"line_number":5,"context_line":"testtools\u003e\u003d2.3.0 # MIT"},{"line_number":6,"context_line":"stestr\u003e\u003d2.0.0 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":21,"id":"68bf7387_44cbdb03","line":4,"updated":"2021-11-12 15:46:33.000000000","message":"Are you sure you\u0027re using nose in testing this project? I don\u0027t see it used at all.","commit_id":"a18a228cc66da582e176059fc7de391a045cc528"},{"author":{"_account_id":20676,"name":"daniel.pawlik","display_name":"Daniel Pawlik","email":"dpawlik@redhat.com","username":"daniel.pawlik"},"change_message_id":"b12f29e602f293705d828ee1768aadc3e4767231","unresolved":false,"context_lines":[{"line_number":1,"context_line":"hacking\u003e\u003d3.2.0 # Apache-2.0"},{"line_number":2,"context_line":"flake8"},{"line_number":3,"context_line":"pep8"},{"line_number":4,"context_line":"nose\u003c\u003d1.3.7 # LGPL"},{"line_number":5,"context_line":"testtools\u003e\u003d2.3.0 # MIT"},{"line_number":6,"context_line":"stestr\u003e\u003d2.0.0 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":21,"id":"57c6ce47_a966b0d2","line":4,"in_reply_to":"68bf7387_44cbdb03","updated":"2021-11-15 14:17:34.000000000","message":"right, nose was used on the beginning, then I change the code","commit_id":"a18a228cc66da582e176059fc7de391a045cc528"}],"tox.ini":[{"author":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"change_message_id":"6e4cfa3595b6269e7455f955f5dc279b2f0a1ca6","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"[flake8]"},{"line_number":25,"context_line":"# E125 and H are intentionally ignored"},{"line_number":26,"context_line":"ignore \u003d E125,H"},{"line_number":27,"context_line":"show-source \u003d True"},{"line_number":28,"context_line":"exclude \u003d .venv,.tox,dist,doc,build,*.egg"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-properties","patch_set":21,"id":"8a379549_cdaf8c56","line":26,"updated":"2021-11-12 15:46:33.000000000","message":"Out of curiosity, why install hacking and then ignore all of its findings?","commit_id":"a18a228cc66da582e176059fc7de391a045cc528"}]}
