)]}'
{"stack.sh":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"0fb4319bb1e51faffa424e9f96378434e4a8ccea","unresolved":false,"context_lines":[{"line_number":555,"context_line":"source $TOP_DIR/lib/ldap"},{"line_number":556,"context_line":"source $TOP_DIR/lib/dstat"},{"line_number":557,"context_line":"source $TOP_DIR/lib/dlm"},{"line_number":558,"context_line":"for project in $(cat $TOP_DIR/projects); do"},{"line_number":559,"context_line":"    source $TOP_DIR/lib/$project"},{"line_number":560,"context_line":"done"},{"line_number":561,"context_line":""}],"source_content_type":"text/x-sh","patch_set":4,"id":"1af94dfe_2b1a897d","line":558,"updated":"2016-03-17 11:42:02.000000000","message":"Why this change ?\n\nI don\u0027t like too many indirection. We should make clear what we \u0027import\u0027/\u0027source\u0027 here.","commit_id":"ca0ba54e0abfa97fd3a9233522a7cd4a96eff209"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"84ade88cef2e427e2a2c3931c247069eb96e2e7c","unresolved":false,"context_lines":[{"line_number":555,"context_line":"source $TOP_DIR/lib/ldap"},{"line_number":556,"context_line":"source $TOP_DIR/lib/dstat"},{"line_number":557,"context_line":"source $TOP_DIR/lib/dlm"},{"line_number":558,"context_line":"for project in $(cat $TOP_DIR/projects); do"},{"line_number":559,"context_line":"    source $TOP_DIR/lib/$project"},{"line_number":560,"context_line":"done"},{"line_number":561,"context_line":""}],"source_content_type":"text/x-sh","patch_set":4,"id":"1af94dfe_2b4a6aac","line":558,"in_reply_to":"1af94dfe_2b1a897d","updated":"2016-03-17 19:48:45.000000000","message":"Because it ensures that we will keep the projects file up to date. Otherwise, it\u0027s too easy for it to be out of sync with the code.","commit_id":"ca0ba54e0abfa97fd3a9233522a7cd4a96eff209"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"3e019c26db8cac18cc00de3b1fcb413b8d245558","unresolved":false,"context_lines":[{"line_number":559,"context_line":"    if [ -f \"$TOP_DIR/lib/$project\" ]; then"},{"line_number":560,"context_line":"        source $TOP_DIR/lib/$project"},{"line_number":561,"context_line":"    fi"},{"line_number":562,"context_line":"done"},{"line_number":563,"context_line":""},{"line_number":564,"context_line":"# Extras Source"},{"line_number":565,"context_line":"# --------------"}],"source_content_type":"text/x-sh","patch_set":6,"id":"9a061dce_e5fe7d04","line":562,"updated":"2016-04-04 12:34:41.000000000","message":"lets not over normalize this, it gives these file names more meaning then they are and uses them for 2 things.","commit_id":"e21f8930a0030f0de5645640b91d0437b0fa1613"}],"tools/can_branch_stable.py":[{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"3e019c26db8cac18cc00de3b1fcb413b8d245558","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"def find_projects():"},{"line_number":10,"context_line":"    mydir \u003d os.path.dirname(os.path.realpath(__file__))"},{"line_number":11,"context_line":"    projects \u003d os.path.join(mydir, \u0027..\u0027, \u0027projects\u0027)"},{"line_number":12,"context_line":"    if os.path.exists(projects):"},{"line_number":13,"context_line":"        return projects"},{"line_number":14,"context_line":"    projects \u003d os.path.join(os.path.realpath(os.curdir()), \u0027projects\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a061dce_65138d5d","line":11,"updated":"2016-04-04 12:34:41.000000000","message":"honestly, I\u0027d just hardcode the projects we care about in here.","commit_id":"e21f8930a0030f0de5645640b91d0437b0fa1613"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"8d723ebcb31a438d282c48013d03492fabd0fa9f","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"def find_projects():"},{"line_number":10,"context_line":"    mydir \u003d os.path.dirname(os.path.realpath(__file__))"},{"line_number":11,"context_line":"    projects \u003d os.path.join(mydir, \u0027..\u0027, \u0027projects\u0027)"},{"line_number":12,"context_line":"    if os.path.exists(projects):"},{"line_number":13,"context_line":"        return projects"},{"line_number":14,"context_line":"    projects \u003d os.path.join(os.path.realpath(os.curdir()), \u0027projects\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a18252c_16cf4880","line":11,"in_reply_to":"9a061dce_65138d5d","updated":"2016-04-12 19:09:28.000000000","message":"I\u0027m not really sure how this isn\u0027t going to get out of date and ignored, but okay.","commit_id":"e21f8930a0030f0de5645640b91d0437b0fa1613"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"2cc3b87d363ac152ce83cb6feef0ca8ae45a6da2","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"def check_project(project, release):"},{"line_number":21,"context_line":"    r \u003d requests.get(\u0027http://github.com/openstack/%s/tree/stable/%s\u0027 % ("},{"line_number":22,"context_line":"        project, release))"},{"line_number":23,"context_line":"    if r.status_code \u003d\u003d 404:"},{"line_number":24,"context_line":"        return False"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a18252c_a4841ad4","line":21,"updated":"2016-04-13 20:14:31.000000000","message":"It would be better to use our git server, to avoid relying on github syncing being up to date.\n\nAn example URL for a branch is http://git.openstack.org/cgit/openstack/nova?h\u003dstable%2Fkilo","commit_id":"a73e79369faf7802e33407d072f5a9fe364cc8fa"}]}
