)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"e8b8ee15d7fbea324eaabd9511269898d61d842d","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"No additional tests are necessary because the existing tests already"},{"line_number":20,"context_line":"check for some keys that are no longer explicitly listed in"},{"line_number":21,"context_line":"oslo_utils.strutils._SANITIZE_KEYS."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Change-Id: I437bc09bd332066ea916f0c600c6c4343ab2071f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"fa6399be_5f9b6ac9","line":21,"updated":"2016-10-11 23:35:55.000000000","message":"I don\u0027t think I agree that tests aren\u0027t needed.\n\nThe first paragraph states that behavior is changing. There should be a unit test which fails without this change and passes with this change.","commit_id":"85ab2786de45ed812ea49e8b71c15ed565f0cf17"}],"oslo_utils/strutils.py":[{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"f939e4b348088236a82415ff6a3126789dce7aae","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"# NOTE(amrith): Some regular expressions have only one parameter, some"},{"line_number":69,"context_line":"# have two parameters. Use different lists of patterns here."},{"line_number":70,"context_line":"_FORMAT_PATTERNS_1 \u003d [r\u0027(%(key)s\\s*[:\u003d]\\s*)[^\\s\\\u0027\"]+\u0027]"},{"line_number":71,"context_line":"_FORMAT_PATTERNS_2 \u003d [r\u0027(%(key)s[\\\u0027\"]?\\s*[:\u003d]\\s*u?[\\\u0027\"])[^\\\u0027\"]*([\\\u0027\"])\u0027,"},{"line_number":72,"context_line":"                      r\u0027(%(key)s\\s+[\\\u0027\"])[^\\\u0027\"]*([\\\u0027\"])\u0027,"},{"line_number":73,"context_line":"                      r\u0027([-]{2}[^\\s]*%(key)s\\s+)[^\\s\\\u0027\"\u003d]+([\\s]*)\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa6399be_41e66117","line":70,"updated":"2016-10-17 16:58:00.000000000","message":"the addition of \":\" as a separator between the key and whatever it is that follows is nice but no tests are provided to exercise this.\n\nSo far, the use of : was limited to quoted exact keys. That\u0027s no longer the case.","commit_id":"3db5f4ee0233b7586f2c274d4f56ff7769a8e30f"},{"author":{"_account_id":10608,"name":"Matthew Edmonds","email":"edmondsw@us.ibm.com","username":"edmondsw"},"change_message_id":"7929f5c9889680e3e955281e708598f2c655d0c1","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"# NOTE(amrith): Some regular expressions have only one parameter, some"},{"line_number":69,"context_line":"# have two parameters. Use different lists of patterns here."},{"line_number":70,"context_line":"_FORMAT_PATTERNS_1 \u003d [r\u0027(%(key)s\\s*[:\u003d]\\s*)[^\\s\\\u0027\"]+\u0027]"},{"line_number":71,"context_line":"_FORMAT_PATTERNS_2 \u003d [r\u0027(%(key)s[\\\u0027\"]?\\s*[:\u003d]\\s*u?[\\\u0027\"])[^\\\u0027\"]*([\\\u0027\"])\u0027,"},{"line_number":72,"context_line":"                      r\u0027(%(key)s\\s+[\\\u0027\"])[^\\\u0027\"]*([\\\u0027\"])\u0027,"},{"line_number":73,"context_line":"                      r\u0027([-]{2}[^\\s]*%(key)s\\s+)[^\\s\\\u0027\"\u003d]+([\\s]*)\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa6399be_68d14ffb","line":70,"in_reply_to":"fa6399be_41e66117","updated":"2016-10-18 21:22:29.000000000","message":"Adding a test","commit_id":"3db5f4ee0233b7586f2c274d4f56ff7769a8e30f"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"f939e4b348088236a82415ff6a3126789dce7aae","unresolved":false,"context_lines":[{"line_number":68,"context_line":"# NOTE(amrith): Some regular expressions have only one parameter, some"},{"line_number":69,"context_line":"# have two parameters. Use different lists of patterns here."},{"line_number":70,"context_line":"_FORMAT_PATTERNS_1 \u003d [r\u0027(%(key)s\\s*[:\u003d]\\s*)[^\\s\\\u0027\"]+\u0027]"},{"line_number":71,"context_line":"_FORMAT_PATTERNS_2 \u003d [r\u0027(%(key)s[\\\u0027\"]?\\s*[:\u003d]\\s*u?[\\\u0027\"])[^\\\u0027\"]*([\\\u0027\"])\u0027,"},{"line_number":72,"context_line":"                      r\u0027(%(key)s\\s+[\\\u0027\"])[^\\\u0027\"]*([\\\u0027\"])\u0027,"},{"line_number":73,"context_line":"                      r\u0027([-]{2}[^\\s]*%(key)s\\s+)[^\\s\\\u0027\"\u003d]+([\\s]*)\u0027,"},{"line_number":74,"context_line":"                      r\u0027(%(key)s\u003e)[^\u003c]*(\u003c/[^\u003c]*%(key)s\u003e)\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa6399be_81f079cb","line":71,"range":{"start_line":71,"start_character":42,"end_line":71,"end_character":43},"updated":"2016-10-17 16:58:00.000000000","message":"the addition of \":\" as a separator between the key and whatever it is that follows is nice but no tests are provided to exercise this.\n\n\nSo far, the use of : was limited to quoted exact keys. That\u0027s no longer the case.","commit_id":"3db5f4ee0233b7586f2c274d4f56ff7769a8e30f"},{"author":{"_account_id":10608,"name":"Matthew Edmonds","email":"edmondsw@us.ibm.com","username":"edmondsw"},"change_message_id":"7929f5c9889680e3e955281e708598f2c655d0c1","unresolved":false,"context_lines":[{"line_number":68,"context_line":"# NOTE(amrith): Some regular expressions have only one parameter, some"},{"line_number":69,"context_line":"# have two parameters. Use different lists of patterns here."},{"line_number":70,"context_line":"_FORMAT_PATTERNS_1 \u003d [r\u0027(%(key)s\\s*[:\u003d]\\s*)[^\\s\\\u0027\"]+\u0027]"},{"line_number":71,"context_line":"_FORMAT_PATTERNS_2 \u003d [r\u0027(%(key)s[\\\u0027\"]?\\s*[:\u003d]\\s*u?[\\\u0027\"])[^\\\u0027\"]*([\\\u0027\"])\u0027,"},{"line_number":72,"context_line":"                      r\u0027(%(key)s\\s+[\\\u0027\"])[^\\\u0027\"]*([\\\u0027\"])\u0027,"},{"line_number":73,"context_line":"                      r\u0027([-]{2}[^\\s]*%(key)s\\s+)[^\\s\\\u0027\"\u003d]+([\\s]*)\u0027,"},{"line_number":74,"context_line":"                      r\u0027(%(key)s\u003e)[^\u003c]*(\u003c/[^\u003c]*%(key)s\u003e)\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa6399be_28fe776b","line":71,"range":{"start_line":71,"start_character":42,"end_line":71,"end_character":43},"in_reply_to":"fa6399be_81f079cb","updated":"2016-10-18 21:22:29.000000000","message":"actually, this was already handled before, and there are already tests for this. It was just handled by a different pattern, which I merged into this one to reduce the number of patterns we have to test.","commit_id":"3db5f4ee0233b7586f2c274d4f56ff7769a8e30f"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"f939e4b348088236a82415ff6a3126789dce7aae","unresolved":false,"context_lines":[{"line_number":70,"context_line":"_FORMAT_PATTERNS_1 \u003d [r\u0027(%(key)s\\s*[:\u003d]\\s*)[^\\s\\\u0027\"]+\u0027]"},{"line_number":71,"context_line":"_FORMAT_PATTERNS_2 \u003d [r\u0027(%(key)s[\\\u0027\"]?\\s*[:\u003d]\\s*u?[\\\u0027\"])[^\\\u0027\"]*([\\\u0027\"])\u0027,"},{"line_number":72,"context_line":"                      r\u0027(%(key)s\\s+[\\\u0027\"])[^\\\u0027\"]*([\\\u0027\"])\u0027,"},{"line_number":73,"context_line":"                      r\u0027([-]{2}[^\\s]*%(key)s\\s+)[^\\s\\\u0027\"\u003d]+([\\s]*)\u0027,"},{"line_number":74,"context_line":"                      r\u0027(%(key)s\u003e)[^\u003c]*(\u003c/[^\u003c]*%(key)s\u003e)\u0027,"},{"line_number":75,"context_line":"                      r\u0027([\\\u0027\"][^\\\u0027\"]*%(key)s[\\\u0027\"]\\s*,\\s*\\\u0027--?[A-z]+\\\u0027\\s*,\\s*u?\u0027"},{"line_number":76,"context_line":"                      \u0027[\\\u0027\"])[^\\\u0027\"]*([\\\u0027\"])\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa6399be_c1ba7171","line":73,"range":{"start_line":73,"start_character":31,"end_line":73,"end_character":36},"updated":"2016-10-17 16:58:00.000000000","message":"no tests exercise this new extension of having any command line parameter that ends with the key (rather than just the key).","commit_id":"3db5f4ee0233b7586f2c274d4f56ff7769a8e30f"},{"author":{"_account_id":10608,"name":"Matthew Edmonds","email":"edmondsw@us.ibm.com","username":"edmondsw"},"change_message_id":"7929f5c9889680e3e955281e708598f2c655d0c1","unresolved":false,"context_lines":[{"line_number":70,"context_line":"_FORMAT_PATTERNS_1 \u003d [r\u0027(%(key)s\\s*[:\u003d]\\s*)[^\\s\\\u0027\"]+\u0027]"},{"line_number":71,"context_line":"_FORMAT_PATTERNS_2 \u003d [r\u0027(%(key)s[\\\u0027\"]?\\s*[:\u003d]\\s*u?[\\\u0027\"])[^\\\u0027\"]*([\\\u0027\"])\u0027,"},{"line_number":72,"context_line":"                      r\u0027(%(key)s\\s+[\\\u0027\"])[^\\\u0027\"]*([\\\u0027\"])\u0027,"},{"line_number":73,"context_line":"                      r\u0027([-]{2}[^\\s]*%(key)s\\s+)[^\\s\\\u0027\"\u003d]+([\\s]*)\u0027,"},{"line_number":74,"context_line":"                      r\u0027(%(key)s\u003e)[^\u003c]*(\u003c/[^\u003c]*%(key)s\u003e)\u0027,"},{"line_number":75,"context_line":"                      r\u0027([\\\u0027\"][^\\\u0027\"]*%(key)s[\\\u0027\"]\\s*,\\s*\\\u0027--?[A-z]+\\\u0027\\s*,\\s*u?\u0027"},{"line_number":76,"context_line":"                      \u0027[\\\u0027\"])[^\\\u0027\"]*([\\\u0027\"])\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa6399be_0b50cd09","line":73,"range":{"start_line":73,"start_character":31,"end_line":73,"end_character":36},"in_reply_to":"fa6399be_c1ba7171","updated":"2016-10-18 21:22:29.000000000","message":"Adding a test","commit_id":"3db5f4ee0233b7586f2c274d4f56ff7769a8e30f"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"f939e4b348088236a82415ff6a3126789dce7aae","unresolved":false,"context_lines":[{"line_number":71,"context_line":"_FORMAT_PATTERNS_2 \u003d [r\u0027(%(key)s[\\\u0027\"]?\\s*[:\u003d]\\s*u?[\\\u0027\"])[^\\\u0027\"]*([\\\u0027\"])\u0027,"},{"line_number":72,"context_line":"                      r\u0027(%(key)s\\s+[\\\u0027\"])[^\\\u0027\"]*([\\\u0027\"])\u0027,"},{"line_number":73,"context_line":"                      r\u0027([-]{2}[^\\s]*%(key)s\\s+)[^\\s\\\u0027\"\u003d]+([\\s]*)\u0027,"},{"line_number":74,"context_line":"                      r\u0027(%(key)s\u003e)[^\u003c]*(\u003c/[^\u003c]*%(key)s\u003e)\u0027,"},{"line_number":75,"context_line":"                      r\u0027([\\\u0027\"][^\\\u0027\"]*%(key)s[\\\u0027\"]\\s*,\\s*\\\u0027--?[A-z]+\\\u0027\\s*,\\s*u?\u0027"},{"line_number":76,"context_line":"                      \u0027[\\\u0027\"])[^\\\u0027\"]*([\\\u0027\"])\u0027,"},{"line_number":77,"context_line":"                      r\u0027(%(key)s\\s*--?[A-z]+\\s*)\\S+(\\s*)\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa6399be_e450630d","line":74,"range":{"start_line":74,"start_character":42,"end_line":74,"end_character":45},"updated":"2016-10-17 16:58:00.000000000","message":"unclear what this change is, nothing in the tests gives me an indication of what it is.","commit_id":"3db5f4ee0233b7586f2c274d4f56ff7769a8e30f"},{"author":{"_account_id":10608,"name":"Matthew Edmonds","email":"edmondsw@us.ibm.com","username":"edmondsw"},"change_message_id":"7929f5c9889680e3e955281e708598f2c655d0c1","unresolved":false,"context_lines":[{"line_number":71,"context_line":"_FORMAT_PATTERNS_2 \u003d [r\u0027(%(key)s[\\\u0027\"]?\\s*[:\u003d]\\s*u?[\\\u0027\"])[^\\\u0027\"]*([\\\u0027\"])\u0027,"},{"line_number":72,"context_line":"                      r\u0027(%(key)s\\s+[\\\u0027\"])[^\\\u0027\"]*([\\\u0027\"])\u0027,"},{"line_number":73,"context_line":"                      r\u0027([-]{2}[^\\s]*%(key)s\\s+)[^\\s\\\u0027\"\u003d]+([\\s]*)\u0027,"},{"line_number":74,"context_line":"                      r\u0027(%(key)s\u003e)[^\u003c]*(\u003c/[^\u003c]*%(key)s\u003e)\u0027,"},{"line_number":75,"context_line":"                      r\u0027([\\\u0027\"][^\\\u0027\"]*%(key)s[\\\u0027\"]\\s*,\\s*\\\u0027--?[A-z]+\\\u0027\\s*,\\s*u?\u0027"},{"line_number":76,"context_line":"                      \u0027[\\\u0027\"])[^\\\u0027\"]*([\\\u0027\"])\u0027,"},{"line_number":77,"context_line":"                      r\u0027(%(key)s\\s*--?[A-z]+\\s*)\\S+(\\s*)\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa6399be_e8171f52","line":74,"range":{"start_line":74,"start_character":42,"end_line":74,"end_character":45},"in_reply_to":"fa6399be_e450630d","updated":"2016-10-18 21:22:29.000000000","message":"That was supposed to be \u0027[^\u003e]\u0027. The * I added has to operate on something, and rather than use \u0027.\u0027 I thought it safer to not match the closing \u003e... then typed it wrong. This implements endswith matching in this pattern.","commit_id":"3db5f4ee0233b7586f2c274d4f56ff7769a8e30f"}]}
