)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"9b70cd9685c63ac1f17e98b68aab1ddf7c3243ca","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"use oslo_config.types.String if possible"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Use str as Opt\u0027s default type will cause warning when run"},{"line_number":10,"context_line":"tox -egenconfig in Ceilometer project:"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"UserWarning: Option password should have a type derived from \\"},{"line_number":13,"context_line":"types.ConfigType instead of \u003ctype \u0027str\u0027\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9a68dd71_564ad184","line":10,"range":{"start_line":9,"start_character":1,"end_line":10,"end_character":38},"updated":"2016-01-21 03:10:44.000000000","message":"Was this discovered in a bug? If so, we should link to it.","commit_id":"6b3816b43b01605bbaf19740ddc7166a6027573c"}],"keystoneauth1/loading/opts.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"9b70cd9685c63ac1f17e98b68aab1ddf7c3243ca","unresolved":false,"context_lines":[{"line_number":13,"context_line":"import itertools"},{"line_number":14,"context_line":"import os"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"try:"},{"line_number":17,"context_line":"    from oslo_config import cfg"},{"line_number":18,"context_line":"    from oslo_config import types"},{"line_number":19,"context_line":"except ImportError:"},{"line_number":20,"context_line":"    cfg \u003d None"},{"line_number":21,"context_line":"    types \u003d None"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_16445972","line":19,"range":{"start_line":16,"start_character":0,"end_line":19,"end_character":19},"updated":"2016-01-21 03:10:44.000000000","message":"Why are these in a try/except? We should take the opportunity to update this with an inline comment explaining the reasoning.\n\nWhy wouldn\u0027t we have oslo_config?","commit_id":"6b3816b43b01605bbaf19740ddc7166a6027573c"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"9b70cd9685c63ac1f17e98b68aab1ddf7c3243ca","unresolved":false,"context_lines":[{"line_number":75,"context_line":"                 default\u003dNone,"},{"line_number":76,"context_line":"                 metavar\u003dNone,"},{"line_number":77,"context_line":"                 required\u003dFalse):"},{"line_number":78,"context_line":"        if type is None:"},{"line_number":79,"context_line":"            if types is None:"},{"line_number":80,"context_line":"                type \u003d str"},{"line_number":81,"context_line":"            else:"},{"line_number":82,"context_line":"                type \u003d types.String()"},{"line_number":83,"context_line":"        if not callable(type):"},{"line_number":84,"context_line":"            raise TypeError(\u0027type must be callable\u0027)"},{"line_number":85,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_36495d8c","line":82,"range":{"start_line":78,"start_character":0,"end_line":82,"end_character":37},"updated":"2016-01-21 03:10:44.000000000","message":"We should add a unit test for this.","commit_id":"6b3816b43b01605bbaf19740ddc7166a6027573c"}]}
