)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"77372787ba5004831a5aacceb5d03a94ab38b7f3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"beb03cf0_93d4723f","updated":"2023-11-22 13:22:23.000000000","message":"Globally this patch LGTM, I just have a couple of inline comments, please have a look to them.\n\nThanks Takashi","commit_id":"3fa961e759455ff4bee65d4a80a6eea554dde53a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"81b83d2fc1db7ca9f86d91f120125816843702b9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"0d99e695_e363dd06","updated":"2023-11-29 10:45:12.000000000","message":"Fairly soft -1, but easily fixed IMO. +2 if the main comment around versioning is addressed. The rest are nice-to-haves.","commit_id":"f82b835084beb68c96c53926612792e5da8ae029"},{"author":{"_account_id":16137,"name":"Tobias Urdin","email":"tobias.urdin@binero.com","username":"tobasco"},"change_message_id":"58bd28d4732e316068f112b59261e6cb585d954a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"1c51be0f_a9d0139f","updated":"2023-11-23 09:51:06.000000000","message":"LGTM","commit_id":"f82b835084beb68c96c53926612792e5da8ae029"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"7c15411b910483355b3f8e98310cbe6d775a5d21","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"a5048b6f_1b5b665a","updated":"2023-12-08 13:19:09.000000000","message":"lgtm, thanks","commit_id":"e5faa53eada8b17795b2e68fdffb226aaceb0f92"}],"etcd3gw/client.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"921a195b30172648db971f2a7f1aaa18666b7d88","unresolved":true,"context_lines":[{"line_number":82,"context_line":"        \"\"\"Discover api version and set api_path"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        \"\"\""},{"line_number":85,"context_line":"        resp \u003d self._request(\u0027get\u0027, self.base_url + \u0027/version\u0027)"},{"line_number":86,"context_line":"        try:"},{"line_number":87,"context_line":"            version_str \u003d resp[\u0027etcdserver\u0027]"},{"line_number":88,"context_line":"        except KeyError:"}],"source_content_type":"text/x-python","patch_set":9,"id":"47e3771d_043e4f7b","line":85,"updated":"2023-11-29 10:44:49.000000000","message":"nit: Could we add a `get` helper method?","commit_id":"f82b835084beb68c96c53926612792e5da8ae029"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ce57aeb9c921eb91882cb745e4ac8e7a718774ae","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        \"\"\"Discover api version and set api_path"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        \"\"\""},{"line_number":85,"context_line":"        resp \u003d self._request(\u0027get\u0027, self.base_url + \u0027/version\u0027)"},{"line_number":86,"context_line":"        try:"},{"line_number":87,"context_line":"            version_str \u003d resp[\u0027etcdserver\u0027]"},{"line_number":88,"context_line":"        except KeyError:"}],"source_content_type":"text/x-python","patch_set":9,"id":"31de3bab_a57f152e","line":85,"in_reply_to":"17d18d73_cbaf7973","updated":"2023-11-29 11:08:54.000000000","message":"Ack, this is fair.","commit_id":"f82b835084beb68c96c53926612792e5da8ae029"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"6d8889e09009194d42cf101ac103173096bf01d5","unresolved":true,"context_lines":[{"line_number":82,"context_line":"        \"\"\"Discover api version and set api_path"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        \"\"\""},{"line_number":85,"context_line":"        resp \u003d self._request(\u0027get\u0027, self.base_url + \u0027/version\u0027)"},{"line_number":86,"context_line":"        try:"},{"line_number":87,"context_line":"            version_str \u003d resp[\u0027etcdserver\u0027]"},{"line_number":88,"context_line":"        except KeyError:"}],"source_content_type":"text/x-python","patch_set":9,"id":"17d18d73_cbaf7973","line":85,"in_reply_to":"47e3771d_043e4f7b","updated":"2023-11-29 11:05:29.000000000","message":"There already exists get method but it\u0027s designed for k-v access. So I decided not to create a new method which may be confusing.\n\nhttps://review.opendev.org/c/openstack/etcd3gw/+/901244/9/etcd3gw/client.py#242","commit_id":"f82b835084beb68c96c53926612792e5da8ae029"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"921a195b30172648db971f2a7f1aaa18666b7d88","unresolved":true,"context_lines":[{"line_number":90,"context_line":"                \u0027Malformed response from version API\u0027)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        try:"},{"line_number":93,"context_line":"            version \u003d pbr_version.SemanticVersion.from_pip_string(version_str)"},{"line_number":94,"context_line":"        except Exception:"},{"line_number":95,"context_line":"            raise exceptions.ApiVersionDiscoveryFailedError("},{"line_number":96,"context_line":"                \u0027Failed to parse etcd cluster version: %s\u0027 % version_str)"}],"source_content_type":"text/x-python","patch_set":9,"id":"66ba2e2c_08b9e0e1","line":93,"updated":"2023-11-29 10:44:49.000000000","message":"This method is specific to Python versioning (PEP-440) and I don\u0027t think we want to use this here for non-Python version. Would it be possible to use `oslo_utils.versionutils` _or_ (maybe better, since `versionutils` also encodes Python semantics) do our own version parsing? fwict, this is bog standard semver so we can simply split on periods (`.`) to get `MAJOR`, `MINOR`, and `PATCH` version identifiers.","commit_id":"f82b835084beb68c96c53926612792e5da8ae029"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"6d8889e09009194d42cf101ac103173096bf01d5","unresolved":false,"context_lines":[{"line_number":90,"context_line":"                \u0027Malformed response from version API\u0027)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        try:"},{"line_number":93,"context_line":"            version \u003d pbr_version.SemanticVersion.from_pip_string(version_str)"},{"line_number":94,"context_line":"        except Exception:"},{"line_number":95,"context_line":"            raise exceptions.ApiVersionDiscoveryFailedError("},{"line_number":96,"context_line":"                \u0027Failed to parse etcd cluster version: %s\u0027 % version_str)"}],"source_content_type":"text/x-python","patch_set":9,"id":"da78ccf9_a32bb707","line":93,"in_reply_to":"66ba2e2c_08b9e0e1","updated":"2023-11-29 11:05:29.000000000","message":"I agree and I decided to implement the simple logic here to avoid pulling oslo_utils as requirement.","commit_id":"f82b835084beb68c96c53926612792e5da8ae029"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"921a195b30172648db971f2a7f1aaa18666b7d88","unresolved":true,"context_lines":[{"line_number":95,"context_line":"            raise exceptions.ApiVersionDiscoveryFailedError("},{"line_number":96,"context_line":"                \u0027Failed to parse etcd cluster version: %s\u0027 % version_str)"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        if version \u003e\u003d pbr_version.SemanticVersion(3, 4):"},{"line_number":99,"context_line":"            self._api_path \u003d \u0027/v3/\u0027"},{"line_number":100,"context_line":"        elif version \u003e\u003d pbr_version.SemanticVersion(3, 3):"},{"line_number":101,"context_line":"            self._api_path \u003d \u0027/v3beta/\u0027"}],"source_content_type":"text/x-python","patch_set":9,"id":"eeac0afa_c4f613db","line":98,"updated":"2023-11-29 10:44:49.000000000","message":"Can you add a link to https://etcd.io/docs/v3.5/dev-guide/api_grpc_gateway/?","commit_id":"f82b835084beb68c96c53926612792e5da8ae029"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"6d8889e09009194d42cf101ac103173096bf01d5","unresolved":false,"context_lines":[{"line_number":95,"context_line":"            raise exceptions.ApiVersionDiscoveryFailedError("},{"line_number":96,"context_line":"                \u0027Failed to parse etcd cluster version: %s\u0027 % version_str)"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        if version \u003e\u003d pbr_version.SemanticVersion(3, 4):"},{"line_number":99,"context_line":"            self._api_path \u003d \u0027/v3/\u0027"},{"line_number":100,"context_line":"        elif version \u003e\u003d pbr_version.SemanticVersion(3, 3):"},{"line_number":101,"context_line":"            self._api_path \u003d \u0027/v3beta/\u0027"}],"source_content_type":"text/x-python","patch_set":9,"id":"88a2f871_6c9b67d2","line":98,"in_reply_to":"eeac0afa_c4f613db","updated":"2023-11-29 11:05:29.000000000","message":"Done","commit_id":"f82b835084beb68c96c53926612792e5da8ae029"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f767bfb6a14c200e210c70e8ddf628828466ed69","unresolved":true,"context_lines":[{"line_number":95,"context_line":"                \u0027Failed to parse etcd cluster version: %s\u0027 % version_str)"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        # NOTE(tkajinam): https://etcd.io/docs/v3.5/dev-guide/api_grpc_gateway/"},{"line_number":98,"context_line":"        #                 explains mapping between etcd version and available"},{"line_number":99,"context_line":"        #                 api versions"},{"line_number":100,"context_line":"        if version \u003e\u003d (3, 4):"},{"line_number":101,"context_line":"            self._api_path \u003d \u0027/v3/\u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"26541cf1_da036b8b","line":98,"range":{"start_line":98,"start_character":10,"end_line":98,"end_character":26},"updated":"2023-11-29 11:09:32.000000000","message":"nit: no need to keep the indent IMO","commit_id":"e5faa53eada8b17795b2e68fdffb226aaceb0f92"}],"etcd3gw/tests/test_client.py":[{"author":{"_account_id":25733,"name":"Jan Gutter","email":"github@jangutter.com","username":"jangutter"},"change_message_id":"6fa7a1243d4b31f80b2bfe22349ea0a37610bed7","unresolved":true,"context_lines":[{"line_number":78,"context_line":"\"error\": \"etcdserver: unable to reach quorum\""},{"line_number":79,"context_line":"}\u0027\u0027\u0027)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def test_client_api_path(self):"},{"line_number":82,"context_line":"        client \u003d Etcd3Client(host\u003d\"127.0.0.1\", api_path\u003d\u0027/v3/\u0027)"},{"line_number":83,"context_line":"        self.assertEqual(\"http://127.0.0.1:2379/v3/lease/grant\","},{"line_number":84,"context_line":"                         client.get_url(\"/lease/grant\"))"}],"source_content_type":"text/x-python","patch_set":7,"id":"cc617323_171f4e0e","side":"PARENT","line":84,"range":{"start_line":81,"start_character":0,"end_line":84,"end_character":56},"updated":"2023-11-20 15:18:59.000000000","message":"note to self, this moved up above test_client_ipv4","commit_id":"823914edcfd13f86838e551be2d356bf0d99569c"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"1c1820fc2e6feeb25dd174cae385330d6436dc8d","unresolved":false,"context_lines":[{"line_number":78,"context_line":"\"error\": \"etcdserver: unable to reach quorum\""},{"line_number":79,"context_line":"}\u0027\u0027\u0027)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def test_client_api_path(self):"},{"line_number":82,"context_line":"        client \u003d Etcd3Client(host\u003d\"127.0.0.1\", api_path\u003d\u0027/v3/\u0027)"},{"line_number":83,"context_line":"        self.assertEqual(\"http://127.0.0.1:2379/v3/lease/grant\","},{"line_number":84,"context_line":"                         client.get_url(\"/lease/grant\"))"}],"source_content_type":"text/x-python","patch_set":7,"id":"27560558_faeb8bcb","side":"PARENT","line":84,"range":{"start_line":81,"start_character":0,"end_line":84,"end_character":56},"in_reply_to":"cc617323_171f4e0e","updated":"2023-11-20 15:39:21.000000000","message":"This is tightly related to api path detection so I moved this up to put the related tests altogether.","commit_id":"823914edcfd13f86838e551be2d356bf0d99569c"}],"releasenotes/notes/api-version-discovery-2acf4ffb64f1faa7.yaml":[{"author":{"_account_id":25733,"name":"Jan Gutter","email":"github@jangutter.com","username":"jangutter"},"change_message_id":"6fa7a1243d4b31f80b2bfe22349ea0a37610bed7","unresolved":true,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The ``Etcd3Client`` class now automatically discovers available API version"},{"line_number":5,"context_line":"    and detemrines the api path. The detection is skipped if the api_path"},{"line_number":6,"context_line":"    argument is set when creating a class or the ETCD3GW_API_PATH environment"},{"line_number":7,"context_line":"    is set."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"bfc616e1_2363833b","line":5,"range":{"start_line":5,"start_character":31,"end_line":5,"end_character":32},"updated":"2023-11-20 15:18:59.000000000","message":"Maybe add:\n` on initialisation`\n\nAlso maybe add:\n`Clients using this library might need to recreate the connection object, or be restarted, if the etcd service is upgraded while the client is running.","commit_id":"199819022c984b2bdff7cb1c684aa78c55bb86cc"},{"author":{"_account_id":25733,"name":"Jan Gutter","email":"github@jangutter.com","username":"jangutter"},"change_message_id":"6fa7a1243d4b31f80b2bfe22349ea0a37610bed7","unresolved":true,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The ``Etcd3Client`` class now automatically discovers available API version"},{"line_number":5,"context_line":"    and detemrines the api path. The detection is skipped if the api_path"},{"line_number":6,"context_line":"    argument is set when creating a class or the ETCD3GW_API_PATH environment"},{"line_number":7,"context_line":"    is set."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"32c4e025_f3b88638","line":5,"range":{"start_line":5,"start_character":8,"end_line":5,"end_character":18},"updated":"2023-11-20 15:18:59.000000000","message":"determines","commit_id":"199819022c984b2bdff7cb1c684aa78c55bb86cc"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"a585d24807067ad23a2c985520a9c8bb94c4d82a","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The ``Etcd3Client`` class now automatically discovers available API version"},{"line_number":5,"context_line":"    and detemrines the api path. The detection is skipped if the api_path"},{"line_number":6,"context_line":"    argument is set when creating a class or the ETCD3GW_API_PATH environment"},{"line_number":7,"context_line":"    is set."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"c6021e01_4e7a2010","line":5,"range":{"start_line":5,"start_character":8,"end_line":5,"end_character":18},"in_reply_to":"32c4e025_f3b88638","updated":"2023-11-20 15:37:37.000000000","message":"Done","commit_id":"199819022c984b2bdff7cb1c684aa78c55bb86cc"},{"author":{"_account_id":25733,"name":"Jan Gutter","email":"github@jangutter.com","username":"jangutter"},"change_message_id":"3a890ca486f6f4a1a974e28e8641b2403ae7680a","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The ``Etcd3Client`` class now automatically discovers available API version"},{"line_number":5,"context_line":"    and detemrines the api path. The detection is skipped if the api_path"},{"line_number":6,"context_line":"    argument is set when creating a class or the ETCD3GW_API_PATH environment"},{"line_number":7,"context_line":"    is set."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"1e2cb9b1_a7eeb942","line":5,"range":{"start_line":5,"start_character":31,"end_line":5,"end_character":32},"in_reply_to":"7dafd0e3_2cb7c57e","updated":"2023-11-20 16:04:45.000000000","message":"Yeah, you\u0027re absolutely right, the version detection is \"late but firm binding\".","commit_id":"199819022c984b2bdff7cb1c684aa78c55bb86cc"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"a585d24807067ad23a2c985520a9c8bb94c4d82a","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The ``Etcd3Client`` class now automatically discovers available API version"},{"line_number":5,"context_line":"    and detemrines the api path. The detection is skipped if the api_path"},{"line_number":6,"context_line":"    argument is set when creating a class or the ETCD3GW_API_PATH environment"},{"line_number":7,"context_line":"    is set."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"7dafd0e3_2cb7c57e","line":5,"range":{"start_line":5,"start_character":31,"end_line":5,"end_character":32},"in_reply_to":"bfc616e1_2363833b","updated":"2023-11-20 15:37:37.000000000","message":"These make sense.\nNote that the detection happens not at initialization but before it sends its first request, as is described in the current version.","commit_id":"199819022c984b2bdff7cb1c684aa78c55bb86cc"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"77372787ba5004831a5aacceb5d03a94ab38b7f3","unresolved":true,"context_lines":[{"line_number":7,"context_line":"    requests. The client instance needs to be recreated, or the service using"},{"line_number":8,"context_line":"    the instance needs to be restarted, after its backend etcd server is"},{"line_number":9,"context_line":"    upgraded, so that the new api path is detected. The detection is skipped"},{"line_number":10,"context_line":"    if the api_path argument is set when creating a class or"},{"line_number":11,"context_line":"    the ETCD3GW_API_PATH environment is set."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"1fe9dbe6_e577863f","line":10,"range":{"start_line":10,"start_character":11,"end_line":10,"end_character":19},"updated":"2023-11-22 13:22:23.000000000","message":"Please use \"\\`\" to get formatted name: ``api_path``","commit_id":"3fa961e759455ff4bee65d4a80a6eea554dde53a"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"416f841dba32d06f792c3267031a69bb91db14ec","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    requests. The client instance needs to be recreated, or the service using"},{"line_number":8,"context_line":"    the instance needs to be restarted, after its backend etcd server is"},{"line_number":9,"context_line":"    upgraded, so that the new api path is detected. The detection is skipped"},{"line_number":10,"context_line":"    if the api_path argument is set when creating a class or"},{"line_number":11,"context_line":"    the ETCD3GW_API_PATH environment is set."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"0f390b9d_a47dc860","line":10,"range":{"start_line":10,"start_character":11,"end_line":10,"end_character":19},"in_reply_to":"1fe9dbe6_e577863f","updated":"2023-11-22 16:03:36.000000000","message":"Done","commit_id":"3fa961e759455ff4bee65d4a80a6eea554dde53a"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"77372787ba5004831a5aacceb5d03a94ab38b7f3","unresolved":true,"context_lines":[{"line_number":8,"context_line":"    the instance needs to be restarted, after its backend etcd server is"},{"line_number":9,"context_line":"    upgraded, so that the new api path is detected. The detection is skipped"},{"line_number":10,"context_line":"    if the api_path argument is set when creating a class or"},{"line_number":11,"context_line":"    the ETCD3GW_API_PATH environment is set."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"5f39665b_4c310807","line":11,"range":{"start_line":11,"start_character":8,"end_line":11,"end_character":24},"updated":"2023-11-22 13:22:23.000000000","message":"Please use \"\\`\" to get formatted name: ``ETCD3GW_API_PATH``","commit_id":"3fa961e759455ff4bee65d4a80a6eea554dde53a"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"416f841dba32d06f792c3267031a69bb91db14ec","unresolved":false,"context_lines":[{"line_number":8,"context_line":"    the instance needs to be restarted, after its backend etcd server is"},{"line_number":9,"context_line":"    upgraded, so that the new api path is detected. The detection is skipped"},{"line_number":10,"context_line":"    if the api_path argument is set when creating a class or"},{"line_number":11,"context_line":"    the ETCD3GW_API_PATH environment is set."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"e5a63027_e70e997d","line":11,"range":{"start_line":11,"start_character":8,"end_line":11,"end_character":24},"in_reply_to":"5f39665b_4c310807","updated":"2023-11-22 16:03:36.000000000","message":"Done","commit_id":"3fa961e759455ff4bee65d4a80a6eea554dde53a"}],"test-requirements.txt":[{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"77372787ba5004831a5aacceb5d03a94ab38b7f3","unresolved":true,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"# TODO(tkajinam): Remove this once the following change is available"},{"line_number":19,"context_line":"# https://github.com/testing-cabal/testrepository/pull/48"},{"line_number":20,"context_line":"extras\u003e\u003d1.0.0 # MIT"}],"source_content_type":"text/plain","patch_set":8,"id":"9366cbbf_e2505386","line":20,"range":{"start_line":20,"start_character":0,"end_line":20,"end_character":19},"updated":"2023-11-22 13:22:23.000000000","message":"The github patch above is now merged, and I think you can remove these lines now","commit_id":"3fa961e759455ff4bee65d4a80a6eea554dde53a"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"416f841dba32d06f792c3267031a69bb91db14ec","unresolved":true,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"# TODO(tkajinam): Remove this once the following change is available"},{"line_number":19,"context_line":"# https://github.com/testing-cabal/testrepository/pull/48"},{"line_number":20,"context_line":"extras\u003e\u003d1.0.0 # MIT"}],"source_content_type":"text/plain","patch_set":8,"id":"c95bfd0f_cdab10c6","line":20,"range":{"start_line":20,"start_character":0,"end_line":20,"end_character":19},"in_reply_to":"9366cbbf_e2505386","updated":"2023-11-22 16:03:36.000000000","message":"No we still need a new release of testrepository. I\u0027ve request it in [1].\n\n[1] https://github.com/testing-cabal/testrepository/pull/49","commit_id":"3fa961e759455ff4bee65d4a80a6eea554dde53a"}]}
