)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"7e7c837ae1fc558f190d3003a1c6f6243e6e8a21","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Pull echo service out of auth_token."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Move Keystonemiddleware\u0027s Echo service out of keystonemiddleware.auth_token and"},{"line_number":10,"context_line":"into it\u0027s own module."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I9e557582e8361d6c2aa6e73a357b0d6c9c88ea4e"},{"line_number":13,"context_line":"Closes-Bug: 1433251"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"da9b358b_e9457717","line":10,"updated":"2015-03-30 00:34:33.000000000","message":"change \"it\u0027s\" to \"its\"","commit_id":"e5e51174bab11eb121af15f42792a501cbf5167f"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"5317da114f83c9f5332a55d1ec21e5129d6803d0","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Pull echo service out of auth_token."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Move Keystonemiddleware\u0027s Echo service out of keystonemiddleware.auth_token and"},{"line_number":10,"context_line":"into it\u0027s own module."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I9e557582e8361d6c2aa6e73a357b0d6c9c88ea4e"},{"line_number":13,"context_line":"Closes-Bug: 1433251"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"da9b358b_74bb5f73","line":10,"in_reply_to":"da9b358b_e9457717","updated":"2015-03-30 19:44:19.000000000","message":"Done","commit_id":"e5e51174bab11eb121af15f42792a501cbf5167f"}],"keystonemiddleware/auth_token/__init__.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"09cc2c53653a432cd410dadd6cb7c654eeae0e07","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"Run this module directly to start a protected echo service on port 8000::"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":" $ python -m keystonemiddleware.auth_token.__init__"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"When the ``auth_token`` module authenticates a request, the echo service"},{"line_number":41,"context_line":"will respond with all the environment variables presented to it by this"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_956d4ccf","line":38,"updated":"2015-03-17 19:00:20.000000000","message":"I think we should move the echo service into its own module.","commit_id":"86e5f958505570c2d4c7955954c1386b87d92e4d"}],"keystonemiddleware/echo/__init__.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"7e7c837ae1fc558f190d3003a1c6f6243e6e8a21","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"\"\"\""},{"line_number":15,"context_line":"Echo test server"},{"line_number":16,"context_line":"----------------"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Run this module directly to start a protected echo service on port 8000::"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"da9b358b_a9488f2e","line":16,"updated":"2015-03-30 00:34:33.000000000","message":"remove this line.","commit_id":"e5e51174bab11eb121af15f42792a501cbf5167f"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"5441db3c2aeced91d1f1b06ad094aaedc995986b","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"\"\"\""},{"line_number":15,"context_line":"Echo test server"},{"line_number":16,"context_line":"----------------"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Run this module directly to start a protected echo service on port 8000::"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"da9b358b_f44befae","line":16,"in_reply_to":"da9b358b_a9488f2e","updated":"2015-03-30 19:44:10.000000000","message":"Done","commit_id":"e5e51174bab11eb121af15f42792a501cbf5167f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"7e7c837ae1fc558f190d3003a1c6f6243e6e8a21","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Run this module directly to start a protected echo service on port 8000::"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":" $ python -m keystonemiddleware.echo.__init__"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"When the ``auth_token`` module authenticates a request, the echo service"},{"line_number":23,"context_line":"will respond with all the environment variables presented to it by this"}],"source_content_type":"text/x-python","patch_set":3,"id":"da9b358b_495ea3ea","line":20,"updated":"2015-03-30 00:34:33.000000000","message":"Fix this so __init__ doesn\u0027t have to be used. Just put it in echo.py.","commit_id":"e5e51174bab11eb121af15f42792a501cbf5167f"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"5441db3c2aeced91d1f1b06ad094aaedc995986b","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Run this module directly to start a protected echo service on port 8000::"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":" $ python -m keystonemiddleware.echo.__init__"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"When the ``auth_token`` module authenticates a request, the echo service"},{"line_number":23,"context_line":"will respond with all the environment variables presented to it by this"}],"source_content_type":"text/x-python","patch_set":3,"id":"da9b358b_144f73be","line":20,"in_reply_to":"da9b358b_495ea3ea","updated":"2015-03-30 19:44:10.000000000","message":"Done","commit_id":"e5e51174bab11eb121af15f42792a501cbf5167f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"9efa1b2bd2580058e6ad0b80f6a881818b9e784f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"from keystonemiddleware.echo import service"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"try:"},{"line_number":4,"context_line":"    service.EchoService()"},{"line_number":5,"context_line":"except KeyboardInterrupt:"}],"source_content_type":"text/x-python","patch_set":6,"id":"da9b358b_19f20370","line":2,"updated":"2015-03-31 00:40:25.000000000","message":"need to use\n\n if __name__ \u003d\u003d \u0027__init__\u0027\n\nor whatever so that this doesn\u0027t run on import.","commit_id":"59ccae40071494150cc30dcf2586f5e33db5e1f9"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"e452087fb1c5826a713012dd6fa22aad3f6958e7","unresolved":false,"context_lines":[{"line_number":1,"context_line":"from keystonemiddleware.echo import service"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"try:"},{"line_number":4,"context_line":"    service.EchoService()"},{"line_number":5,"context_line":"except KeyboardInterrupt:"}],"source_content_type":"text/x-python","patch_set":6,"id":"da9b358b_7f21effa","line":2,"in_reply_to":"da9b358b_19f20370","updated":"2015-03-31 02:03:14.000000000","message":"Done","commit_id":"59ccae40071494150cc30dcf2586f5e33db5e1f9"}],"keystonemiddleware/echo/__main__.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"3c9db9eb7538546bba23c415bb1a825abb7a2cd7","unresolved":false,"context_lines":[{"line_number":1,"context_line":"from keystonemiddleware.echo import service"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"try:"},{"line_number":5,"context_line":"    service.EchoService()"},{"line_number":6,"context_line":"except KeyboardInterrupt:"},{"line_number":7,"context_line":"    pass"}],"source_content_type":"text/x-python","patch_set":8,"id":"dac4157f_fc878510","line":4,"updated":"2015-04-18 18:13:29.000000000","message":"Seems like this should be moved into keystonemiddleware.echo.service --\n\n if __name__ \u003d\u003d \u0027__main__\u0027:\n     try:\n     ... the rest of this.","commit_id":"809967f189b00116ac54576c61394b7fc045c5c3"}],"keystonemiddleware/echo/service.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"9efa1b2bd2580058e6ad0b80f6a881818b9e784f","unresolved":false,"context_lines":[{"line_number":37,"context_line":"                               if k.startswith(\u0027HTTP_X_\u0027))"},{"line_number":38,"context_line":"            yield jsonutils.dumps(environment)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        from wsgiref import simple_server"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        # hardcode any non-default configuration here"},{"line_number":43,"context_line":"        conf \u003d {\u0027auth_protocol\u0027: \u0027http\u0027, \u0027admin_token\u0027: \u0027ADMIN\u0027}"}],"source_content_type":"text/x-python","patch_set":6,"id":"da9b358b_99fe1337","line":40,"updated":"2015-03-31 00:40:25.000000000","message":"move this up with the rest of the imports.","commit_id":"59ccae40071494150cc30dcf2586f5e33db5e1f9"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"e452087fb1c5826a713012dd6fa22aad3f6958e7","unresolved":false,"context_lines":[{"line_number":37,"context_line":"                               if k.startswith(\u0027HTTP_X_\u0027))"},{"line_number":38,"context_line":"            yield jsonutils.dumps(environment)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        from wsgiref import simple_server"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        # hardcode any non-default configuration here"},{"line_number":43,"context_line":"        conf \u003d {\u0027auth_protocol\u0027: \u0027http\u0027, \u0027admin_token\u0027: \u0027ADMIN\u0027}"}],"source_content_type":"text/x-python","patch_set":6,"id":"da9b358b_7f77af3a","line":40,"in_reply_to":"da9b358b_99fe1337","updated":"2015-03-31 02:03:14.000000000","message":"Done","commit_id":"59ccae40071494150cc30dcf2586f5e33db5e1f9"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"889758eaf4db79d85087e1ea5a4c967df87c630d","unresolved":false,"context_lines":[{"line_number":12,"context_line":"# limitations under the License."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"\"\"\""},{"line_number":15,"context_line":"Run this module directly to start a protected echo service on port 8000::"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":" $ python -m keystonemiddleware.echo"},{"line_number":18,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"baa041b7_27526a14","line":15,"updated":"2015-04-01 23:31:59.000000000","message":"\"this module\" is keystonemiddleware.echo.service, but the instruction below says to run the \"keystonemiddleware.echo\" module instead.","commit_id":"64656b0adab1e25f43569369c3520d92e2ab69c1"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"8c34546a80a4359902cc11ff709d15a2ae4a40ab","unresolved":false,"context_lines":[{"line_number":12,"context_line":"# limitations under the License."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"\"\"\""},{"line_number":15,"context_line":"Run this module directly to start a protected echo service on port 8000::"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":" $ python -m keystonemiddleware.echo"},{"line_number":18,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"9aa53dc9_2cc0d529","line":15,"in_reply_to":"baa041b7_27526a14","updated":"2015-04-08 02:42:03.000000000","message":"Done","commit_id":"64656b0adab1e25f43569369c3520d92e2ab69c1"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"11515fd9d08295406276dd1571cbae5c68ea1848","unresolved":false,"context_lines":[{"line_number":21,"context_line":"module."},{"line_number":22,"context_line":"\"\"\""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"import six"},{"line_number":25,"context_line":"from wsgiref import simple_server"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"from oslo_serialization import jsonutils"}],"source_content_type":"text/x-python","patch_set":7,"id":"baa041b7_2dfec86b","line":24,"updated":"2015-04-02 04:19:56.000000000","message":"six is third party, should be in the same group as oslo_serialization","commit_id":"64656b0adab1e25f43569369c3520d92e2ab69c1"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"8c34546a80a4359902cc11ff709d15a2ae4a40ab","unresolved":false,"context_lines":[{"line_number":21,"context_line":"module."},{"line_number":22,"context_line":"\"\"\""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"import six"},{"line_number":25,"context_line":"from wsgiref import simple_server"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"from oslo_serialization import jsonutils"}],"source_content_type":"text/x-python","patch_set":7,"id":"9aa53dc9_0cb751d9","line":24,"in_reply_to":"baa041b7_2dfec86b","updated":"2015-04-08 02:42:03.000000000","message":"Done","commit_id":"64656b0adab1e25f43569369c3520d92e2ab69c1"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"4a763cf29ad37cb99dc6436c0b70cc48a1d0894f","unresolved":false,"context_lines":[{"line_number":32,"context_line":"class EchoService(object):"},{"line_number":33,"context_line":"    \"\"\"A WSGI application that echoes the CGI environment to the user.\"\"\""},{"line_number":34,"context_line":"    def __init__(self):"},{"line_number":35,"context_line":"        def echo_app(environ, start_response):"},{"line_number":36,"context_line":"            start_response(\u0027200 OK\u0027, [(\u0027Content-Type\u0027, \u0027application/json\u0027)])"},{"line_number":37,"context_line":"            environment \u003d dict((k, v) for k, v in six.iteritems(environ)"},{"line_number":38,"context_line":"                               if k.startswith(\u0027HTTP_X_\u0027))"}],"source_content_type":"text/x-python","patch_set":8,"id":"dac4157f_3e35cc45","line":35,"updated":"2015-04-20 16:57:29.000000000","message":"the doc string on L33 really belongs on L35, as the outer class is not a WSGI application, but \u0027def echo_app\u0027 is.","commit_id":"809967f189b00116ac54576c61394b7fc045c5c3"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"1086e98a9cb284437e231292d6853f17cbae77ae","unresolved":false,"context_lines":[{"line_number":32,"context_line":"class EchoService(object):"},{"line_number":33,"context_line":"    \"\"\"A WSGI application that echoes the CGI environment to the user.\"\"\""},{"line_number":34,"context_line":"    def __init__(self):"},{"line_number":35,"context_line":"        def echo_app(environ, start_response):"},{"line_number":36,"context_line":"            start_response(\u0027200 OK\u0027, [(\u0027Content-Type\u0027, \u0027application/json\u0027)])"},{"line_number":37,"context_line":"            environment \u003d dict((k, v) for k, v in six.iteritems(environ)"},{"line_number":38,"context_line":"                               if k.startswith(\u0027HTTP_X_\u0027))"}],"source_content_type":"text/x-python","patch_set":8,"id":"dac4157f_c16271d8","line":35,"in_reply_to":"dac4157f_3e35cc45","updated":"2015-04-20 17:06:00.000000000","message":"addressed here https://review.openstack.org/175489","commit_id":"809967f189b00116ac54576c61394b7fc045c5c3"}]}
