)]}'
{"app/views/home.html":[{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"8b7df1c46513d6995615df7577d00f6b3411d013","unresolved":false,"context_lines":[{"line_number":55,"context_line":"                    \u003ctbody\u003e"},{"line_number":56,"context_line":"                        \u003ctr table-ref\u003d\"table\" ng-repeat\u003d\"testRun in table.dataSorted\"\u003e"},{"line_number":57,"context_line":"                            \u003ctd\u003e\u003ca ui-sref\u003d\"test({ testId: testRun.test_id })\"}\u003e{{ testRun.test_id }}\u003c/td\u003e"},{"line_number":58,"context_line":"                            \u003ctd\u003e\u003ca target\u003d\"_blank\" href\u003d\"{{ testRun.link }}\"\u003e[link]\u003c/a\u003e\u003c/td\u003e"},{"line_number":59,"context_line":"                            \u003ctd\u003e{{ testRun.start_time | date:\u0027short\u0027 }}\u003c/td\u003e"},{"line_number":60,"context_line":"                            \u003ctd\u003e{{ testRun.stop_time | date:\u0027short\u0027 }}\u003c/td\u003e"},{"line_number":61,"context_line":"                        \u003c/tr\u003e"}],"source_content_type":"text/html","patch_set":1,"id":"7af24918_6244ae1a","line":58,"range":{"start_line":58,"start_character":77,"end_line":58,"end_character":83},"updated":"2016-03-02 22:50:23.000000000","message":"So the 1 nice thing about having the link there was being able to correlate the failures in a single run. I think we still want an identifier like that here. (maybe parse the zuul short build uuid from the link text and use that)","commit_id":"b053b015b8845fbc3ccb41841db7188941d9b3de"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"3d9bc634a70b9a848ca3b439296862d2a286a8e0","unresolved":false,"context_lines":[{"line_number":55,"context_line":"                    \u003ctbody\u003e"},{"line_number":56,"context_line":"                        \u003ctr table-ref\u003d\"table\" ng-repeat\u003d\"testRun in table.dataSorted\"\u003e"},{"line_number":57,"context_line":"                            \u003ctd\u003e\u003ca ui-sref\u003d\"test({ testId: testRun.test_id })\"}\u003e{{ testRun.test_id }}\u003c/td\u003e"},{"line_number":58,"context_line":"                            \u003ctd\u003e\u003ca target\u003d\"_blank\" href\u003d\"{{ testRun.link }}\"\u003e[link]\u003c/a\u003e\u003c/td\u003e"},{"line_number":59,"context_line":"                            \u003ctd\u003e{{ testRun.start_time | date:\u0027short\u0027 }}\u003c/td\u003e"},{"line_number":60,"context_line":"                            \u003ctd\u003e{{ testRun.stop_time | date:\u0027short\u0027 }}\u003c/td\u003e"},{"line_number":61,"context_line":"                        \u003c/tr\u003e"}],"source_content_type":"text/html","patch_set":1,"id":"7af24918_f1e99ce7","line":58,"range":{"start_line":58,"start_character":77,"end_line":58,"end_character":83},"in_reply_to":"7af24918_6244ae1a","updated":"2016-03-03 07:21:17.000000000","message":"I think we can put a full url string without big UI destruction because we can wrap this url string. \nBut for more improvement, suppressing \u0027http://logs.openstack.org/\u0027 seems to be nice.","commit_id":"b053b015b8845fbc3ccb41841db7188941d9b3de"},{"author":{"_account_id":17001,"name":"Tim Buckley","email":"timothy.jas.buckley@hpe.com","username":"timothy.jas.buckley"},"change_message_id":"2e02cde2ca41593eccc8c2e9481db40d4c56f90a","unresolved":false,"context_lines":[{"line_number":55,"context_line":"                    \u003ctbody\u003e"},{"line_number":56,"context_line":"                        \u003ctr table-ref\u003d\"table\" ng-repeat\u003d\"testRun in table.dataSorted\"\u003e"},{"line_number":57,"context_line":"                            \u003ctd\u003e\u003ca ui-sref\u003d\"test({ testId: testRun.test_id })\"}\u003e{{ testRun.test_id }}\u003c/td\u003e"},{"line_number":58,"context_line":"                            \u003ctd\u003e\u003ca target\u003d\"_blank\" href\u003d\"{{ testRun.link }}\"\u003e[link]\u003c/a\u003e\u003c/td\u003e"},{"line_number":59,"context_line":"                            \u003ctd\u003e{{ testRun.start_time | date:\u0027short\u0027 }}\u003c/td\u003e"},{"line_number":60,"context_line":"                            \u003ctd\u003e{{ testRun.stop_time | date:\u0027short\u0027 }}\u003c/td\u003e"},{"line_number":61,"context_line":"                        \u003c/tr\u003e"}],"source_content_type":"text/html","patch_set":1,"id":"7af24918_43b206e6","line":58,"range":{"start_line":58,"start_character":77,"end_line":58,"end_character":83},"in_reply_to":"7af24918_f1e99ce7","updated":"2016-03-04 00:19:40.000000000","message":"I\u0027ve changed this to try to pull the zuul uuid out of the URL whenever possible (technically the last path segment, since there isn\u0027t always a uuid for e.g. failed periodic jobs).","commit_id":"b053b015b8845fbc3ccb41841db7188941d9b3de"},{"author":{"_account_id":12767,"name":"Craige McWhirter","email":"craige@mcwhirter.io","username":"craige"},"change_message_id":"055ac4bb975ca4bf6914808e07165fb3ef4b2d87","unresolved":false,"context_lines":[{"line_number":56,"context_line":"                        \u003ctr table-ref\u003d\"table\" ng-repeat\u003d\"testRun in table.dataSorted\"\u003e"},{"line_number":57,"context_line":"                            \u003ctd\u003e\u003ca ui-sref\u003d\"test({ testId: testRun.test_id })\"}\u003e{{ testRun.test_id }}\u003c/td\u003e"},{"line_number":58,"context_line":"                            \u003ctd\u003e\u003ca target\u003d\"_blank\" href\u003d\"{{ testRun.link }}\"\u003e[link]\u003c/a\u003e\u003c/td\u003e"},{"line_number":59,"context_line":"                            \u003ctd\u003e{{ testRun.start_time | date:\u0027short\u0027 }}\u003c/td\u003e"},{"line_number":60,"context_line":"                            \u003ctd\u003e{{ testRun.stop_time | date:\u0027short\u0027 }}\u003c/td\u003e"},{"line_number":61,"context_line":"                        \u003c/tr\u003e"},{"line_number":62,"context_line":"                    \u003c/tbody\u003e"}],"source_content_type":"text/html","patch_set":1,"id":"7af24918_57064b20","line":59,"updated":"2016-03-03 21:47:57.000000000","message":"+1 for 24 hour time here.","commit_id":"b053b015b8845fbc3ccb41841db7188941d9b3de"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"8b7df1c46513d6995615df7577d00f6b3411d013","unresolved":false,"context_lines":[{"line_number":56,"context_line":"                        \u003ctr table-ref\u003d\"table\" ng-repeat\u003d\"testRun in table.dataSorted\"\u003e"},{"line_number":57,"context_line":"                            \u003ctd\u003e\u003ca ui-sref\u003d\"test({ testId: testRun.test_id })\"}\u003e{{ testRun.test_id }}\u003c/td\u003e"},{"line_number":58,"context_line":"                            \u003ctd\u003e\u003ca target\u003d\"_blank\" href\u003d\"{{ testRun.link }}\"\u003e[link]\u003c/a\u003e\u003c/td\u003e"},{"line_number":59,"context_line":"                            \u003ctd\u003e{{ testRun.start_time | date:\u0027short\u0027 }}\u003c/td\u003e"},{"line_number":60,"context_line":"                            \u003ctd\u003e{{ testRun.stop_time | date:\u0027short\u0027 }}\u003c/td\u003e"},{"line_number":61,"context_line":"                        \u003c/tr\u003e"},{"line_number":62,"context_line":"                    \u003c/tbody\u003e"}],"source_content_type":"text/html","patch_set":1,"id":"7af24918_62714ea8","line":59,"range":{"start_line":59,"start_character":62,"end_line":59,"end_character":67},"updated":"2016-03-02 22:50:23.000000000","message":"is there a way to use 24 hr time here? I don\u0027t like the AM/PM","commit_id":"b053b015b8845fbc3ccb41841db7188941d9b3de"},{"author":{"_account_id":17001,"name":"Tim Buckley","email":"timothy.jas.buckley@hpe.com","username":"timothy.jas.buckley"},"change_message_id":"2e02cde2ca41593eccc8c2e9481db40d4c56f90a","unresolved":false,"context_lines":[{"line_number":56,"context_line":"                        \u003ctr table-ref\u003d\"table\" ng-repeat\u003d\"testRun in table.dataSorted\"\u003e"},{"line_number":57,"context_line":"                            \u003ctd\u003e\u003ca ui-sref\u003d\"test({ testId: testRun.test_id })\"}\u003e{{ testRun.test_id }}\u003c/td\u003e"},{"line_number":58,"context_line":"                            \u003ctd\u003e\u003ca target\u003d\"_blank\" href\u003d\"{{ testRun.link }}\"\u003e[link]\u003c/a\u003e\u003c/td\u003e"},{"line_number":59,"context_line":"                            \u003ctd\u003e{{ testRun.start_time | date:\u0027short\u0027 }}\u003c/td\u003e"},{"line_number":60,"context_line":"                            \u003ctd\u003e{{ testRun.stop_time | date:\u0027short\u0027 }}\u003c/td\u003e"},{"line_number":61,"context_line":"                        \u003c/tr\u003e"},{"line_number":62,"context_line":"                    \u003c/tbody\u003e"}],"source_content_type":"text/html","patch_set":1,"id":"7af24918_63b3c20a","line":59,"in_reply_to":"7af24918_57064b20","updated":"2016-03-04 00:19:40.000000000","message":"I switched to 24-hour time, but I didn\u0027t change the date format much, except to use full years. The table sorting doesn\u0027t know how to sort by date, so we need to keep the string versions sortable.","commit_id":"b053b015b8845fbc3ccb41841db7188941d9b3de"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"3d9bc634a70b9a848ca3b439296862d2a286a8e0","unresolved":false,"context_lines":[{"line_number":56,"context_line":"                        \u003ctr table-ref\u003d\"table\" ng-repeat\u003d\"testRun in table.dataSorted\"\u003e"},{"line_number":57,"context_line":"                            \u003ctd\u003e\u003ca ui-sref\u003d\"test({ testId: testRun.test_id })\"}\u003e{{ testRun.test_id }}\u003c/td\u003e"},{"line_number":58,"context_line":"                            \u003ctd\u003e\u003ca target\u003d\"_blank\" href\u003d\"{{ testRun.link }}\"\u003e[link]\u003c/a\u003e\u003c/td\u003e"},{"line_number":59,"context_line":"                            \u003ctd\u003e{{ testRun.start_time | date:\u0027short\u0027 }}\u003c/td\u003e"},{"line_number":60,"context_line":"                            \u003ctd\u003e{{ testRun.stop_time | date:\u0027short\u0027 }}\u003c/td\u003e"},{"line_number":61,"context_line":"                        \u003c/tr\u003e"},{"line_number":62,"context_line":"                    \u003c/tbody\u003e"}],"source_content_type":"text/html","patch_set":1,"id":"7af24918_cbd02ff9","line":59,"range":{"start_line":59,"start_character":62,"end_line":59,"end_character":67},"in_reply_to":"7af24918_62714ea8","updated":"2016-03-03 07:21:17.000000000","message":"Yes, there is like this \u0027MM/dd HH:mm\u0027.\nI\u0027m familiar with this format. But I\u0027m not sure about non Japanese people..\n\nAnd if we use the \u0027MMM\u0027(Month in year (Jan-Dec)) format, I suppose the table sort doesn\u0027t work correctly..","commit_id":"b053b015b8845fbc3ccb41841db7188941d9b3de"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"8b07e14064cd84a3647dd6d31e3e6e9d7af54ceb","unresolved":false,"context_lines":[{"line_number":65,"context_line":"                            \u003c/td\u003e"},{"line_number":66,"context_line":"                            \u003ctd\u003e"},{"line_number":67,"context_line":"                                \u003ca target\u003d\"_blank\" href\u003d\"{{ testRun.link }}\"\u003e"},{"line_number":68,"context_line":"                                    {{ testRun.link | split:\u0027/\u0027 | last | join }}"},{"line_number":69,"context_line":"                                \u003c/a\u003e"},{"line_number":70,"context_line":"                            \u003c/td\u003e"},{"line_number":71,"context_line":"                            \u003ctd\u003e{{ testRun.start_time | date:\u0027M/d/yyyy HH:mm\u0027 }}\u003c/td\u003e"}],"source_content_type":"text/html","patch_set":3,"id":"5aef4532_2b81a58f","line":68,"range":{"start_line":68,"start_character":54,"end_line":68,"end_character":77},"updated":"2016-03-10 05:42:01.000000000","message":"I noticed some of \"Run Link\"s doesn\u0027t have  UUID such as \"gate-zuul-python27\", \"gate-python-tripleoclient-python27\", \"logs\", etc.\nSo how about picking after \"../gate/\" or more?\n\nI feel job information such as \"gate-zuul-python27\", \"gate-python-tripleoclient-python27\" are also useful for users.","commit_id":"ffeb9a197d9da26c3607e21e4dc717f8df94c9f7"},{"author":{"_account_id":17001,"name":"Tim Buckley","email":"timothy.jas.buckley@hpe.com","username":"timothy.jas.buckley"},"change_message_id":"551874ab352ebce9d8c03a22d1fc39bfc88fce9e","unresolved":false,"context_lines":[{"line_number":65,"context_line":"                            \u003c/td\u003e"},{"line_number":66,"context_line":"                            \u003ctd\u003e"},{"line_number":67,"context_line":"                                \u003ca target\u003d\"_blank\" href\u003d\"{{ testRun.link }}\"\u003e"},{"line_number":68,"context_line":"                                    {{ testRun.link | split:\u0027/\u0027 | last | join }}"},{"line_number":69,"context_line":"                                \u003c/a\u003e"},{"line_number":70,"context_line":"                            \u003c/td\u003e"},{"line_number":71,"context_line":"                            \u003ctd\u003e{{ testRun.start_time | date:\u0027M/d/yyyy HH:mm\u0027 }}\u003c/td\u003e"}],"source_content_type":"text/html","patch_set":3,"id":"1af94dfe_32d88d53","line":68,"range":{"start_line":68,"start_character":54,"end_line":68,"end_character":77},"in_reply_to":"5aef4532_2b81a58f","updated":"2016-03-16 02:56:45.000000000","message":"I\u0027ve added the last 2 parts of the URL in the latest revision, but there will still be some odd results in the list until I75c53c498261e44989cdb7bf49d909ebde2b2699 is merged","commit_id":"ffeb9a197d9da26c3607e21e4dc717f8df94c9f7"}],"app/views/job.html":[{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"8b07e14064cd84a3647dd6d31e3e6e9d7af54ceb","unresolved":false,"context_lines":[{"line_number":47,"context_line":"                       class\u003d\"table table-hover default-cols\"\u003e"},{"line_number":48,"context_line":"                    \u003cthead\u003e"},{"line_number":49,"context_line":"                        \u003ctr\u003e"},{"line_number":50,"context_line":"                            \u003cth sort-field\u003d\"link\"\u003eLink\u003c/th\u003e"},{"line_number":51,"context_line":"                            \u003cth sort-field\u003d\"status\"\u003eStatus\u003c/th\u003e"},{"line_number":52,"context_line":"                            \u003cth sort-default sort-field\u003d\"start_date\"\u003eRun At\u003c/th\u003e"},{"line_number":53,"context_line":"                        \u003c/tr\u003e"}],"source_content_type":"text/html","patch_set":3,"id":"5aef4532_0e5dd714","line":50,"range":{"start_line":50,"start_character":32,"end_line":50,"end_character":42},"updated":"2016-03-10 05:42:01.000000000","message":"I\u0027m not sure this column sorting is useful or not. But I\u0027m OK :)","commit_id":"ffeb9a197d9da26c3607e21e4dc717f8df94c9f7"}]}
