)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"0ef55c75470edc71b46a00d741f271be97d31d4b","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Add URL /v3/OS-FEDERATION/identity_providers/{identity_providers}/"},{"line_number":10,"context_line":"protocols/{protocols}/auth that can be later used as a protected"},{"line_number":11,"context_line":"endpoint in mod_shib configuration."},{"line_number":12,"context_line":"Client should be able to access this URL with a HTTP GET and POST"},{"line_number":13,"context_line":"methods, passing the information about the identity provider as well"},{"line_number":14,"context_line":"as protocol in the URL."},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"AAAAWH%2F%2Bs6M%3D","line":12,"updated":"2014-03-24 23:44:07.000000000","message":"nit: \u0027and\u0027 should \u0027or\u0027.","commit_id":"983d8aac2cb52e180d3fbacb163699976c809ec5"}],"keystone/contrib/federation/controllers.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"21e0c3b424e2c5bbdb2c1232f8786972e8062431","unresolved":false,"context_lines":[{"line_number":243,"context_line":""},{"line_number":244,"context_line":"class Auth(auth_controllers.Auth):"},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"    def __init__(self):"},{"line_number":247,"context_line":"        super(auth_controllers.Auth, self).__init__()"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"    def federated_authentication(self, context, identity_provider, protocol):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2B1Vg%3D","line":246,"updated":"2014-03-23 21:04:20.000000000","message":"remove the __init__ method completely if you\u0027re not going to use it","commit_id":"6f743604865550e851f768571a2a9b2b70a914c7"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"21e0c3b424e2c5bbdb2c1232f8786972e8062431","unresolved":false,"context_lines":[{"line_number":250,"context_line":"        \"\"\"Authenticate from dedicated url endpoint."},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"        Build HTTP request body for federated authentication and inject"},{"line_number":253,"context_line":"        it into the ``authenticate_for_token`` function."},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"        \"\"\""},{"line_number":256,"context_line":"        auth \u003d {"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2B1Vc%3D","line":253,"updated":"2014-03-23 21:04:20.000000000","message":"good compromise","commit_id":"6f743604865550e851f768571a2a9b2b70a914c7"}],"keystone/contrib/federation/routers.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"21e0c3b424e2c5bbdb2c1232f8786972e8062431","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        GET /OS-FEDERATION/projects"},{"line_number":47,"context_line":"        GET /OS-FEDERATION/domains"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"        GET /OS-FEDERATION/identity_provider/$identity_provider/"},{"line_number":50,"context_line":"            protocol/$protocol"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2B1WM%3D","line":49,"updated":"2014-03-23 21:04:20.000000000","message":"/identity_providers/","commit_id":"6f743604865550e851f768571a2a9b2b70a914c7"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"21e0c3b424e2c5bbdb2c1232f8786972e8062431","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        GET /OS-FEDERATION/domains"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"        GET /OS-FEDERATION/identity_provider/$identity_provider/"},{"line_number":50,"context_line":"            protocol/$protocol"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    \"\"\""},{"line_number":53,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2B1WI%3D","line":50,"updated":"2014-03-23 21:04:20.000000000","message":"/protocols/","commit_id":"6f743604865550e851f768571a2a9b2b70a914c7"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"21e0c3b424e2c5bbdb2c1232f8786972e8062431","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"        GET /OS-FEDERATION/identity_provider/$identity_provider/"},{"line_number":50,"context_line":"            protocol/$protocol"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    \"\"\""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def _construct_url(self, suffix):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2B1V8%3D","line":51,"updated":"2014-03-23 21:04:20.000000000","message":"this example is missing the /auth/ component that appears in the router below","commit_id":"6f743604865550e851f768571a2a9b2b70a914c7"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"21e0c3b424e2c5bbdb2c1232f8786972e8062431","unresolved":false,"context_lines":[{"line_number":181,"context_line":"        mapper.connect("},{"line_number":182,"context_line":"            self._construct_url(\u0027/auth/identity_provider/\u0027"},{"line_number":183,"context_line":"                                \u0027{identity_provider}/protocol/\u0027"},{"line_number":184,"context_line":"                                \u0027{protocol}\u0027),"},{"line_number":185,"context_line":"            controller\u003dauth_controller,"},{"line_number":186,"context_line":"            action\u003d\u0027federated_authentication\u0027,"},{"line_number":187,"context_line":"            conditions\u003ddict(method\u003d[\u0027GET\u0027]))"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2B1V4%3D","line":184,"updated":"2014-03-23 21:04:20.000000000","message":"/identity_providers/\n\n/protocols/\n\nalso move /auth/ to the end, so it\u0027s just /auth ...  for example:\n\n  /identity_providers/{identity_provider}/protocols/{protocol}/auth","commit_id":"6f743604865550e851f768571a2a9b2b70a914c7"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"21e0c3b424e2c5bbdb2c1232f8786972e8062431","unresolved":false,"context_lines":[{"line_number":184,"context_line":"                                \u0027{protocol}\u0027),"},{"line_number":185,"context_line":"            controller\u003dauth_controller,"},{"line_number":186,"context_line":"            action\u003d\u0027federated_authentication\u0027,"},{"line_number":187,"context_line":"            conditions\u003ddict(method\u003d[\u0027GET\u0027]))"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2B1Vs%3D","line":187,"updated":"2014-03-23 21:04:20.000000000","message":"this should really be a GET, rather than a POST?","commit_id":"6f743604865550e851f768571a2a9b2b70a914c7"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"53b3c4eee5f9589713fb7ee780ee9f5b34ff75e7","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        GET /OS-FEDERATION/projects"},{"line_number":47,"context_line":"        GET /OS-FEDERATION/domains"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"        GET /OS-FEDERATION/identity_providers/$identity_provider/"},{"line_number":50,"context_line":"            protocols/$protocol/auth"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2ByWc%3D","line":49,"updated":"2014-03-24 11:25:27.000000000","message":"GET conflicts with the actual route below","commit_id":"775c3b2aa76a860e869b9b20ef312825fbd1a135"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"53b3c4eee5f9589713fb7ee780ee9f5b34ff75e7","unresolved":false,"context_lines":[{"line_number":184,"context_line":"                                \u0027{protocol}/auth\u0027),"},{"line_number":185,"context_line":"            controller\u003dauth_controller,"},{"line_number":186,"context_line":"            action\u003d\u0027federated_authentication\u0027,"},{"line_number":187,"context_line":"            conditions\u003ddict(method\u003d[\u0027POST\u0027]))"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2ByWg%3D","line":187,"updated":"2014-03-24 11:25:27.000000000","message":"POST conflicts with the docstr above","commit_id":"775c3b2aa76a860e869b9b20ef312825fbd1a135"}]}
