)]}'
{".zuul.yaml":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"0b09edd3c2d512c94f1b00a9cffe7d607c8aba2a","unresolved":false,"context_lines":[{"line_number":214,"context_line":"      jobs:"},{"line_number":215,"context_line":"        - patrole-admin"},{"line_number":216,"context_line":"        - patrole-member"},{"line_number":217,"context_line":"        - patrole-reader"},{"line_number":218,"context_line":"        - patrole-member-rocky"},{"line_number":219,"context_line":"        - patrole-member-queens"},{"line_number":220,"context_line":"        - patrole-member-pike"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"9fdfeff1_0d78f227","line":217,"range":{"start_line":217,"start_character":10,"end_line":217,"end_character":24},"updated":"2019-01-26 00:00:38.000000000","message":"My personal recommendation is that this should be set to non-voting initially and only elevated to voting after a period of proven stability. This is generally the plan with QA jobs.","commit_id":"c6ec438bcda5bb0637f232e57c5fd0a1ddbb2711"},{"author":{"_account_id":8911,"name":"Sergey Vilgelm","email":"sergey@vilgelm.info","username":"sergey.vilgelm"},"change_message_id":"f2ce547a13ea17a1a25815a8eb467299544c9716","unresolved":false,"context_lines":[{"line_number":214,"context_line":"      jobs:"},{"line_number":215,"context_line":"        - patrole-admin"},{"line_number":216,"context_line":"        - patrole-member"},{"line_number":217,"context_line":"        - patrole-reader"},{"line_number":218,"context_line":"        - patrole-member-rocky"},{"line_number":219,"context_line":"        - patrole-member-queens"},{"line_number":220,"context_line":"        - patrole-member-pike"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"9fdfeff1_48f908c6","line":217,"range":{"start_line":217,"start_character":10,"end_line":217,"end_character":24},"in_reply_to":"9fdfeff1_0d78f227","updated":"2019-01-26 01:23:42.000000000","message":"Done","commit_id":"c6ec438bcda5bb0637f232e57c5fd0a1ddbb2711"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"d4b7b4bff2e47574ad6ea151cb3d8042a69beda0","unresolved":false,"context_lines":[{"line_number":193,"context_line":"      devstack_localrc:"},{"line_number":194,"context_line":"        RBAC_TEST_ROLES: member"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"- job:"},{"line_number":197,"context_line":"    name: patrole-extension-reader"},{"line_number":198,"context_line":"    parent: patrole-extension-base"},{"line_number":199,"context_line":"    voting: false"},{"line_number":200,"context_line":"    vars:"},{"line_number":201,"context_line":"      devstack_localrc:"},{"line_number":202,"context_line":"        RBAC_TEST_ROLES: reader"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"- project:"},{"line_number":205,"context_line":"    templates:"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"9fdfeff1_c8c96eac","line":202,"range":{"start_line":196,"start_character":0,"end_line":202,"end_character":31},"updated":"2019-01-28 01:07:48.000000000","message":"Just curious: does Neutron make use of reader role? Otherwise this isn\u0027t necessary.","commit_id":"3941bb152798c8e7ce4b210265f0f154fecd4e43"},{"author":{"_account_id":8911,"name":"Sergey Vilgelm","email":"sergey@vilgelm.info","username":"sergey.vilgelm"},"change_message_id":"b792ccd01ffea7d6f45fd2e553537c60a3ee86ee","unresolved":false,"context_lines":[{"line_number":193,"context_line":"      devstack_localrc:"},{"line_number":194,"context_line":"        RBAC_TEST_ROLES: member"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"- job:"},{"line_number":197,"context_line":"    name: patrole-extension-reader"},{"line_number":198,"context_line":"    parent: patrole-extension-base"},{"line_number":199,"context_line":"    voting: false"},{"line_number":200,"context_line":"    vars:"},{"line_number":201,"context_line":"      devstack_localrc:"},{"line_number":202,"context_line":"        RBAC_TEST_ROLES: reader"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"- project:"},{"line_number":205,"context_line":"    templates:"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"9fdfeff1_28cefa2d","line":202,"range":{"start_line":196,"start_character":0,"end_line":202,"end_character":31},"in_reply_to":"9fdfeff1_c8c96eac","updated":"2019-01-28 02:23:41.000000000","message":":) You are right, we don\u0027t need it right now, may be in the future","commit_id":"3941bb152798c8e7ce4b210265f0f154fecd4e43"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"cd4939bacf7aa871dbb7cb07fd58dcb53bbd5a7c","unresolved":false,"context_lines":[{"line_number":86,"context_line":"    name: patrole-reader"},{"line_number":87,"context_line":"    parent: patrole-base"},{"line_number":88,"context_line":"    description: Patrole job for reader role."},{"line_number":89,"context_line":"    # This currently works from stable/pike onward."},{"line_number":90,"context_line":"    branches: ^(?!stable/ocata).*$"},{"line_number":91,"context_line":"    voting: false"},{"line_number":92,"context_line":"    vars:"},{"line_number":93,"context_line":"      devstack_localrc:"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"9fdfeff1_012af17d","line":90,"range":{"start_line":89,"start_character":32,"end_line":90,"end_character":34},"updated":"2019-01-28 07:56:27.000000000","message":"should not we run this from stable/stein onwards as reader role is first implemented in keystone only and from stein. \n\nAs there is no reader role in before stein, there will be not_allowed checking only for all tests which is not required. \n\nbranches: ^(?!stable/(ocata|pike|queens)).*$","commit_id":"0c1a1bf0f2719e4a14ec3abbcc891421c009f6be"},{"author":{"_account_id":8911,"name":"Sergey Vilgelm","email":"sergey@vilgelm.info","username":"sergey.vilgelm"},"change_message_id":"a81f0a3312ef20d952a7acc6289fdcab55c501ef","unresolved":false,"context_lines":[{"line_number":86,"context_line":"    name: patrole-reader"},{"line_number":87,"context_line":"    parent: patrole-base"},{"line_number":88,"context_line":"    description: Patrole job for reader role."},{"line_number":89,"context_line":"    # This currently works from stable/pike onward."},{"line_number":90,"context_line":"    branches: ^(?!stable/ocata).*$"},{"line_number":91,"context_line":"    voting: false"},{"line_number":92,"context_line":"    vars:"},{"line_number":93,"context_line":"      devstack_localrc:"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"9fdfeff1_91df0ad5","line":90,"range":{"start_line":89,"start_character":32,"end_line":90,"end_character":34},"in_reply_to":"9fdfeff1_012af17d","updated":"2019-01-28 13:56:04.000000000","message":"Thank you for the regex","commit_id":"0c1a1bf0f2719e4a14ec3abbcc891421c009f6be"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"cfb8f04a02e79eea506533b7f098cf13bb6bb5b9","unresolved":false,"context_lines":[{"line_number":221,"context_line":"      jobs:"},{"line_number":222,"context_line":"        - patrole-admin"},{"line_number":223,"context_line":"        - patrole-member"},{"line_number":224,"context_line":"        - patrole-reader"},{"line_number":225,"context_line":"    periodic-stable:"},{"line_number":226,"context_line":"      jobs:"},{"line_number":227,"context_line":"        - patrole-member-rocky"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"9fdfeff1_8be840e2","line":224,"range":{"start_line":224,"start_character":8,"end_line":224,"end_character":24},"updated":"2019-01-28 04:13:44.000000000","message":"nit: Since this is not voting there is no need to include it in the gate. Check job is sufficient.","commit_id":"0c1a1bf0f2719e4a14ec3abbcc891421c009f6be"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"cd4939bacf7aa871dbb7cb07fd58dcb53bbd5a7c","unresolved":false,"context_lines":[{"line_number":221,"context_line":"      jobs:"},{"line_number":222,"context_line":"        - patrole-admin"},{"line_number":223,"context_line":"        - patrole-member"},{"line_number":224,"context_line":"        - patrole-reader"},{"line_number":225,"context_line":"    periodic-stable:"},{"line_number":226,"context_line":"      jobs:"},{"line_number":227,"context_line":"        - patrole-member-rocky"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"9fdfeff1_1e532c41","line":224,"range":{"start_line":224,"start_character":8,"end_line":224,"end_character":24},"in_reply_to":"9fdfeff1_8be840e2","updated":"2019-01-28 07:56:27.000000000","message":"+1 all jobs in gate has to be voting.","commit_id":"0c1a1bf0f2719e4a14ec3abbcc891421c009f6be"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"6df52316047f389e508f44ba364b08816ec9f694","unresolved":false,"context_lines":[{"line_number":124,"context_line":"      devstack_localrc:"},{"line_number":125,"context_line":"        RBAC_TEST_ROLES: member"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"- job:"},{"line_number":128,"context_line":"    name: patrole-multinode-reader"},{"line_number":129,"context_line":"    parent: patrole-base-multinode"},{"line_number":130,"context_line":"    # This currently works from stable/stein onward."},{"line_number":131,"context_line":"    branches: ^(?!stable/(ocata|pike|queens|rocky)).*$"},{"line_number":132,"context_line":"    voting: false"},{"line_number":133,"context_line":"    vars:"},{"line_number":134,"context_line":"      devstack_localrc:"},{"line_number":135,"context_line":"        RBAC_TEST_ROLES: reader"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"- job:"},{"line_number":138,"context_line":"    name: patrole-py35-member"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"9fdfeff1_e92302bc","line":135,"range":{"start_line":127,"start_character":0,"end_line":135,"end_character":31},"updated":"2019-01-29 02:14:52.000000000","message":"nit: This one doesn\u0027t need to exist either since none of the multinode tests use Keystone, so we should omit this one too since this is expensive resource-wise (b/c it is multinode).","commit_id":"06baf10650ddda35bbd6a983d5cd5f1ac0b975d2"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"145ce69043175dd7ef44b2025bdfcac39bf5609f","unresolved":false,"context_lines":[{"line_number":124,"context_line":"      devstack_localrc:"},{"line_number":125,"context_line":"        RBAC_TEST_ROLES: member"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"- job:"},{"line_number":128,"context_line":"    name: patrole-multinode-reader"},{"line_number":129,"context_line":"    parent: patrole-base-multinode"},{"line_number":130,"context_line":"    # This currently works from stable/stein onward."},{"line_number":131,"context_line":"    branches: ^(?!stable/(ocata|pike|queens|rocky)).*$"},{"line_number":132,"context_line":"    voting: false"},{"line_number":133,"context_line":"    vars:"},{"line_number":134,"context_line":"      devstack_localrc:"},{"line_number":135,"context_line":"        RBAC_TEST_ROLES: reader"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"- job:"},{"line_number":138,"context_line":"    name: patrole-py35-member"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"9fdfeff1_3fdff80d","line":135,"range":{"start_line":127,"start_character":0,"end_line":135,"end_character":31},"in_reply_to":"9fdfeff1_e92302bc","updated":"2019-01-29 05:02:01.000000000","message":"nice point. let\u0027s wait on this until we have multinode service adopting reader role etc.","commit_id":"06baf10650ddda35bbd6a983d5cd5f1ac0b975d2"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"change_message_id":"9f8d5c415284621264e7f414322b9fff236053e3","unresolved":false,"context_lines":[{"line_number":188,"context_line":"      devstack_localrc:"},{"line_number":189,"context_line":"        RBAC_TEST_ROLES: member"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"- project:"},{"line_number":192,"context_line":"    templates:"},{"line_number":193,"context_line":"      - openstack-cover-jobs"},{"line_number":194,"context_line":"      - openstack-lower-constraints-jobs"},{"line_number":195,"context_line":"      - openstack-python36-jobs"},{"line_number":196,"context_line":"      - openstack-python-jobs"},{"line_number":197,"context_line":"      - openstack-python35-jobs"},{"line_number":198,"context_line":"      - check-requirements"},{"line_number":199,"context_line":"      - publish-openstack-docs-pti"},{"line_number":200,"context_line":"      - release-notes-jobs-python3"},{"line_number":201,"context_line":"    check:"},{"line_number":202,"context_line":"      jobs:"},{"line_number":203,"context_line":"        - patrole-admin"},{"line_number":204,"context_line":"        - patrole-member"},{"line_number":205,"context_line":"        - patrole-reader"},{"line_number":206,"context_line":"        - patrole-member-rocky"},{"line_number":207,"context_line":"        - patrole-member-queens"},{"line_number":208,"context_line":"        - patrole-member-pike"},{"line_number":209,"context_line":"        - patrole-py35-member"},{"line_number":210,"context_line":"        - patrole-multinode-admin"},{"line_number":211,"context_line":"        - patrole-multinode-member"},{"line_number":212,"context_line":"        - patrole-multinode-reader"},{"line_number":213,"context_line":"        - patrole-extension-admin"},{"line_number":214,"context_line":"        - patrole-extension-member"},{"line_number":215,"context_line":"    gate:"},{"line_number":216,"context_line":"      jobs:"},{"line_number":217,"context_line":"        - patrole-admin"},{"line_number":218,"context_line":"        - patrole-member"},{"line_number":219,"context_line":"    periodic-stable:"},{"line_number":220,"context_line":"      jobs:"},{"line_number":221,"context_line":"        - patrole-member-rocky"},{"line_number":222,"context_line":"        - patrole-member-queens"},{"line_number":223,"context_line":"        - patrole-member-pike"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9fdfeff1_600b7bd5","line":223,"range":{"start_line":191,"start_character":2,"end_line":223,"end_character":0},"updated":"2019-01-31 02:53:39.000000000","message":"Job patrole-multinode-reader not defined","commit_id":"a8aff0e6fc0d6041133659d316e73511b098febd"}]}
