)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"04de5dda3e4f14bfd236d92fe5dbd20e5a31138e","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Move logic of floating-ip creation out of transaction"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The section of codes are not necessary in the db transaction."},{"line_number":10,"context_line":"The port and subnet are guaranteed in neutron db operation,"},{"line_number":11,"context_line":"so the check of port and subnet are redundant."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"dab17558_4fde92dd","line":9,"updated":"2016-05-12 02:02:54.000000000","message":"what\u0027s the motivation to move it out of the transaction?","commit_id":"771c28b702c4ce37a553f7ccbdfd9769d2240f9c"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"04de5dda3e4f14bfd236d92fe5dbd20e5a31138e","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Add a simple check on IPv6 floating IP."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I9d798ff706a32b84a086a4cb560d50f48353bb65"},{"line_number":16,"context_line":"Partial-Bug: #1578472"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"dab17558_6fdf16d6","line":16,"updated":"2016-05-12 02:02:54.000000000","message":"i\u0027m not sure how this change is related to the bug.","commit_id":"771c28b702c4ce37a553f7ccbdfd9769d2240f9c"}],"dragonflow/neutron/plugin.py":[{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"62294843e559c71121131f4610a1de08b8c4c3aa","unresolved":false,"context_lines":[{"line_number":824,"context_line":"            floatingip_subnet \u003d self._get_floatingip_subnet("},{"line_number":825,"context_line":"                context, subnet_id)"},{"line_number":826,"context_line":"            if floatingip_subnet is None:"},{"line_number":827,"context_line":"                raise n_exc.SubnetNotFound(subnet_id\u003dsubnet_id)"},{"line_number":828,"context_line":"        except Exception:"},{"line_number":829,"context_line":"            with excutils.save_and_reraise_exception() as ctxt:"},{"line_number":830,"context_line":"                ctxt.reraise \u003d True"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_55795a92","line":827,"range":{"start_line":827,"start_character":22,"end_line":827,"end_character":27},"updated":"2016-05-05 04:13:25.000000000","message":"move it beyond try block, maybe after line 837 is better.","commit_id":"b1202910ff077d09aab073d12741fc3901520aff"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"8601379342eb6032e608f08535c6ed4fc83ff7aa","unresolved":false,"context_lines":[{"line_number":824,"context_line":"            floatingip_subnet \u003d self._get_floatingip_subnet("},{"line_number":825,"context_line":"                context, subnet_id)"},{"line_number":826,"context_line":"            if floatingip_subnet is None:"},{"line_number":827,"context_line":"                raise n_exc.SubnetNotFound(subnet_id\u003dsubnet_id)"},{"line_number":828,"context_line":"        except Exception:"},{"line_number":829,"context_line":"            with excutils.save_and_reraise_exception() as ctxt:"},{"line_number":830,"context_line":"                ctxt.reraise \u003d True"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_75e9f619","line":827,"range":{"start_line":827,"start_character":22,"end_line":827,"end_character":27},"in_reply_to":"1a122d0e_55795a92","updated":"2016-05-05 04:18:59.000000000","message":"Thanks for reviewing. I\u0027ll update it soon.","commit_id":"b1202910ff077d09aab073d12741fc3901520aff"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"8952d881f68df883f49b73a17e01a8d4f915efb4","unresolved":false,"context_lines":[{"line_number":818,"context_line":"                ctxt.reraise \u003d True"},{"line_number":819,"context_line":"                # delete the stale floatingip port"},{"line_number":820,"context_line":"                floatingip_port \u003d self._get_floatingip_port("},{"line_number":821,"context_line":"                    context, floatingip_dict[\u0027id\u0027])"},{"line_number":822,"context_line":"                try:"},{"line_number":823,"context_line":"                    if floatingip_port:"},{"line_number":824,"context_line":"                        self.nb_api.delete_lport(floatingip_port[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_751296b5","line":821,"range":{"start_line":821,"start_character":29,"end_line":821,"end_character":44},"updated":"2016-05-05 04:42:40.000000000","message":"haha， it seems it will break","commit_id":"03bf1350c354ef19e98f0ca82f1e4b881255edc2"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"505986c9bb5e7b477f922da0367a17bf1024f7d6","unresolved":false,"context_lines":[{"line_number":813,"context_line":"                floatingip_dict \u003d super(DFPlugin, self).create_floatingip("},{"line_number":814,"context_line":"                    context, floatingip,"},{"line_number":815,"context_line":"                    initial_status\u003dconst.FLOATINGIP_STATUS_DOWN)"},{"line_number":816,"context_line":"            floatingip_port \u003d self._get_floatingip_port("},{"line_number":817,"context_line":"                context, floatingip_dict[\u0027id\u0027])"},{"line_number":818,"context_line":"        except Exception:"},{"line_number":819,"context_line":"            with excutils.save_and_reraise_exception() as ctxt:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_b87f03de","line":816,"range":{"start_line":816,"start_character":29,"end_line":816,"end_character":30},"updated":"2016-05-05 05:36:46.000000000","message":"why not move it too?","commit_id":"29df1e3d82b60139827f6286b2f870dba7101b02"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"4a8ad4b13670715e889e4c69c3981fb5b14480d4","unresolved":false,"context_lines":[{"line_number":813,"context_line":"                floatingip_dict \u003d super(DFPlugin, self).create_floatingip("},{"line_number":814,"context_line":"                    context, floatingip,"},{"line_number":815,"context_line":"                    initial_status\u003dconst.FLOATINGIP_STATUS_DOWN)"},{"line_number":816,"context_line":"            floatingip_port \u003d self._get_floatingip_port("},{"line_number":817,"context_line":"                context, floatingip_dict[\u0027id\u0027])"},{"line_number":818,"context_line":"        except Exception:"},{"line_number":819,"context_line":"            with excutils.save_and_reraise_exception() as ctxt:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_3ec59b5b","line":816,"range":{"start_line":816,"start_character":29,"end_line":816,"end_character":30},"in_reply_to":"1a122d0e_b87f03de","updated":"2016-05-05 06:45:45.000000000","message":"except section needs it.","commit_id":"29df1e3d82b60139827f6286b2f870dba7101b02"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"b57955d60b09bfc6f277151c8b4c652a001d71eb","unresolved":false,"context_lines":[{"line_number":827,"context_line":"                except df_exceptions.DBKeyNotFound:"},{"line_number":828,"context_line":"                    pass"},{"line_number":829,"context_line":""},{"line_number":830,"context_line":"        if not floatingip_port:"},{"line_number":831,"context_line":"            floatingip_port \u003d self._get_floatingip_port("},{"line_number":832,"context_line":"                context, floatingip_dict[\u0027id\u0027])"},{"line_number":833,"context_line":"        subnet_id \u003d floatingip_port[\u0027fixed_ips\u0027][0][\u0027subnet_id\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"dab17558_ab7d20b3","line":830,"updated":"2016-05-08 20:15:04.000000000","message":"Isn;t floatingip_port always None here? When it is set above, the exception is re-raised.","commit_id":"69d434b10f14c779c87f353bbff3c29d6147fc2e"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"bb725bcae17805f580d7347b9fe34a26d16161ea","unresolved":false,"context_lines":[{"line_number":827,"context_line":"                except df_exceptions.DBKeyNotFound:"},{"line_number":828,"context_line":"                    pass"},{"line_number":829,"context_line":""},{"line_number":830,"context_line":"        if not floatingip_port:"},{"line_number":831,"context_line":"            floatingip_port \u003d self._get_floatingip_port("},{"line_number":832,"context_line":"                context, floatingip_dict[\u0027id\u0027])"},{"line_number":833,"context_line":"        subnet_id \u003d floatingip_port[\u0027fixed_ips\u0027][0][\u0027subnet_id\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"dab17558_fc0890db","line":830,"in_reply_to":"dab17558_ab7d20b3","updated":"2016-05-09 02:17:00.000000000","message":"Done","commit_id":"69d434b10f14c779c87f353bbff3c29d6147fc2e"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"b57955d60b09bfc6f277151c8b4c652a001d71eb","unresolved":false,"context_lines":[{"line_number":832,"context_line":"                context, floatingip_dict[\u0027id\u0027])"},{"line_number":833,"context_line":"        subnet_id \u003d floatingip_port[\u0027fixed_ips\u0027][0][\u0027subnet_id\u0027]"},{"line_number":834,"context_line":"        floatingip_subnet \u003d self._get_floatingip_subnet("},{"line_number":835,"context_line":"            context, subnet_id)"},{"line_number":836,"context_line":"        self.nb_api.create_floatingip("},{"line_number":837,"context_line":"                name\u003dfloatingip_dict[\u0027id\u0027],"},{"line_number":838,"context_line":"                topic\u003dfloatingip_dict[\u0027tenant_id\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"dab17558_4b45946e","line":835,"updated":"2016-05-08 20:15:04.000000000","message":"Are we sure the SubnetNotFound error can\u0027t happen here? What if it\u0027s an IPv6 only subnet?","commit_id":"69d434b10f14c779c87f353bbff3c29d6147fc2e"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"bb725bcae17805f580d7347b9fe34a26d16161ea","unresolved":false,"context_lines":[{"line_number":832,"context_line":"                context, floatingip_dict[\u0027id\u0027])"},{"line_number":833,"context_line":"        subnet_id \u003d floatingip_port[\u0027fixed_ips\u0027][0][\u0027subnet_id\u0027]"},{"line_number":834,"context_line":"        floatingip_subnet \u003d self._get_floatingip_subnet("},{"line_number":835,"context_line":"            context, subnet_id)"},{"line_number":836,"context_line":"        self.nb_api.create_floatingip("},{"line_number":837,"context_line":"                name\u003dfloatingip_dict[\u0027id\u0027],"},{"line_number":838,"context_line":"                topic\u003dfloatingip_dict[\u0027tenant_id\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"dab17558_5c10bc01","line":835,"in_reply_to":"dab17558_4b45946e","updated":"2016-05-09 02:17:00.000000000","message":"Done","commit_id":"69d434b10f14c779c87f353bbff3c29d6147fc2e"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"07afd66c32ac89a2356de3c35f7e55ead7041478","unresolved":false,"context_lines":[{"line_number":832,"context_line":"                context, floatingip_dict[\u0027id\u0027])"},{"line_number":833,"context_line":"        subnet_id \u003d floatingip_port[\u0027fixed_ips\u0027][0][\u0027subnet_id\u0027]"},{"line_number":834,"context_line":"        floatingip_subnet \u003d self._get_floatingip_subnet("},{"line_number":835,"context_line":"            context, subnet_id)"},{"line_number":836,"context_line":"        self.nb_api.create_floatingip("},{"line_number":837,"context_line":"                name\u003dfloatingip_dict[\u0027id\u0027],"},{"line_number":838,"context_line":"                topic\u003dfloatingip_dict[\u0027tenant_id\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"dab17558_5c843cd3","line":835,"in_reply_to":"dab17558_4b45946e","updated":"2016-05-09 02:39:42.000000000","message":"SubnetNotFound won\u0027t happen because port-network-subnet foreign key constraint in db. If we don\u0027t support IPv6 floating ip, I will provide a simple way to detect without raising this vague exception.","commit_id":"69d434b10f14c779c87f353bbff3c29d6147fc2e"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"20beaebc032ece8faf7aee9766a691eba0da9aaf","unresolved":false,"context_lines":[{"line_number":808,"context_line":""},{"line_number":809,"context_line":"    def _check_ipv6_in_floatingip(self, floatingip):"},{"line_number":810,"context_line":"        ip \u003d floatingip[\u0027floating_ip_address\u0027]"},{"line_number":811,"context_line":"        msg \u003d \u0027IPv6 floating IP is not supported.\u0027"},{"line_number":812,"context_line":"        if netaddr.IPNetwork(ip).version \u003d\u003d 6:"},{"line_number":813,"context_line":"            raise n_exc.InvalidInput(error_message\u003dmsg)"},{"line_number":814,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"dab17558_af0de8e9","line":811,"range":{"start_line":811,"start_character":15,"end_line":811,"end_character":19},"updated":"2016-05-10 09:12:34.000000000","message":"i18n?","commit_id":"f9d66cb921aacb1424f535c53fb6e2eb85f9abc4"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"d12721e067e7cd9e221f4509f25bbee74682d077","unresolved":false,"context_lines":[{"line_number":808,"context_line":""},{"line_number":809,"context_line":"    def _check_ipv6_in_floatingip(self, floatingip):"},{"line_number":810,"context_line":"        ip \u003d floatingip[\u0027floating_ip_address\u0027]"},{"line_number":811,"context_line":"        msg \u003d \u0027IPv6 floating IP is not supported.\u0027"},{"line_number":812,"context_line":"        if netaddr.IPNetwork(ip).version \u003d\u003d 6:"},{"line_number":813,"context_line":"            raise n_exc.InvalidInput(error_message\u003dmsg)"},{"line_number":814,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"dab17558_4f96fc3f","line":811,"range":{"start_line":811,"start_character":15,"end_line":811,"end_character":19},"in_reply_to":"dab17558_af0de8e9","updated":"2016-05-10 09:15:58.000000000","message":"Done","commit_id":"f9d66cb921aacb1424f535c53fb6e2eb85f9abc4"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"04de5dda3e4f14bfd236d92fe5dbd20e5a31138e","unresolved":false,"context_lines":[{"line_number":849,"context_line":"                floating_mac_address\u003dfloatingip_port[\u0027mac_address\u0027],"},{"line_number":850,"context_line":"                external_gateway_ip\u003dfloatingip_subnet[\u0027gateway_ip\u0027],"},{"line_number":851,"context_line":"                external_cidr\u003dfloatingip_subnet[\u0027cidr\u0027])"},{"line_number":852,"context_line":""},{"line_number":853,"context_line":"        return floatingip_dict"},{"line_number":854,"context_line":""},{"line_number":855,"context_line":"    @lock_db.wrap_db_lock()"}],"source_content_type":"text/x-python","patch_set":11,"id":"dab17558_efb146e1","side":"PARENT","line":852,"updated":"2016-05-12 02:02:54.000000000","message":"better to avoid mixing unrelated whitespace changes.","commit_id":"caf6eaac90274ec5316d9f0649fd1e4e332a2a77"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"fc022e0b5cabb4a5e2174dc8a9d2effa6e7600b0","unresolved":false,"context_lines":[{"line_number":821,"context_line":"                floatingip_dict \u003d super(DFPlugin, self).create_floatingip("},{"line_number":822,"context_line":"                    context, floatingip,"},{"line_number":823,"context_line":"                    initial_status\u003dconst.FLOATINGIP_STATUS_DOWN)"},{"line_number":824,"context_line":"                self._check_ipv6_in_floatingip(floatingip_dict)"},{"line_number":825,"context_line":"        except Exception:"},{"line_number":826,"context_line":"            with excutils.save_and_reraise_exception() as ctxt:"},{"line_number":827,"context_line":"                ctxt.reraise \u003d True"}],"source_content_type":"text/x-python","patch_set":11,"id":"dab17558_4d6c119c","line":824,"range":{"start_line":824,"start_character":0,"end_line":824,"end_character":63},"updated":"2016-05-11 06:39:48.000000000","message":"Can\u0027t this be done outside the transaction?","commit_id":"771c28b702c4ce37a553f7ccbdfd9769d2240f9c"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"9d6f9d1564d95d0fccc36c8efaedabda5188dd7a","unresolved":false,"context_lines":[{"line_number":821,"context_line":"                floatingip_dict \u003d super(DFPlugin, self).create_floatingip("},{"line_number":822,"context_line":"                    context, floatingip,"},{"line_number":823,"context_line":"                    initial_status\u003dconst.FLOATINGIP_STATUS_DOWN)"},{"line_number":824,"context_line":"                self._check_ipv6_in_floatingip(floatingip_dict)"},{"line_number":825,"context_line":"        except Exception:"},{"line_number":826,"context_line":"            with excutils.save_and_reraise_exception() as ctxt:"},{"line_number":827,"context_line":"                ctxt.reraise \u003d True"}],"source_content_type":"text/x-python","patch_set":11,"id":"dab17558_c7757464","line":824,"range":{"start_line":824,"start_character":0,"end_line":824,"end_character":63},"in_reply_to":"dab17558_4d6c119c","updated":"2016-05-11 11:13:09.000000000","message":"The ip allocation happens in the db.create_floatingip(). It is safe to add the check into the transaction. If it is failed, the transaction will be rolled back.","commit_id":"771c28b702c4ce37a553f7ccbdfd9769d2240f9c"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"04de5dda3e4f14bfd236d92fe5dbd20e5a31138e","unresolved":false,"context_lines":[{"line_number":828,"context_line":"                # delete the stale floatingip port"},{"line_number":829,"context_line":"                try:"},{"line_number":830,"context_line":"                    floatingip_port \u003d self._get_floatingip_port("},{"line_number":831,"context_line":"                        context, floatingip_dict[\u0027id\u0027])"},{"line_number":832,"context_line":"                    if floatingip_port:"},{"line_number":833,"context_line":"                        self.nb_api.delete_lport(floatingip_port[\u0027id\u0027],"},{"line_number":834,"context_line":"                                                 floatingip_port[\u0027tenant_id\u0027])"}],"source_content_type":"text/x-python","patch_set":11,"id":"dab17558_af7e1ee1","line":831,"range":{"start_line":831,"start_character":33,"end_line":831,"end_character":48},"updated":"2016-05-12 02:02:54.000000000","message":"floatingip_dict can be None here.","commit_id":"771c28b702c4ce37a553f7ccbdfd9769d2240f9c"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"f8e6c9cd3b0863391749d3e6c13121921bf46a53","unresolved":false,"context_lines":[{"line_number":828,"context_line":"                # delete the stale floatingip port"},{"line_number":829,"context_line":"                try:"},{"line_number":830,"context_line":"                    floatingip_port \u003d self._get_floatingip_port("},{"line_number":831,"context_line":"                        context, floatingip_dict[\u0027id\u0027])"},{"line_number":832,"context_line":"                    if floatingip_port:"},{"line_number":833,"context_line":"                        self.nb_api.delete_lport(floatingip_port[\u0027id\u0027],"},{"line_number":834,"context_line":"                                                 floatingip_port[\u0027tenant_id\u0027])"}],"source_content_type":"text/x-python","patch_set":11,"id":"dab17558_56fd8baf","line":831,"range":{"start_line":831,"start_character":33,"end_line":831,"end_character":48},"in_reply_to":"dab17558_af7e1ee1","updated":"2016-05-12 05:28:22.000000000","message":"Yes, I will fix it.","commit_id":"771c28b702c4ce37a553f7ccbdfd9769d2240f9c"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"e290993b3e7653f74f9685482543d576e11d5950","unresolved":false,"context_lines":[{"line_number":841,"context_line":"            context, floatingip_dict[\u0027id\u0027])"},{"line_number":842,"context_line":"        subnet_id \u003d floatingip_port[\u0027fixed_ips\u0027][0][\u0027subnet_id\u0027]"},{"line_number":843,"context_line":"        floatingip_subnet \u003d self._get_floatingip_subnet("},{"line_number":844,"context_line":"            context, subnet_id)"},{"line_number":845,"context_line":"        self.nb_api.create_floatingip("},{"line_number":846,"context_line":"            name\u003dfloatingip_dict[\u0027id\u0027],"},{"line_number":847,"context_line":"            topic\u003dfloatingip_dict[\u0027tenant_id\u0027],"}],"source_content_type":"text/x-python","patch_set":12,"id":"dab17558_ca2302bc","line":844,"updated":"2016-05-16 06:25:38.000000000","message":"i\u0027m not sure what\u0027s the motivation of the change and i feel it\u0027s simpler to keep these in the above transaction. (less chances of races)","commit_id":"ec9d04e585de4888ed634e2b938660dfd4ce689a"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"e290993b3e7653f74f9685482543d576e11d5950","unresolved":false,"context_lines":[{"line_number":876,"context_line":"    @lock_db.wrap_db_lock()"},{"line_number":877,"context_line":"    def delete_floatingip(self, context, id):"},{"line_number":878,"context_line":"        floatingip \u003d self.get_floatingip(context, id)"},{"line_number":879,"context_line":"        with context.session.begin(subtransactions\u003dTrue):"},{"line_number":880,"context_line":"            super(DFPlugin, self).delete_floatingip(context, id)"},{"line_number":881,"context_line":""},{"line_number":882,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":12,"id":"dab17558_8a145a4d","line":879,"updated":"2016-05-16 06:25:38.000000000","message":"this change is not mentioned in the commit message.\nand i have the same concern above.","commit_id":"ec9d04e585de4888ed634e2b938660dfd4ce689a"}]}
