)]}'
{"data/stackforge-retirements":[{"author":{"_account_id":6316,"name":"Anita Kuno","email":"anteaya@anteaya.info","username":"anteaya"},"change_message_id":"35a64ac511ccd8504d71b0110ad3626eae1f847b","unresolved":false,"context_lines":[{"line_number":23,"context_line":"keystone-salt-formula"},{"line_number":24,"context_line":"kickstack"},{"line_number":25,"context_line":"libra"},{"line_number":26,"context_line":"list"},{"line_number":27,"context_line":"logaas"},{"line_number":28,"context_line":"mercador-pub"},{"line_number":29,"context_line":"mercador-sub"}],"source_content_type":"application/octet-stream","patch_set":32,"id":"5a2ca52d_11c0b6df","line":26,"updated":"2015-10-14 18:52:52.000000000","message":"What is this repo?\n\nThere is no repo \"list\" in git.openstack.org/stackforge","commit_id":"e1de1d042399bc89a51fe35992b34e68d8e0464d"}],"tools/mass_rename_projects.py":[{"author":{"_account_id":16272,"name":"Clint Adams","email":"clint@gcfm.net","username":"clint"},"change_message_id":"c15c76dbf3d24c158e2658ae93dade79aec0027b","unresolved":false,"context_lines":[{"line_number":95,"context_line":"    h, fn \u003d tempfile.mkstemp()"},{"line_number":96,"context_line":"    with os.fdopen(h, \u0027w\u0027) as out:"},{"line_number":97,"context_line":"        for f,t in zip(stacklist,openlist):"},{"line_number":98,"context_line":"            out.write(\"s#name: %s$#name: %s#;\\n\" % (f,t))"},{"line_number":99,"context_line":"        out.flush()"},{"line_number":100,"context_line":"        os.execl(\u0027/bin/sed\u0027, \u0027sed\u0027, \u0027-f\u0027, fn, \u0027-i\u0027, \u0027zuul/layout.yaml\u0027)"},{"line_number":101,"context_line":"    os.unlink(fn)"}],"source_content_type":"text/x-python","patch_set":12,"id":"9a1a9d01_b46b62b6","line":98,"updated":"2015-09-30 18:34:43.000000000","message":"I notice that this would do the wrong thing if there were any trailing whitespace on relevant lines in zuul/layout.yaml.  There are no such extant lines now.","commit_id":"a18d330dacfc03fd6364536beb2dc82fe027c58b"}]}
