)]}'
{".ansible-lint":[{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"0057aa9cc5545d4de6264acbb4f37ab0586fa5ce","unresolved":false,"context_lines":[{"line_number":1,"context_line":"use_default_rules: true"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"3fa7e38b_58e691e9","line":1,"updated":"2019-11-19 08:53:47.000000000","message":"skip_list:\n  - \u0027701\u0027\n\n?","commit_id":"201b908f67be0f644ca776221d010155fc925b51"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"145380d1875e978f2f18249cf4f7059a7a5bf5bf","unresolved":false,"context_lines":[{"line_number":1,"context_line":"use_default_rules: true"},{"line_number":2,"context_line":"skip_list:"},{"line_number":3,"context_line":"  - \u0027701\u0027"}],"source_content_type":"application/octet-stream","patch_set":9,"id":"3fa7e38b_5b344b49","line":3,"updated":"2019-11-19 10:00:07.000000000","message":"comment why","commit_id":"b5213b6a8096b83f2c300a977519f14282c335fc"},{"author":{"_account_id":24162,"name":"Sorin Sbârnea","display_name":"zbr","email":"ssbarnea@redhat.com","username":"ssbarnea","status":"do not feed the troll 🥕"},"change_message_id":"bf1267b8296d0bba1cb40fe83b04d96c1d0b5e20","unresolved":false,"context_lines":[{"line_number":1,"context_line":"use_default_rules: true"},{"line_number":2,"context_line":"skip_list:"},{"line_number":3,"context_line":"# [E701] galaxy_info missing in metadata"},{"line_number":4,"context_line":"  - \u0027701\u0027"},{"line_number":5,"context_line":"# [E602] https://github.com/ansible/ansible-lint/issues/457"},{"line_number":6,"context_line":"  - \u0027602\u0027"}],"source_content_type":"application/octet-stream","patch_set":22,"id":"3fa7e38b_ef7d9f1e","line":3,"range":{"start_line":3,"start_character":2,"end_line":3,"end_character":40},"updated":"2020-01-15 14:01:23.000000000","message":"Use the format used at https://github.com/openstack/tripleo-quickstart/blob/master/.ansible-lint#L7-L11\n\nLots of project from openstack already copied this, as is informative. Also be sure you distinguish between temporary skips and controversial ones (link to bug)\n\nThat is important for maintenability of the rules.","commit_id":"83b145b4dc2c4d7e7ee7e23d9313cc5257c172e0"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"5a8033e5785b23b8d4e4c3a43c290ab79f6e8b80","unresolved":false,"context_lines":[{"line_number":2,"context_line":"skip_list:"},{"line_number":3,"context_line":"# [E701] galaxy_info missing in metadata"},{"line_number":4,"context_line":"  - \u0027701\u0027"},{"line_number":5,"context_line":"# [E602] https://github.com/ansible/ansible-lint/issues/457"},{"line_number":6,"context_line":"  - \u0027602\u0027"}],"source_content_type":"application/octet-stream","patch_set":22,"id":"3fa7e38b_ef027f08","line":5,"range":{"start_line":5,"start_character":1,"end_line":5,"end_character":59},"updated":"2020-01-15 13:31:35.000000000","message":"write what E602 is and then add link?","commit_id":"83b145b4dc2c4d7e7ee7e23d9313cc5257c172e0"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"e2b1c528ea5a7678f807e5d5bfed70ea3a7a4c8c","unresolved":false,"context_lines":[{"line_number":4,"context_line":"  - \u0027701\u0027"},{"line_number":5,"context_line":"# [E602] https://github.com/ansible/ansible-lint/issues/457"},{"line_number":6,"context_line":"  - \u0027602\u0027"},{"line_number":7,"context_line":"# [E303] git used in place of git module"},{"line_number":8,"context_line":"  - \u0027303\u0027"}],"source_content_type":"application/octet-stream","patch_set":37,"id":"3f4c43b2_9f69f08c","line":8,"range":{"start_line":7,"start_character":0,"end_line":8,"end_character":9},"updated":"2020-04-17 09:31:41.000000000","message":"Not required?","commit_id":"1f36a3622fac28435b3afc447b65c920ee726a5c"}],"/COMMIT_MSG":[{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"5a8033e5785b23b8d4e4c3a43c290ab79f6e8b80","unresolved":false,"context_lines":[{"line_number":14,"context_line":"  - yamllint"},{"line_number":15,"context_line":"  - ansible-lint (validate-all-files.py + ansible-lint)"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"* Skip E701 - missing galaxy_info in meta"},{"line_number":18,"context_line":"* Added ansible-role-jobs to zuul.d/project.yaml which will run"},{"line_number":19,"context_line":"  openstack-tox-linters job in check queue"},{"line_number":20,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":22,"id":"3fa7e38b_f40d7240","line":17,"range":{"start_line":17,"start_character":2,"end_line":17,"end_character":41},"updated":"2020-01-15 13:31:35.000000000","message":"also E602 is skipped","commit_id":"83b145b4dc2c4d7e7ee7e23d9313cc5257c172e0"}],"test-ansible-requirements.txt":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"9ea646afd5d7ee9967cd643ee832d6f38ff82e15","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Additional test requirements not managed by OpenStack requirements repo"},{"line_number":2,"context_line":"ansible-lint\u003e\u003d4.2.0 # MIT"},{"line_number":3,"context_line":"yamllint\u003e\u003d1.22.0 # GPL3"}],"source_content_type":"text/plain","patch_set":45,"id":"ff570b3c_3815659d","line":3,"updated":"2020-05-14 10:11:02.000000000","message":"We could request for these to be added to the blacklist, like we did for ansible. Seems ansible-lint is already there: https://github.com/openstack/requirements/blob/master/blacklist.txt","commit_id":"03e1f9ce72d6c9f03cbcb7897ab30626357002df"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"f641016107211442d55adaca183ac6e731817d16","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Additional test requirements not managed by OpenStack requirements repo"},{"line_number":2,"context_line":"ansible-lint\u003e\u003d4.2.0 # MIT"},{"line_number":3,"context_line":"yamllint\u003e\u003d1.22.0 # GPL3"}],"source_content_type":"text/plain","patch_set":45,"id":"ff570b3c_b3dd1672","line":3,"in_reply_to":"ff570b3c_3815659d","updated":"2020-05-14 10:32:54.000000000","message":"Raised a change: https://review.opendev.org/728018","commit_id":"03e1f9ce72d6c9f03cbcb7897ab30626357002df"}],"test-requirements.txt":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"e5b5e2b25a6940415ac55290994f9db3b105dca2","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# linting"},{"line_number":2,"context_line":"ansible-lint\u003e\u003d4.2.0 # MIT"},{"line_number":3,"context_line":"bandit\u003e\u003d1.1.0 # Apache-2.0"},{"line_number":4,"context_line":"bashate\u003e\u003d0.5.1 # Apache-2.0"},{"line_number":5,"context_line":"doc8\u003e\u003d0.6.0 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":50,"id":"ff570b3c_26c22a5a","line":2,"updated":"2020-05-18 09:15:01.000000000","message":"We should probably add an upper limit (e.g. 5.0) here to prevent us getting broken by a release.","commit_id":"d8f31e0a5ef28dcc2325fd5951657e211c39a465"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"e5b5e2b25a6940415ac55290994f9db3b105dca2","unresolved":false,"context_lines":[{"line_number":4,"context_line":"bashate\u003e\u003d0.5.1 # Apache-2.0"},{"line_number":5,"context_line":"doc8\u003e\u003d0.6.0 # Apache-2.0"},{"line_number":6,"context_line":"hacking\u003e\u003d3.0.1,\u003c3.1.0 # Apache-2.0"},{"line_number":7,"context_line":"yamllint\u003e\u003d1.22.0 #GPL3"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"# coverage testing"},{"line_number":10,"context_line":"coverage!\u003d4.4,\u003e\u003d4.0 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":50,"id":"ff570b3c_86b3360a","line":7,"updated":"2020-05-18 09:15:01.000000000","message":"ditto","commit_id":"d8f31e0a5ef28dcc2325fd5951657e211c39a465"}],"tools/ansible-lint.sh":[{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"9eb24321698a2089de64ad945f0c1c91ea4a2028","unresolved":false,"context_lines":[{"line_number":13,"context_line":"# limitations under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"for ROLE in ansible/roles/*/; do"},{"line_number":16,"context_line":"    echo -ne \u0027Processing role ${ROLE}\u0027"},{"line_number":17,"context_line":"    ansible-lint -p ${ROLE}"},{"line_number":18,"context_line":"done"}],"source_content_type":"text/x-sh","patch_set":4,"id":"3fa7e38b_1ad1fb57","line":16,"range":{"start_line":16,"start_character":4,"end_line":16,"end_character":38},"updated":"2019-11-18 14:55:57.000000000","message":"s/\u0027/\" to parse ${ROLE}\n\ndrop \"-ne\" to split it from ansible-lint output","commit_id":"697b764bf001e6ed358bb7b17923fdae8a081b81"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"9eb24321698a2089de64ad945f0c1c91ea4a2028","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"for ROLE in ansible/roles/*/; do"},{"line_number":16,"context_line":"    echo -ne \u0027Processing role ${ROLE}\u0027"},{"line_number":17,"context_line":"    ansible-lint -p ${ROLE}"},{"line_number":18,"context_line":"done"}],"source_content_type":"text/x-sh","patch_set":4,"id":"3fa7e38b_facbbfa0","line":17,"range":{"start_line":17,"start_character":17,"end_line":17,"end_character":27},"updated":"2019-11-18 14:55:57.000000000","message":"2\u003e/dev/null to make output more readable?","commit_id":"697b764bf001e6ed358bb7b17923fdae8a081b81"},{"author":{"_account_id":24162,"name":"Sorin Sbârnea","display_name":"zbr","email":"ssbarnea@redhat.com","username":"ssbarnea","status":"do not feed the troll 🥕"},"change_message_id":"f32fe02c9e7fef2d0f58069593bd4557bf8b2bae","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/bin/bash"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":4,"context_line":"# you may not use this file except in compliance with the License."}],"source_content_type":"text/x-sh","patch_set":22,"id":"3fa7e38b_6fa68faf","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":1},"updated":"2020-01-15 14:03:28.000000000","message":"There is no real need to create additional scripts to run ansible lint.\n\nLook how is called on https://github.com/openstack/tripleo-quickstart/blob/master/\n\ntox -e linters should be enough to contain it.","commit_id":"83b145b4dc2c4d7e7ee7e23d9313cc5257c172e0"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"ece7dad201782ea63890c58a6641b7a8dc9446b3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/bin/bash"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":4,"context_line":"# you may not use this file except in compliance with the License."}],"source_content_type":"text/x-sh","patch_set":22,"id":"3fa7e38b_75e73911","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":1},"in_reply_to":"3fa7e38b_6fa68faf","updated":"2020-01-15 18:03:16.000000000","message":"It\u0027s not enough, we need to rely on \u003crole\u003e/meta/main.yml to identify a role, running ansible-lint site.yml gives me this (probably it\u0027s due to us having a block with include_role when running the haproxy role):\nTraceback (most recent call last):\n  File \"/bin/ansible-lint\", line 8, in \u003cmodule\u003e\n    sys.exit(main())\n  File \"/usr/lib/python2.7/site-packages/ansiblelint/__main__.py\", line 187, in main\n    matches.extend(runner.run())\n  File \"/usr/lib/python2.7/site-packages/ansiblelint/__init__.py\", line 264, in run\n    for child in ansiblelint.utils.find_children(arg, self.playbook_dir):\n  File \"/usr/lib/python2.7/site-packages/ansiblelint/utils.py\", line 171, in find_children\n    for child in play_children(basedir, item, playbook[1], playbook_dir):\n  File \"/usr/lib/python2.7/site-packages/ansiblelint/utils.py\", line 223, in play_children\n    return delegate_map[k](basedir, k, v, parent_type)\n  File \"/usr/lib/python2.7/site-packages/ansiblelint/utils.py\", line 256, in _taskshandlers_children\n    results.extend(_taskshandlers_children(basedir, k, th[\u0027block\u0027], parent_type))\n  File \"/usr/lib/python2.7/site-packages/ansiblelint/utils.py\", line 254, in _taskshandlers_children\n    main\u003dth[\u0027include_role\u0027].get(\u0027tasks_from\u0027, \u0027main\u0027)))\n  File \"/usr/lib/python2.7/site-packages/ansiblelint/utils.py\", line 293, in _roles_children\n    results.extend(_look_for_role_files(basedir, role, main\u003dmain))\n  File \"/usr/lib/python2.7/site-packages/ansiblelint/utils.py\", line 342, in _look_for_role_files\n    role_path \u003d _rolepath(basedir, role)\n  File \"/usr/lib/python2.7/site-packages/ansiblelint/utils.py\", line 309, in _rolepath\n    path_dwim(basedir, os.path.join(\u0027roles\u0027, role)),\n  File \"/usr/lib64/python2.7/posixpath.py\", line 75, in join\n    if b.startswith(\u0027/\u0027):\nAttributeError: \u0027NoneType\u0027 object has no attribute \u0027startswith\u0027","commit_id":"83b145b4dc2c4d7e7ee7e23d9313cc5257c172e0"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"57ca53b64cbfa441db8e0445f774ceae97ce84e4","unresolved":false,"context_lines":[{"line_number":17,"context_line":"export ANSIBLE_FILTER_PLUGINS\u003d./ansible/filter_plugins"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"for ROLE in ansible/roles/*/; do"},{"line_number":20,"context_line":"    ansible-lint -p ${ROLE} 2\u003e/dev/null || rc\u003d$?"},{"line_number":21,"context_line":"done"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"exit $rc"}],"source_content_type":"text/x-sh","patch_set":25,"id":"3f4c43b2_2de7e842","line":20,"updated":"2020-04-16 13:53:19.000000000","message":"Why are we executing the roles rather than playbooks?","commit_id":"44a974fd0ef01959476da06e16757661dab8f873"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"af64aebbaccdbf8a3025b1d14b04efef8cf55aff","unresolved":false,"context_lines":[{"line_number":17,"context_line":"export ANSIBLE_FILTER_PLUGINS\u003d./ansible/filter_plugins"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"for ROLE in ansible/roles/*/; do"},{"line_number":20,"context_line":"    ansible-lint -p ${ROLE} 2\u003e/dev/null || rc\u003d$?"},{"line_number":21,"context_line":"done"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"exit $rc"}],"source_content_type":"text/x-sh","patch_set":25,"id":"3f4c43b2_2d49a8cf","line":20,"in_reply_to":"3f4c43b2_2de7e842","updated":"2020-04-16 14:04:13.000000000","message":"because ansible-lint will complain for missing variables, missing plugins, and so on. I still need to rework that, because we don\u0027t need that script anymore - thanks to Radek and his change to site.yml.","commit_id":"44a974fd0ef01959476da06e16757661dab8f873"}],"tox.ini":[{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"65ce4fd90301101756c5d2978939293ad68b10e8","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    coverage html -d cover"},{"line_number":39,"context_line":"    coverage xml -o cover/coverage.xml"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"[testenv:pep8]"},{"line_number":42,"context_line":"basepython \u003d python3"},{"line_number":43,"context_line":"commands \u003d"},{"line_number":44,"context_line":"  flake8 {posargs}"}],"source_content_type":"text/x-properties","patch_set":1,"id":"3fa7e38b_cf3ac732","line":41,"updated":"2019-11-18 14:14:26.000000000","message":"unfortunately we are no longer running the rest of it in CI","commit_id":"21280dc3673fd400f194a7d061286369bdfe9ae2"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"d62cbcde8f992c29379c53531c6dd36dc9e7be86","unresolved":false,"context_lines":[{"line_number":7,"context_line":"usedevelop\u003dTrue"},{"line_number":8,"context_line":"whitelist_externals \u003d find"},{"line_number":9,"context_line":"                      rm"},{"line_number":10,"context_line":"                      tox"},{"line_number":11,"context_line":"install_command \u003d pip install {opts} {packages}"},{"line_number":12,"context_line":"deps \u003d -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}"},{"line_number":13,"context_line":"       -r{toxinidir}/requirements.txt"}],"source_content_type":"text/x-properties","patch_set":7,"id":"3fa7e38b_924707a4","line":10,"updated":"2019-11-19 07:56:32.000000000","message":"why not bash here?","commit_id":"63fea01834beb079cebb505b58dacf34840a3efd"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"20f1f7017e202a557db991ad39ab14d1985f33eb","unresolved":false,"context_lines":[{"line_number":7,"context_line":"usedevelop\u003dTrue"},{"line_number":8,"context_line":"whitelist_externals \u003d find"},{"line_number":9,"context_line":"                      rm"},{"line_number":10,"context_line":"                      tox"},{"line_number":11,"context_line":"install_command \u003d pip install {opts} {packages}"},{"line_number":12,"context_line":"deps \u003d -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}"},{"line_number":13,"context_line":"       -r{toxinidir}/requirements.txt"}],"source_content_type":"text/x-properties","patch_set":7,"id":"3fa7e38b_b2b0038d","line":10,"in_reply_to":"3fa7e38b_924707a4","updated":"2019-11-19 08:05:38.000000000","message":"argh, some remnant of other approaches - changing, thanks for spotting!","commit_id":"63fea01834beb079cebb505b58dacf34840a3efd"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"08c3e37d0af20faf97ccbda94e91bdf2a014beb8","unresolved":false,"context_lines":[{"line_number":133,"context_line":""},{"line_number":134,"context_line":"[testenv:linters]"},{"line_number":135,"context_line":"basepython \u003d python3"},{"line_number":136,"context_line":"whitelist_externals \u003d bash"},{"line_number":137,"context_line":"setenv \u003d"},{"line_number":138,"context_line":"  ANSIBLE_LIBRARY\u003d{toxinidir}/ansible/library"},{"line_number":139,"context_line":"  ANSIBLE_ACTION_PLUGINS\u003d{toxinidir}/ansible/action_plugins"}],"source_content_type":"text/x-properties","patch_set":8,"id":"3fa7e38b_f83e5db7","line":136,"updated":"2019-11-19 08:24:08.000000000","message":"then this is not required","commit_id":"201b908f67be0f644ca776221d010155fc925b51"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"40d6ec7e15c16c6b1b765cf5a308eb358b1db4dc","unresolved":false,"context_lines":[{"line_number":134,"context_line":"[testenv:linters]"},{"line_number":135,"context_line":"basepython \u003d python3"},{"line_number":136,"context_line":"setenv \u003d"},{"line_number":137,"context_line":"  ANSIBLE_LIBRARY\u003d{toxinidir}/ansible/library"},{"line_number":138,"context_line":"  ANSIBLE_ACTION_PLUGINS\u003d{toxinidir}/ansible/action_plugins"},{"line_number":139,"context_line":"  ANSIBLE_FILTER_PLUGINS\u003d{toxinidir}/ansible/filter_plugins"},{"line_number":140,"context_line":"deps \u003d"},{"line_number":141,"context_line":"    {[testenv]deps}"},{"line_number":142,"context_line":"    -r{toxinidir}/doc/requirements.txt"}],"source_content_type":"text/x-properties","patch_set":9,"id":"3fa7e38b_9bbf23cf","line":139,"range":{"start_line":137,"start_character":0,"end_line":139,"end_character":59},"updated":"2019-11-19 09:47:39.000000000","message":"Move those to tools/ansible-lint.sh so it can be easily run/checked in local environment","commit_id":"b5213b6a8096b83f2c300a977519f14282c335fc"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"5a8033e5785b23b8d4e4c3a43c290ab79f6e8b80","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    coverage xml -o cover/coverage.xml"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"[testenv:pep8]"},{"line_number":41,"context_line":"basepython \u003d python3"},{"line_number":42,"context_line":"commands \u003d"},{"line_number":43,"context_line":"  flake8 {posargs}"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-properties","patch_set":22,"id":"3fa7e38b_4f2713b7","line":41,"range":{"start_line":41,"start_character":0,"end_line":41,"end_character":20},"updated":"2020-01-15 13:31:35.000000000","message":"not needed as it is default set in [testenv]","commit_id":"83b145b4dc2c4d7e7ee7e23d9313cc5257c172e0"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"5a8033e5785b23b8d4e4c3a43c290ab79f6e8b80","unresolved":false,"context_lines":[{"line_number":43,"context_line":"  flake8 {posargs}"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"[testenv:doc8]"},{"line_number":46,"context_line":"basepython \u003d python3"},{"line_number":47,"context_line":"commands \u003d"},{"line_number":48,"context_line":"  doc8 doc/source"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-properties","patch_set":22,"id":"3fa7e38b_af3567de","line":46,"range":{"start_line":46,"start_character":0,"end_line":46,"end_character":20},"updated":"2020-01-15 13:31:35.000000000","message":"not needed as it is default set in [testenv]","commit_id":"83b145b4dc2c4d7e7ee7e23d9313cc5257c172e0"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"5a8033e5785b23b8d4e4c3a43c290ab79f6e8b80","unresolved":false,"context_lines":[{"line_number":48,"context_line":"  doc8 doc/source"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"[testenv:bashate]"},{"line_number":51,"context_line":"basepython \u003d python3"},{"line_number":52,"context_line":"commands \u003d"},{"line_number":53,"context_line":"    bash -c \"{toxinidir}/tools/run-bashate.sh\""},{"line_number":54,"context_line":""}],"source_content_type":"text/x-properties","patch_set":22,"id":"3fa7e38b_cf3223f4","line":51,"range":{"start_line":51,"start_character":0,"end_line":51,"end_character":20},"updated":"2020-01-15 13:31:35.000000000","message":"not needed as it is default set in [testenv]","commit_id":"83b145b4dc2c4d7e7ee7e23d9313cc5257c172e0"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"5a8033e5785b23b8d4e4c3a43c290ab79f6e8b80","unresolved":false,"context_lines":[{"line_number":57,"context_line":"commands \u003d bandit --skip B303 -r ansible kolla_ansible tests tools"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"[testenv:ansible-lint]"},{"line_number":60,"context_line":"basepython \u003d python3"},{"line_number":61,"context_line":"commands \u003d"},{"line_number":62,"context_line":"  python {toxinidir}/tools/validate-all-file.py"},{"line_number":63,"context_line":"  bash -c \"{toxinidir}/tools/ansible-lint.sh\""}],"source_content_type":"text/x-properties","patch_set":22,"id":"3fa7e38b_6f2f6f89","line":60,"range":{"start_line":60,"start_character":0,"end_line":60,"end_character":20},"updated":"2020-01-15 13:31:35.000000000","message":"not needed as it is default set in [testenv]","commit_id":"83b145b4dc2c4d7e7ee7e23d9313cc5257c172e0"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"5a8033e5785b23b8d4e4c3a43c290ab79f6e8b80","unresolved":false,"context_lines":[{"line_number":118,"context_line":"  -r{toxinidir}/requirements.txt"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"[testenv:linters]"},{"line_number":121,"context_line":"basepython \u003d python3"},{"line_number":122,"context_line":"deps \u003d"},{"line_number":123,"context_line":"    {[testenv]deps}"},{"line_number":124,"context_line":"    -r{toxinidir}/doc/requirements.txt"}],"source_content_type":"text/x-properties","patch_set":22,"id":"3fa7e38b_2f473755","line":121,"range":{"start_line":121,"start_character":0,"end_line":121,"end_character":20},"updated":"2020-01-15 13:31:35.000000000","message":"not needed as it is default set in [testenv]","commit_id":"83b145b4dc2c4d7e7ee7e23d9313cc5257c172e0"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"57ca53b64cbfa441db8e0445f774ceae97ce84e4","unresolved":false,"context_lines":[{"line_number":42,"context_line":"deps \u003d"},{"line_number":43,"context_line":"    {[testenv]deps}"},{"line_number":44,"context_line":"    -r{toxinidir}/doc/requirements.txt"},{"line_number":45,"context_line":"    yamllint"},{"line_number":46,"context_line":"commands \u003d"},{"line_number":47,"context_line":"  {toxinidir}/tools/run-bashate.sh"},{"line_number":48,"context_line":"  flake8 {posargs}"}],"source_content_type":"text/x-properties","patch_set":25,"id":"3f4c43b2_2d5528c7","side":"PARENT","line":45,"range":{"start_line":45,"start_character":4,"end_line":45,"end_character":12},"updated":"2020-04-16 13:53:19.000000000","message":"Should this be in test-requirements.txt?","commit_id":"32e810f3a01e489d069810770fa5e98971878f0b"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"57ca53b64cbfa441db8e0445f774ceae97ce84e4","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    coverage xml -o cover/coverage.xml"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"[testenv:pep8]"},{"line_number":42,"context_line":"basepython \u003d python3"},{"line_number":43,"context_line":"commands \u003d"},{"line_number":44,"context_line":"  flake8 {posargs}"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-properties","patch_set":25,"id":"3f4c43b2_4dd51443","line":42,"range":{"start_line":42,"start_character":0,"end_line":42,"end_character":20},"updated":"2020-04-16 13:53:19.000000000","message":"Not required (and elsewhere)","commit_id":"44a974fd0ef01959476da06e16757661dab8f873"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"57ca53b64cbfa441db8e0445f774ceae97ce84e4","unresolved":false,"context_lines":[{"line_number":126,"context_line":"basepython \u003d python3"},{"line_number":127,"context_line":"deps \u003d"},{"line_number":128,"context_line":"    {[testenv]deps}"},{"line_number":129,"context_line":"    -r{toxinidir}/doc/requirements.txt"},{"line_number":130,"context_line":"    ansible-lint"},{"line_number":131,"context_line":"    yamllint"},{"line_number":132,"context_line":"commands \u003d"}],"source_content_type":"text/x-properties","patch_set":25,"id":"3f4c43b2_6d0570c2","line":129,"range":{"start_line":129,"start_character":4,"end_line":129,"end_character":38},"updated":"2020-04-16 13:53:19.000000000","message":"Probably don\u0027t need this now.","commit_id":"44a974fd0ef01959476da06e16757661dab8f873"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"57ca53b64cbfa441db8e0445f774ceae97ce84e4","unresolved":false,"context_lines":[{"line_number":127,"context_line":"deps \u003d"},{"line_number":128,"context_line":"    {[testenv]deps}"},{"line_number":129,"context_line":"    -r{toxinidir}/doc/requirements.txt"},{"line_number":130,"context_line":"    ansible-lint"},{"line_number":131,"context_line":"    yamllint"},{"line_number":132,"context_line":"commands \u003d"},{"line_number":133,"context_line":"    {[testenv:pep8]commands}"}],"source_content_type":"text/x-properties","patch_set":25,"id":"3f4c43b2_8d5d5ceb","line":130,"range":{"start_line":130,"start_character":4,"end_line":130,"end_character":16},"updated":"2020-04-16 13:53:19.000000000","message":"should be in ansible-lint, or test-requirements.txt","commit_id":"44a974fd0ef01959476da06e16757661dab8f873"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"57ca53b64cbfa441db8e0445f774ceae97ce84e4","unresolved":false,"context_lines":[{"line_number":128,"context_line":"    {[testenv]deps}"},{"line_number":129,"context_line":"    -r{toxinidir}/doc/requirements.txt"},{"line_number":130,"context_line":"    ansible-lint"},{"line_number":131,"context_line":"    yamllint"},{"line_number":132,"context_line":"commands \u003d"},{"line_number":133,"context_line":"    {[testenv:pep8]commands}"},{"line_number":134,"context_line":"    {[testenv:doc8]commands}"}],"source_content_type":"text/x-properties","patch_set":25,"id":"3f4c43b2_4d6354b2","line":131,"range":{"start_line":131,"start_character":4,"end_line":131,"end_character":12},"updated":"2020-04-16 13:53:19.000000000","message":"Should be in yamllint, or test-requirements.txt","commit_id":"44a974fd0ef01959476da06e16757661dab8f873"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"e2b1c528ea5a7678f807e5d5bfed70ea3a7a4c8c","unresolved":false,"context_lines":[{"line_number":91,"context_line":"deps \u003d"},{"line_number":92,"context_line":"  -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}"},{"line_number":93,"context_line":"  -r{toxinidir}/test-requirements.txt"},{"line_number":94,"context_line":"  -r{toxinidir}/doc/requirements.txt"},{"line_number":95,"context_line":"  -r{toxinidir}/test-ansible-requirements.txt"},{"line_number":96,"context_line":"whitelist_externals \u003d bash"},{"line_number":97,"context_line":"commands \u003d"}],"source_content_type":"text/x-properties","patch_set":37,"id":"3f4c43b2_7f222454","line":94,"range":{"start_line":94,"start_character":2,"end_line":94,"end_character":36},"updated":"2020-04-17 09:31:41.000000000","message":"Shouldn\u0027t need this.","commit_id":"1f36a3622fac28435b3afc447b65c920ee726a5c"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"e2b1c528ea5a7678f807e5d5bfed70ea3a7a4c8c","unresolved":false,"context_lines":[{"line_number":128,"context_line":"# B303: Use of insecure MD2, MD4, MD5, or SHA1 hash function."},{"line_number":129,"context_line":"commands \u003d bandit --skip B303 -r ansible kolla_ansible tests tools"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"[testenv:ansible-lint]"},{"line_number":132,"context_line":"# Lint only code in ansible/* - ignore tests/ and roles/ used by CI"},{"line_number":133,"context_line":"commands \u003d"},{"line_number":134,"context_line":"  python {toxinidir}/tools/validate-all-file.py"}],"source_content_type":"text/x-properties","patch_set":37,"id":"3f4c43b2_7fe7c413","line":131,"updated":"2020-04-17 09:31:41.000000000","message":"setenv \u003d {[testenv:linters]setenv}\ndeps \u003d {[testenv:linters]deps}","commit_id":"1f36a3622fac28435b3afc447b65c920ee726a5c"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"e2b1c528ea5a7678f807e5d5bfed70ea3a7a4c8c","unresolved":false,"context_lines":[{"line_number":134,"context_line":"  python {toxinidir}/tools/validate-all-file.py"},{"line_number":135,"context_line":"  ansible-lint -p ansible/*"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"[testenv:yamllint]"},{"line_number":138,"context_line":"commands \u003d yamllint -s ."}],"source_content_type":"text/x-properties","patch_set":37,"id":"3f4c43b2_5fe2c802","line":137,"updated":"2020-04-17 09:31:41.000000000","message":"deps \u003d {[testenv:linters]deps}","commit_id":"1f36a3622fac28435b3afc447b65c920ee726a5c"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"9739d3dbac11f7c8cc97ad08bc8e58fa4209559d","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[testenv]"},{"line_number":8,"context_line":"basepython \u003d python3"},{"line_number":9,"context_line":"usedevelop \u003d True"},{"line_number":10,"context_line":"whitelist_externals \u003d find"},{"line_number":11,"context_line":"                      rm"},{"line_number":12,"context_line":"deps \u003d -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}"}],"source_content_type":"text/x-properties","patch_set":47,"id":"ff570b3c_1f30169f","line":9,"updated":"2020-05-17 08:41:46.000000000","message":"did we start linting ini files? or just ocd? :-) (welcome in the club then ;-) )","commit_id":"ad07abec48bfebb20203741a331ee5bb40ba1cbd"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"9739d3dbac11f7c8cc97ad08bc8e58fa4209559d","unresolved":false,"context_lines":[{"line_number":112,"context_line":"# W503 line break before binary operator"},{"line_number":113,"context_line":"# W504 line break after binary operator"},{"line_number":114,"context_line":"ignore \u003d W503,W504"},{"line_number":115,"context_line":"exclude\u003d.eggs,.git,.tox,doc"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"[testenv:doc8]"},{"line_number":118,"context_line":"deps \u003d {[testenv:linters]deps}"}],"source_content_type":"text/x-properties","patch_set":47,"id":"ff570b3c_5f260e6a","line":115,"updated":"2020-05-17 08:41:46.000000000","message":"ocd did not work here :-)","commit_id":"ad07abec48bfebb20203741a331ee5bb40ba1cbd"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"9739d3dbac11f7c8cc97ad08bc8e58fa4209559d","unresolved":false,"context_lines":[{"line_number":126,"context_line":"    bash -c \"{toxinidir}/tools/run-bashate.sh\""},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"[testenv:bandit]"},{"line_number":129,"context_line":"# B303: Use of insecure MD2, MD4, MD5, or SHA1 hash function."},{"line_number":130,"context_line":"deps \u003d {[testenv:linters]deps}"},{"line_number":131,"context_line":"commands \u003d bandit --skip B303 -r ansible kolla_ansible tests tools"},{"line_number":132,"context_line":""}],"source_content_type":"text/x-properties","patch_set":47,"id":"ff570b3c_ff344295","line":129,"updated":"2020-05-17 08:41:46.000000000","message":"I guess it wanted to go away? :D","commit_id":"ad07abec48bfebb20203741a331ee5bb40ba1cbd"}],"zuul.d/base.yaml":[{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"9739d3dbac11f7c8cc97ad08bc8e58fa4209559d","unresolved":false,"context_lines":[{"line_number":17,"context_line":"      - ^releasenotes/.*$"},{"line_number":18,"context_line":"      - ^deploy-guide/.*$"},{"line_number":19,"context_line":"      - ^test-requirements.txt$"},{"line_number":20,"context_line":"      - ^test-ansible-requirements.txt$"},{"line_number":21,"context_line":"      - ^etc/kolla/globals.yml$"},{"line_number":22,"context_line":"      - ^tox.ini$"},{"line_number":23,"context_line":"      - ^\\..+"}],"source_content_type":"text/x-yaml","patch_set":47,"id":"ff570b3c_3f2b5a30","line":20,"updated":"2020-05-17 08:41:46.000000000","message":"no","commit_id":"ad07abec48bfebb20203741a331ee5bb40ba1cbd"}]}
