)]}'
{"features.yaml":[{"author":{"_account_id":6786,"name":"Sergey Lukjanov","email":"me@slukjanov.name","username":"slukjanov"},"change_message_id":"19b31faf66f167f724214b6d9ee7f9b5a7c00495","unresolved":false,"context_lines":[{"line_number":6,"context_line":"  postgresql:"},{"line_number":7,"context_line":"    features: postgresql"},{"line_number":8,"context_line":"  grenade:"},{"line_number":9,"context_line":"    rm-features: ceilometer, heat, trove, sahara"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"features:"},{"line_number":12,"context_line":"  default:"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"AAAAW3%2F%2FUMU%3D","line":9,"updated":"2014-04-15 12:15:01.000000000","message":"It\u0027s too early to add sahara hear IMO :)","commit_id":"5b51bfbebc4f4f76bd70bf5b69f9886586838b60"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"36b0cd8eb1ea59dffb3e77d9d4f5c5e4e154a739","unresolved":false,"context_lines":[{"line_number":56,"context_line":"    base:"},{"line_number":57,"context_line":"      services: [n-api, n-cond, n-cpu, n-crt, n-net, n-obj, n-sch]"},{"line_number":58,"context_line":"    havana:"},{"line_number":59,"context_line":"      rm-compute-ext:"},{"line_number":60,"context_line":"    icehouse:"},{"line_number":61,"context_line":"      compute-ext:"},{"line_number":62,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":9,"id":"AAAAXH%2F%2Fu7Y%3D","line":59,"updated":"2014-04-17 20:40:32.000000000","message":"Why is this key empty?","commit_id":"ccc43248557c05aba8c4ec26bf08c51c523be5b1"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"36b0cd8eb1ea59dffb3e77d9d4f5c5e4e154a739","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    havana:"},{"line_number":59,"context_line":"      rm-compute-ext:"},{"line_number":60,"context_line":"    icehouse:"},{"line_number":61,"context_line":"      compute-ext:"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"  nova-md:"},{"line_number":64,"context_line":"    base:"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"AAAAXH%2F%2Fu7g%3D","line":61,"updated":"2014-04-17 20:40:32.000000000","message":"Why is this key empty?","commit_id":"ccc43248557c05aba8c4ec26bf08c51c523be5b1"}],"test-matrix.py":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"36b0cd8eb1ea59dffb3e77d9d4f5c5e4e154a739","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    for k, v in os.environ.iteritems():"},{"line_number":48,"context_line":"        if k.startswith(\u0027DEVSTACK_GATE_\u0027):"},{"line_number":49,"context_line":"            if v \u003d\u003d \u00271\u0027:"},{"line_number":50,"context_line":"                f \u003d k.split(\u0027DEVSTACK_GATE_\u0027)[1]"},{"line_number":51,"context_line":"                configs.append(f.lower())"},{"line_number":52,"context_line":"    return configs"},{"line_number":53,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAXH%2F%2Fu48%3D","line":50,"updated":"2014-04-17 20:40:32.000000000","message":"A slice might be more readable. But this is fine.","commit_id":"ccc43248557c05aba8c4ec26bf08c51c523be5b1"}]}
