)]}'
{"zuul.yaml":[{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"765a56366019f9a65925268e0b76b8f775b122e0","unresolved":false,"context_lines":[{"line_number":171,"context_line":"    pre-run: playbooks/python-tarball/pre"},{"line_number":172,"context_line":"    run: playbooks/python-tarball/run"},{"line_number":173,"context_line":"    post-run:"},{"line_number":174,"context_line":"      - playbook/python-tarball/post"},{"line_number":175,"context_line":"      - playbooks/publish/pypi"},{"line_number":176,"context_line":"    secrets:"},{"line_number":177,"context_line":"      - secret: testpypi_secret"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"7f287b81_88cbe451","line":174,"updated":"2017-08-23 14:42:35.000000000","message":"s/playbook/playbooks/","commit_id":"e6b0a6af05204d9071492a1f9d5f4fcaf3ddcd8a"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"765a56366019f9a65925268e0b76b8f775b122e0","unresolved":false,"context_lines":[{"line_number":186,"context_line":"    run: playbooks/python-tarball/run"},{"line_number":187,"context_line":"    post-run:"},{"line_number":188,"context_line":"      - playbooks/python-branch-tarball/post"},{"line_number":189,"context_line":"      - playbook/python-tarball/post"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"- project:"},{"line_number":192,"context_line":"    name: openstack-infra/project-config"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"7f287b81_68c8b854","line":189,"updated":"2017-08-23 14:42:35.000000000","message":"s/playbook/playbooks/\n\nI found the use of playbooks for composition more difficult to follow than roles.  After quite a bit of digging, I eventually figured it out:\n\n python-branch-tarball -- rename the tarballs         } branch job\n python-tarball -- fetch stuff -- common to both jobs } }\n publish/pypi -- this one is easy: publish to pypi      } pypi job\n\nHowever, none of that is apparent from looking at the list of playbooks, and you have to open them all up separately to piece together what the job does.  If we had a playbook for each of these jobs, and shared roles between them, it would be more obvious:\n\n rename tarball   } branch job\n fetch stuff      }  }\n publish to pypi     } pypi job","commit_id":"e6b0a6af05204d9071492a1f9d5f4fcaf3ddcd8a"}]}
