)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"494636ae0ac026faa626f330563c4b2abd94cfc3","unresolved":false,"context_lines":[{"line_number":11,"context_line":"to close the gap; it should eventually go to the configuration"},{"line_number":12,"context_line":"guide."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The main source is ...keystone/openstack/common/policy.py."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I87ae3c1be0d602aa05f26c01624f1f7cb9d576e2"},{"line_number":17,"context_line":"Partial-Bug: #1311067"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"da9b358b_b5a0ea91","line":14,"updated":"2015-03-29 14:04:21.000000000","message":"use http://docs.openstack.org/developer/oslo.policy/api.html#module-oslo_policy.policy","commit_id":"e0a60e228679a9f267db779fc6dc4af44ffcbc90"}],"doc/config-reference/app_policy_json.xml":[{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"c6698e79849f06218951bb87d1b97fe7d9b1f938","unresolved":false,"context_lines":[{"line_number":9,"context_line":"    It implements the service\u0027s role-based access scheme, determining"},{"line_number":10,"context_line":"    which user can access which objects in which way.\u003c/para\u003e"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"    \u003ctitle\u003eExamples\u003c/title\u003e"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"    A simple rule might look like this:"},{"line_number":15,"context_line":""}],"source_content_type":"application/xml","patch_set":4,"id":"1a6ced46_59ae4a82","line":12,"updated":"2015-03-26 08:47:17.000000000","message":"Add again \u003csection xml:id\u003d\"examples\"\u003e before a title.\n\nAnd close the section at the end.","commit_id":"1b43ffec3239c44424b8011afce5afbd2377964b"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"c6698e79849f06218951bb87d1b97fe7d9b1f938","unresolved":false,"context_lines":[{"line_number":78,"context_line":"    the ID of the user submitting the API with the user ID of the credential"},{"line_number":79,"context_line":"    object."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    \u003ctitle\u003eSyntax\u003c/title\u003e"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    A \u003cfilename\u003epolicy.json\u003c/filename\u003e file consists of a list of rules and aliases of the form"},{"line_number":84,"context_line":"    \u003ccode\u003eaction : condition\u003c/code\u003e or \u003ccode\u003ealias : definition\u003c/code\u003e, separated by commas."}],"source_content_type":"application/xml","patch_set":4,"id":"1a6ced46_f9be16ad","line":81,"updated":"2015-03-26 08:47:17.000000000","message":"Start new section before","commit_id":"1b43ffec3239c44424b8011afce5afbd2377964b"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"c6698e79849f06218951bb87d1b97fe7d9b1f938","unresolved":false,"context_lines":[{"line_number":150,"context_line":"    whereas elements inside the innermost arrays are and\u0027ed."},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    While the old syntax is still supported, we recommend using the newer, more"},{"line_number":153,"context_line":"    intuitive syntax."},{"line_number":154,"context_line":""},{"line_number":155,"context_line":""}],"source_content_type":"application/xml","patch_set":4,"id":"1a6ced46_f9d536e5","line":153,"updated":"2015-03-26 08:47:17.000000000","message":"End \u003c/appendix\u003e missing - and also end for the opened \u003c/section\u003e that you should add before.","commit_id":"1b43ffec3239c44424b8011afce5afbd2377964b"},{"author":{"_account_id":15002,"name":"Bernd Bausch","email":"berndbausch@gmail.com","username":"berndbausch"},"change_message_id":"b3a3ada8b8a40b3952a244befdc076c4bf5982c0","unresolved":false,"context_lines":[{"line_number":20,"context_line":"    which allows"},{"line_number":21,"context_line":"    new policies to be implemented while the service is running.\u003c/para\u003e"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    \u003cpara\u003eA policy is defined by a statement with this general form:"},{"line_number":24,"context_line":"    \u003cprogramlisting language\u003d\"json\" linenumbering\u003d\"unnumbered\"\u003e\"\u0026lt;target\u0026gt;\" : \"\u0026lt;rule\u0026gt;\"\u003c/programlisting\u003e"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    A target, also named “action”, is an API call, such as “start an instance” or"}],"source_content_type":"application/xml","patch_set":8,"id":"9aa53dc9_4d24dcc3","line":23,"updated":"2015-04-09 23:37:05.000000000","message":"Why is \u0026lt;rule\u0026gt; in the following line rendered verbatim, and \u0026lt;target\u0026gt; is rendered as \u003ctarget\u003e, as it should be?","commit_id":"70b58fb43a1f7c367121ad6377f8fd7e5ad8d470"},{"author":{"_account_id":15002,"name":"Bernd Bausch","email":"berndbausch@gmail.com","username":"berndbausch"},"change_message_id":"374d537f30fb4b1169c958b820a6fcda2f4d9a36","unresolved":false,"context_lines":[{"line_number":20,"context_line":"    which allows"},{"line_number":21,"context_line":"    new policies to be implemented while the service is running.\u003c/para\u003e"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    \u003cpara\u003eA policy is defined by a statement with this general form:"},{"line_number":24,"context_line":"    \u003cprogramlisting language\u003d\"json\" linenumbering\u003d\"unnumbered\"\u003e\"\u0026lt;target\u0026gt;\" : \"\u0026lt;rule\u0026gt;\"\u003c/programlisting\u003e"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    A target, also named “action”, is an API call, such as “start an instance” or"}],"source_content_type":"application/xml","patch_set":8,"id":"7aaa499b_1c03150f","line":23,"in_reply_to":"9aa53dc9_0047b677","updated":"2015-04-14 01:37:55.000000000","message":"Perhaps this shouldn\u0027t be considered a bug; after all, if I include the greater and smaller signs, this is not correct JSON anymore. I avoid the problem by replacing \u003cprogramlisting\u003e with \u003ccode\u003e.","commit_id":"70b58fb43a1f7c367121ad6377f8fd7e5ad8d470"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"c762aa3f1639c6cacd49549d9fe146be65d964ac","unresolved":false,"context_lines":[{"line_number":20,"context_line":"    which allows"},{"line_number":21,"context_line":"    new policies to be implemented while the service is running.\u003c/para\u003e"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    \u003cpara\u003eA policy is defined by a statement with this general form:"},{"line_number":24,"context_line":"    \u003cprogramlisting language\u003d\"json\" linenumbering\u003d\"unnumbered\"\u003e\"\u0026lt;target\u0026gt;\" : \"\u0026lt;rule\u0026gt;\"\u003c/programlisting\u003e"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    A target, also named “action”, is an API call, such as “start an instance” or"}],"source_content_type":"application/xml","patch_set":8,"id":"9aa53dc9_0047b677","line":23,"in_reply_to":"9aa53dc9_4d24dcc3","updated":"2015-04-10 04:53:34.000000000","message":"This looks like a bug in the parser for json. If you remove language\u003d\"json\" from the following statement, you get the proper output, just not highlighted ;(\n\nSo, either remove the language\u003d\"json\" or use other characters instead of \u003c and \u003e, we often just capitalize content...","commit_id":"70b58fb43a1f7c367121ad6377f8fd7e5ad8d470"},{"author":{"_account_id":10670,"name":"Michael McCune","email":"elmiko@redhat.com","username":"mimccune"},"change_message_id":"f04426f5be6db80e41cf2531dc49d9609738520d","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    \u003c/para\u003e"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    \u003cpara\u003eYou can limit APIs to any role. For example, the Orchestration service defines"},{"line_number":58,"context_line":"    a role named heat_stack_user. Whoever has this role isn\u0027t allowed to create stacks:"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    \u003cprogramlisting language\u003d\"json\" linenumbering\u003d\"unnumbered\"\u003e\"stacks:create\": \"not role:heat_stack_user\"\u003c/programlisting\u003e"},{"line_number":61,"context_line":""}],"source_content_type":"application/xml","patch_set":8,"id":"7aaa499b_7087e30f","line":58,"updated":"2015-04-13 20:02:37.000000000","message":"should \"heat_stack_user\" be marked as a code literal?","commit_id":"70b58fb43a1f7c367121ad6377f8fd7e5ad8d470"},{"author":{"_account_id":15002,"name":"Bernd Bausch","email":"berndbausch@gmail.com","username":"berndbausch"},"change_message_id":"374d537f30fb4b1169c958b820a6fcda2f4d9a36","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    \u003c/para\u003e"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    \u003cpara\u003eYou can limit APIs to any role. For example, the Orchestration service defines"},{"line_number":58,"context_line":"    a role named heat_stack_user. Whoever has this role isn\u0027t allowed to create stacks:"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    \u003cprogramlisting language\u003d\"json\" linenumbering\u003d\"unnumbered\"\u003e\"stacks:create\": \"not role:heat_stack_user\"\u003c/programlisting\u003e"},{"line_number":61,"context_line":""}],"source_content_type":"application/xml","patch_set":8,"id":"7aaa499b_fc09892d","line":58,"in_reply_to":"7aaa499b_7087e30f","updated":"2015-04-14 01:37:55.000000000","message":"Done","commit_id":"70b58fb43a1f7c367121ad6377f8fd7e5ad8d470"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"c762aa3f1639c6cacd49549d9fe146be65d964ac","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    states that only the owner of an instance can start it up. The \u003ccode\u003euser_id\u003c/code\u003e"},{"line_number":83,"context_line":"    string"},{"line_number":84,"context_line":"    before the colon is an API attribute, namely the user ID of the API user."},{"line_number":85,"context_line":"    It is compared with the user ID of the object (in this case, an instance); "},{"line_number":86,"context_line":"    more precisely, it is compared with the user_id field of that object "},{"line_number":87,"context_line":"    in the database. If the two values are equal, permission is"},{"line_number":88,"context_line":"    granted.\u003c/para\u003e"}],"source_content_type":"application/xml","patch_set":8,"id":"9aa53dc9_8053c638","line":85,"updated":"2015-04-10 04:53:34.000000000","message":"The niceness gate fails due to this end of line characters that show up here as red boxes.","commit_id":"70b58fb43a1f7c367121ad6377f8fd7e5ad8d470"},{"author":{"_account_id":10670,"name":"Michael McCune","email":"elmiko@redhat.com","username":"mimccune"},"change_message_id":"f04426f5be6db80e41cf2531dc49d9609738520d","unresolved":false,"context_lines":[{"line_number":83,"context_line":"    string"},{"line_number":84,"context_line":"    before the colon is an API attribute, namely the user ID of the API user."},{"line_number":85,"context_line":"    It is compared with the user ID of the object (in this case, an instance); "},{"line_number":86,"context_line":"    more precisely, it is compared with the user_id field of that object "},{"line_number":87,"context_line":"    in the database. If the two values are equal, permission is"},{"line_number":88,"context_line":"    granted.\u003c/para\u003e"},{"line_number":89,"context_line":""}],"source_content_type":"application/xml","patch_set":8,"id":"7aaa499b_307a7b25","line":86,"updated":"2015-04-13 20:02:37.000000000","message":"should \"user_id\" be marked as code literal?","commit_id":"70b58fb43a1f7c367121ad6377f8fd7e5ad8d470"},{"author":{"_account_id":15002,"name":"Bernd Bausch","email":"berndbausch@gmail.com","username":"berndbausch"},"change_message_id":"374d537f30fb4b1169c958b820a6fcda2f4d9a36","unresolved":false,"context_lines":[{"line_number":83,"context_line":"    string"},{"line_number":84,"context_line":"    before the colon is an API attribute, namely the user ID of the API user."},{"line_number":85,"context_line":"    It is compared with the user ID of the object (in this case, an instance); "},{"line_number":86,"context_line":"    more precisely, it is compared with the user_id field of that object "},{"line_number":87,"context_line":"    in the database. If the two values are equal, permission is"},{"line_number":88,"context_line":"    granted.\u003c/para\u003e"},{"line_number":89,"context_line":""}],"source_content_type":"application/xml","patch_set":8,"id":"7aaa499b_dc0c8d3d","line":86,"in_reply_to":"7aaa499b_307a7b25","updated":"2015-04-14 01:37:55.000000000","message":"Done","commit_id":"70b58fb43a1f7c367121ad6377f8fd7e5ad8d470"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"78f1dca93c2090433da62c15bed7ede022136238","unresolved":false,"context_lines":[{"line_number":9,"context_line":""},{"line_number":10,"context_line":"    \u003ctitle\u003eThe policy.json file\u003c/title\u003e"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"    \u003cpara\u003eEach OpenStack service, Identity, Compute, Network and so on, has its own"},{"line_number":13,"context_line":"    role-based access policies. They determine which user can access which objects in"},{"line_number":14,"context_line":"    which way, and are defined in the service’s \u003cfilename\u003epolicy.json\u003c/filename\u003e"},{"line_number":15,"context_line":"    file.\u003c/para\u003e"}],"source_content_type":"application/xml","patch_set":9,"id":"3ab451fb_3cf2919b","line":12,"updated":"2015-04-16 20:05:34.000000000","message":"It\u0027s Networking","commit_id":"617e9b5b623737aa9b1dbb4a0acaf52a365419b7"}],"doc/playground-user-guide/source/conf.py":[{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"978ddea8d2db85b8567bb45829daad07bdb020af","unresolved":false,"context_lines":[{"line_number":46,"context_line":"# Add any Sphinx extension module names here, as strings. They can be"},{"line_number":47,"context_line":"# extensions coming with Sphinx (named \u0027sphinx.ext.*\u0027) or your custom"},{"line_number":48,"context_line":"# ones."},{"line_number":49,"context_line":"extensions \u003d [\u0027sphinx.ext.ifconfig\u0027 , \u0027scope\u0027]"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"# Add any paths that contain templates here, relative to this directory."},{"line_number":52,"context_line":"# templates_path \u003d [\u0027_templates\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a6ced46_f6be25ad","line":49,"updated":"2015-03-26 08:06:06.000000000","message":"Remove this space to make our niceness checks happy.","commit_id":"3119f699f66b6f70178c3b5a284b222816d019df"}],"doc/playground-user-guide/source/policy.rst":[{"author":{"_account_id":10670,"name":"Michael McCune","email":"elmiko@redhat.com","username":"mimccune"},"change_message_id":"f04426f5be6db80e41cf2531dc49d9609738520d","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"You can limit APIs to any role, not only administrators."},{"line_number":59,"context_line":"For example, the Orchestration service defines"},{"line_number":60,"context_line":"a role named *heat_stack_user*. Whoever has this role isn\u0027t"},{"line_number":61,"context_line":"allowed to create stacks:"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":".. code::"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aaa499b_cb2608ba","line":60,"updated":"2015-04-13 20:02:37.000000000","message":"should this italic or code literal?","commit_id":"70b58fb43a1f7c367121ad6377f8fd7e5ad8d470"},{"author":{"_account_id":15002,"name":"Bernd Bausch","email":"berndbausch@gmail.com","username":"berndbausch"},"change_message_id":"374d537f30fb4b1169c958b820a6fcda2f4d9a36","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"You can limit APIs to any role, not only administrators."},{"line_number":59,"context_line":"For example, the Orchestration service defines"},{"line_number":60,"context_line":"a role named *heat_stack_user*. Whoever has this role isn\u0027t"},{"line_number":61,"context_line":"allowed to create stacks:"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":".. code::"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aaa499b_1c2af57e","line":60,"in_reply_to":"7aaa499b_cb2608ba","updated":"2015-04-14 01:37:55.000000000","message":"For the moment I concentrate on the Docbook version and leave the RST alone, hoping that transforming the config reference guide will create correct RST eventually.","commit_id":"70b58fb43a1f7c367121ad6377f8fd7e5ad8d470"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"78f1dca93c2090433da62c15bed7ede022136238","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"3ab451fb_bc590191","updated":"2015-04-16 20:05:34.000000000","message":"Remove this file completely, we\u0027re not yet in RST land for it and the directory is empty now.","commit_id":"617e9b5b623737aa9b1dbb4a0acaf52a365419b7"}]}
