)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14482,"name":"Ian Y. Choi","email":"ianyrchoi@gmail.com","username":"ianychoi"},"change_message_id":"5695d10d88d7a1bb4e09c0f37c10e444a7268c8e","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add pdf file link in build result page"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Now, openstack manual builds supports build a pdf file."},{"line_number":10,"context_line":"But, The build result page of zenkins does not show pdf files."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This patch adds a pdf file link for manual in build result page,"},{"line_number":13,"context_line":"and remove \u0027bk-api-ref*.pdf\u0027 section to prevent confused on what"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"1a6eadb0_54f1cf93","line":10,"range":{"start_line":10,"start_character":52,"end_line":10,"end_character":55},"updated":"2016-12-17 17:17:54.000000000","message":"-\u003e \"PDF\"","commit_id":"f2443f44eaf17e400c394cdf52bfe70a4219f802"},{"author":{"_account_id":14482,"name":"Ian Y. Choi","email":"ianyrchoi@gmail.com","username":"ianychoi"},"change_message_id":"5695d10d88d7a1bb4e09c0f37c10e444a7268c8e","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add pdf file link in build result page"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Now, openstack manual builds supports build a pdf file."},{"line_number":10,"context_line":"But, The build result page of zenkins does not show pdf files."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This patch adds a pdf file link for manual in build result page,"},{"line_number":13,"context_line":"and remove \u0027bk-api-ref*.pdf\u0027 section to prevent confused on what"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"1a6eadb0_34f6138f","line":10,"range":{"start_line":10,"start_character":30,"end_line":10,"end_character":37},"updated":"2016-12-17 17:17:54.000000000","message":"-\u003e \"Zenkins\"","commit_id":"f2443f44eaf17e400c394cdf52bfe70a4219f802"},{"author":{"_account_id":14482,"name":"Ian Y. Choi","email":"ianyrchoi@gmail.com","username":"ianychoi"},"change_message_id":"5695d10d88d7a1bb4e09c0f37c10e444a7268c8e","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add pdf file link in build result page"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Now, openstack manual builds supports build a pdf file."},{"line_number":10,"context_line":"But, The build result page of zenkins does not show pdf files."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This patch adds a pdf file link for manual in build result page,"},{"line_number":13,"context_line":"and remove \u0027bk-api-ref*.pdf\u0027 section to prevent confused on what"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"1a6eadb0_14fbd779","line":10,"range":{"start_line":10,"start_character":5,"end_line":10,"end_character":8},"updated":"2016-12-17 17:17:54.000000000","message":"-\u003e \"the\" instead of \"The\", because of comma","commit_id":"f2443f44eaf17e400c394cdf52bfe70a4219f802"},{"author":{"_account_id":14482,"name":"Ian Y. Choi","email":"ianyrchoi@gmail.com","username":"ianychoi"},"change_message_id":"5695d10d88d7a1bb4e09c0f37c10e444a7268c8e","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Now, openstack manual builds supports build a pdf file."},{"line_number":10,"context_line":"But, The build result page of zenkins does not show pdf files."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This patch adds a pdf file link for manual in build result page,"},{"line_number":13,"context_line":"and remove \u0027bk-api-ref*.pdf\u0027 section to prevent confused on what"},{"line_number":14,"context_line":"is making the PDF files and copying them."},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"1a6eadb0_74ec0bbb","line":12,"range":{"start_line":12,"start_character":18,"end_line":12,"end_character":21},"updated":"2016-12-17 17:17:54.000000000","message":"-\u003e \"PDF\"","commit_id":"f2443f44eaf17e400c394cdf52bfe70a4219f802"},{"author":{"_account_id":14482,"name":"Ian Y. Choi","email":"ianyrchoi@gmail.com","username":"ianychoi"},"change_message_id":"5695d10d88d7a1bb4e09c0f37c10e444a7268c8e","unresolved":false,"context_lines":[{"line_number":10,"context_line":"But, The build result page of zenkins does not show pdf files."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This patch adds a pdf file link for manual in build result page,"},{"line_number":13,"context_line":"and remove \u0027bk-api-ref*.pdf\u0027 section to prevent confused on what"},{"line_number":14,"context_line":"is making the PDF files and copying them."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I5043c582c5a09cf8a8976a05a0ba65a007fcf20f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"1a6eadb0_b4306357","line":13,"range":{"start_line":13,"start_character":4,"end_line":13,"end_character":10},"updated":"2016-12-17 17:17:54.000000000","message":"-\u003e \"removes\"","commit_id":"f2443f44eaf17e400c394cdf52bfe70a4219f802"}],"os_doc_tools/index.py":[{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"7689117a5f405642cd30cc64e0dce805c3cf22ef","unresolved":false,"context_lines":[{"line_number":25,"context_line":"        return \u0027\u0027"},{"line_number":26,"context_line":"    filename \u003d os.path.basename(re[0])"},{"line_number":27,"context_line":"    path \u003d os.path.relpath(root, publish_path)"},{"line_number":28,"context_line":"    return \u0027\u003ca href\u003d\"%s/%s\"\u003e(pdf)\u003c/a\u003e\u0027 % (path, filename)"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"def generate_index_file(publish_path):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a6eadb0_24dea03f","line":28,"range":{"start_line":28,"start_character":12,"end_line":28,"end_character":13},"updated":"2016-12-13 18:26:37.000000000","message":"instead add space here","commit_id":"15c15cad6d7447189d70e10a7557a349b5bb88ab"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"7689117a5f405642cd30cc64e0dce805c3cf22ef","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        if os.path.isfile(os.path.join(root, \u0027content/index.html\u0027)):"},{"line_number":59,"context_line":"            path \u003d os.path.relpath(root, publish_path)"},{"line_number":60,"context_line":"            links[path] \u003d (\u0027\u003ca href\u003d\"%s/content/index.html\"\u003e%s\u003c/a\u003e %s\\n\u0027 %"},{"line_number":61,"context_line":"                           (path, path, pdf_link))"},{"line_number":62,"context_line":"        elif os.path.isfile(os.path.join(root, \u0027index.html\u0027)):"},{"line_number":63,"context_line":"            path \u003d os.path.relpath(root, publish_path)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a6eadb0_6421784d","line":60,"range":{"start_line":60,"start_character":66,"end_line":60,"end_character":67},"updated":"2016-12-13 18:26:37.000000000","message":"Let\u0027s remove the extra white space - for those docs where nothing exists","commit_id":"15c15cad6d7447189d70e10a7557a349b5bb88ab"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"7689117a5f405642cd30cc64e0dce805c3cf22ef","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        if os.path.isfile(os.path.join(root, \u0027api-ref.html\u0027)):"},{"line_number":68,"context_line":"            path \u003d os.path.relpath(root, publish_path)"},{"line_number":69,"context_line":"            links[path] \u003d (\u0027\u003ca href\u003d\"%s/api-ref.html\"\u003e%s\u003c/a\u003e %s\\n\u0027 %"},{"line_number":70,"context_line":"                           (path, path, pdf_link))"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        # List PDF files for api-site that have from \"bk-api-ref*.pdf\""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a6eadb0_64e898e3","line":69,"range":{"start_line":69,"start_character":60,"end_line":69,"end_character":61},"updated":"2016-12-13 18:26:37.000000000","message":"likewise","commit_id":"15c15cad6d7447189d70e10a7557a349b5bb88ab"},{"author":{"_account_id":964,"name":"Anne Gentle","email":"annegentle@justwriteclick.com","username":"annegentle"},"change_message_id":"26a6ebb327bb95c9d1bb843e68cfa7b137ef206e","unresolved":false,"context_lines":[{"line_number":70,"context_line":"                           (path, path, pdf_link))"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        # List PDF files for api-site that have from \"bk-api-ref*.pdf\""},{"line_number":73,"context_line":"        # as well since they have no corresponding html file."},{"line_number":74,"context_line":"        for f in files:"},{"line_number":75,"context_line":"            if f.startswith(\u0027bk-api-ref\u0027) and f.endswith(\u0027.pdf\u0027):"},{"line_number":76,"context_line":"                path \u003d os.path.relpath(root, publish_path)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a6eadb0_c68a1ebf","line":73,"updated":"2016-12-14 16:21:58.000000000","message":"I don\u0027t think these files are relevant any more, and it might help to delete this section so that people do not get confused on what is making the PDF files and copying them.","commit_id":"19745bc80e9981de033e3b2c3e8b56d1944d3f9c"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"d95556418010646576356913b55fad8a056092e4","unresolved":false,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        pdf_link \u003d get_pdf_link(root, publish_path)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        if os.path.isfile(os.path.join(root, \u0027content/index.html\u0027)):"},{"line_number":59,"context_line":"            path \u003d os.path.relpath(root, publish_path)"},{"line_number":60,"context_line":"            links[path] \u003d (\u0027\u003ca href\u003d\"%s/content/index.html\"\u003e%s\u003c/a\u003e%s\\n\u0027 %"},{"line_number":61,"context_line":"                           (path, path, pdf_link))"},{"line_number":62,"context_line":"        elif os.path.isfile(os.path.join(root, \u0027index.html\u0027)):"},{"line_number":63,"context_line":"            path \u003d os.path.relpath(root, publish_path)"},{"line_number":64,"context_line":"            links[path] \u003d (\u0027\u003ca href\u003d\"%s/index.html\"\u003e%s\u003c/a\u003e%s\\n\u0027 %"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a6eadb0_b40a23d0","line":61,"range":{"start_line":58,"start_character":3,"end_line":61,"end_character":50},"updated":"2016-12-17 16:38:35.000000000","message":"this could be removed, we do not have this kind of docs anymore","commit_id":"f2443f44eaf17e400c394cdf52bfe70a4219f802"},{"author":{"_account_id":14482,"name":"Ian Y. Choi","email":"ianyrchoi@gmail.com","username":"ianychoi"},"change_message_id":"5695d10d88d7a1bb4e09c0f37c10e444a7268c8e","unresolved":false,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        pdf_link \u003d get_pdf_link(root, publish_path)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        if os.path.isfile(os.path.join(root, \u0027content/index.html\u0027)):"},{"line_number":59,"context_line":"            path \u003d os.path.relpath(root, publish_path)"},{"line_number":60,"context_line":"            links[path] \u003d (\u0027\u003ca href\u003d\"%s/content/index.html\"\u003e%s\u003c/a\u003e%s\\n\u0027 %"},{"line_number":61,"context_line":"                           (path, path, pdf_link))"},{"line_number":62,"context_line":"        elif os.path.isfile(os.path.join(root, \u0027index.html\u0027)):"},{"line_number":63,"context_line":"            path \u003d os.path.relpath(root, publish_path)"},{"line_number":64,"context_line":"            links[path] \u003d (\u0027\u003ca href\u003d\"%s/index.html\"\u003e%s\u003c/a\u003e%s\\n\u0027 %"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a6eadb0_b4e223d3","line":61,"range":{"start_line":58,"start_character":3,"end_line":61,"end_character":50},"in_reply_to":"1a6eadb0_b40a23d0","updated":"2016-12-17 17:17:54.000000000","message":"I agree :)","commit_id":"f2443f44eaf17e400c394cdf52bfe70a4219f802"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"d95556418010646576356913b55fad8a056092e4","unresolved":false,"context_lines":[{"line_number":59,"context_line":"            path \u003d os.path.relpath(root, publish_path)"},{"line_number":60,"context_line":"            links[path] \u003d (\u0027\u003ca href\u003d\"%s/content/index.html\"\u003e%s\u003c/a\u003e%s\\n\u0027 %"},{"line_number":61,"context_line":"                           (path, path, pdf_link))"},{"line_number":62,"context_line":"        elif os.path.isfile(os.path.join(root, \u0027index.html\u0027)):"},{"line_number":63,"context_line":"            path \u003d os.path.relpath(root, publish_path)"},{"line_number":64,"context_line":"            links[path] \u003d (\u0027\u003ca href\u003d\"%s/index.html\"\u003e%s\u003c/a\u003e%s\\n\u0027 %"},{"line_number":65,"context_line":"                           (path, path.replace(\u0027draft/\u0027, \u0027\u0027), pdf_link))"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        if os.path.isfile(os.path.join(root, \u0027api-ref.html\u0027)):"},{"line_number":68,"context_line":"            path \u003d os.path.relpath(root, publish_path)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a6eadb0_34f7f3d3","line":65,"range":{"start_line":62,"start_character":10,"end_line":65,"end_character":72},"updated":"2016-12-17 16:38:35.000000000","message":"This is the only condition we still need.","commit_id":"f2443f44eaf17e400c394cdf52bfe70a4219f802"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"d95556418010646576356913b55fad8a056092e4","unresolved":false,"context_lines":[{"line_number":64,"context_line":"            links[path] \u003d (\u0027\u003ca href\u003d\"%s/index.html\"\u003e%s\u003c/a\u003e%s\\n\u0027 %"},{"line_number":65,"context_line":"                           (path, path.replace(\u0027draft/\u0027, \u0027\u0027), pdf_link))"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        if os.path.isfile(os.path.join(root, \u0027api-ref.html\u0027)):"},{"line_number":68,"context_line":"            path \u003d os.path.relpath(root, publish_path)"},{"line_number":69,"context_line":"            links[path] \u003d (\u0027\u003ca href\u003d\"%s/api-ref.html\"\u003e%s\u003c/a\u003e%s\\n\u0027 %"},{"line_number":70,"context_line":"                           (path, path, pdf_link))"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    for entry in sorted([s for s in links if not s.startswith(\u0027draft/\u0027)]):"},{"line_number":73,"context_line":"        index_file.write(links[entry])"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a6eadb0_d40ddfe8","line":70,"range":{"start_line":67,"start_character":0,"end_line":70,"end_character":50},"updated":"2016-12-17 16:38:35.000000000","message":"likewise, this is not used anymore.","commit_id":"f2443f44eaf17e400c394cdf52bfe70a4219f802"},{"author":{"_account_id":14482,"name":"Ian Y. Choi","email":"ianyrchoi@gmail.com","username":"ianychoi"},"change_message_id":"5695d10d88d7a1bb4e09c0f37c10e444a7268c8e","unresolved":false,"context_lines":[{"line_number":64,"context_line":"            links[path] \u003d (\u0027\u003ca href\u003d\"%s/index.html\"\u003e%s\u003c/a\u003e%s\\n\u0027 %"},{"line_number":65,"context_line":"                           (path, path.replace(\u0027draft/\u0027, \u0027\u0027), pdf_link))"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        if os.path.isfile(os.path.join(root, \u0027api-ref.html\u0027)):"},{"line_number":68,"context_line":"            path \u003d os.path.relpath(root, publish_path)"},{"line_number":69,"context_line":"            links[path] \u003d (\u0027\u003ca href\u003d\"%s/api-ref.html\"\u003e%s\u003c/a\u003e%s\\n\u0027 %"},{"line_number":70,"context_line":"                           (path, path, pdf_link))"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    for entry in sorted([s for s in links if not s.startswith(\u0027draft/\u0027)]):"},{"line_number":73,"context_line":"        index_file.write(links[entry])"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a6eadb0_74432baf","line":70,"range":{"start_line":67,"start_character":0,"end_line":70,"end_character":50},"in_reply_to":"1a6eadb0_d40ddfe8","updated":"2016-12-17 17:17:54.000000000","message":"-\u003e I agree. Please remove and update the commit message containing this removal.","commit_id":"f2443f44eaf17e400c394cdf52bfe70a4219f802"}]}
