)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":35548,"name":"Antonia Gaete","email":"antoniagaete@osuosl.org","username":"antoniagaete"},"change_message_id":"5fb91a7d2f913359cb0722118823b45d565c436e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"1a7b5d7c_56b67bdf","updated":"2024-10-04 16:48:18.000000000","message":"I was unable to use `keystone/api/parameter_types`:\n\n- The `url` attribute does not exist\n- The `description` attribute does not exist\n- The `boolean` attribute now accepts a boolean and string, and thus causes a test to fail (see comment under `keystone/tests/unit/test_validation`\n\nShould I add these attributes and change the test? Or keep it as is? I\u0027m assuming changing the test is out of our scope, not sure about adding the attributes to `keystone/api/parameter_types`.","commit_id":"8ee728f648304379d3f853facc5cc5be527288cf"}],"keystone/api/os_federation.py":[{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"c4344a0e84f2f7327414653174e465a095884184","unresolved":true,"context_lines":[{"line_number":369,"context_line":"    )"},{"line_number":370,"context_line":"    @validation.response_body_schema("},{"line_number":371,"context_line":"        schema.service_provider_index_response_body"},{"line_number":372,"context_line":"    )"},{"line_number":373,"context_line":"    def get(self, sp_id\u003dNone):"},{"line_number":374,"context_line":"        if sp_id is not None:"},{"line_number":375,"context_line":"            return self._get_service_provider(sp_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"aeb70ac8_a376e1cf","line":372,"updated":"2024-10-09 14:45:15.000000000","message":"please split the controller. It will not work properly this way","commit_id":"8ee728f648304379d3f853facc5cc5be527288cf"},{"author":{"_account_id":35548,"name":"Antonia Gaete","email":"antoniagaete@osuosl.org","username":"antoniagaete"},"change_message_id":"db316196c0b94d6e202543875a72d2fb61774661","unresolved":false,"context_lines":[{"line_number":369,"context_line":"    )"},{"line_number":370,"context_line":"    @validation.response_body_schema("},{"line_number":371,"context_line":"        schema.service_provider_index_response_body"},{"line_number":372,"context_line":"    )"},{"line_number":373,"context_line":"    def get(self, sp_id\u003dNone):"},{"line_number":374,"context_line":"        if sp_id is not None:"},{"line_number":375,"context_line":"            return self._get_service_provider(sp_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5ba0d4d7_306893a6","line":372,"in_reply_to":"aeb70ac8_a376e1cf","updated":"2024-10-23 19:06:46.000000000","message":"Done","commit_id":"8ee728f648304379d3f853facc5cc5be527288cf"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"1ff7906ea68acb73997cad44955fb71ed1a02ce5","unresolved":true,"context_lines":[{"line_number":613,"context_line":"        ),"},{"line_number":614,"context_line":"        ks_flask.construct_resource_map("},{"line_number":615,"context_line":"            resource\u003dServiceProviderResource,"},{"line_number":616,"context_line":"            url\u003d\u0027/service_providers/\u003cstring:service_provider_id\u003e\u0027,"},{"line_number":617,"context_line":"            resource_kwargs\u003d{},"},{"line_number":618,"context_line":"            rel\u003d\"service_provider\","},{"line_number":619,"context_line":"            path_vars\u003d{\u0027service_provider_id\u0027: SP_ID_PARAMETER_RELATION},"}],"source_content_type":"text/x-python","patch_set":5,"id":"a004adbe_90f588a2","line":616,"updated":"2024-10-11 15:37:06.000000000","message":"I think you should be using `\u003cstring:sp_id\u003e` here and under path_vars also use \u0027sp_id:...\u0027 but maybe we should rather rename the param in jsonhome tests since service_provider_id is more meaningful than sp_id","commit_id":"65345f3c0a25b48e764eb56ec1d69e3af619eb11"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"4a2d8aac97f25d1372cbd4086ee16c93299ea2c3","unresolved":true,"context_lines":[{"line_number":613,"context_line":"        ),"},{"line_number":614,"context_line":"        ks_flask.construct_resource_map("},{"line_number":615,"context_line":"            resource\u003dServiceProviderResource,"},{"line_number":616,"context_line":"            url\u003d\u0027/service_providers/\u003cstring:service_provider_id\u003e\u0027,"},{"line_number":617,"context_line":"            resource_kwargs\u003d{},"},{"line_number":618,"context_line":"            rel\u003d\"service_provider\","},{"line_number":619,"context_line":"            path_vars\u003d{\u0027service_provider_id\u0027: SP_ID_PARAMETER_RELATION},"}],"source_content_type":"text/x-python","patch_set":5,"id":"508ca9d6_d2533ad7","line":616,"in_reply_to":"3f525f42_f7740c82","updated":"2024-10-21 15:38:54.000000000","message":"use service_provider_id please","commit_id":"65345f3c0a25b48e764eb56ec1d69e3af619eb11"},{"author":{"_account_id":35548,"name":"Antonia Gaete","email":"antoniagaete@osuosl.org","username":"antoniagaete"},"change_message_id":"db316196c0b94d6e202543875a72d2fb61774661","unresolved":false,"context_lines":[{"line_number":613,"context_line":"        ),"},{"line_number":614,"context_line":"        ks_flask.construct_resource_map("},{"line_number":615,"context_line":"            resource\u003dServiceProviderResource,"},{"line_number":616,"context_line":"            url\u003d\u0027/service_providers/\u003cstring:service_provider_id\u003e\u0027,"},{"line_number":617,"context_line":"            resource_kwargs\u003d{},"},{"line_number":618,"context_line":"            rel\u003d\"service_provider\","},{"line_number":619,"context_line":"            path_vars\u003d{\u0027service_provider_id\u0027: SP_ID_PARAMETER_RELATION},"}],"source_content_type":"text/x-python","patch_set":5,"id":"50fd02d5_9ef3aff1","line":616,"in_reply_to":"508ca9d6_d2533ad7","updated":"2024-10-23 19:06:46.000000000","message":"Acknowledged","commit_id":"65345f3c0a25b48e764eb56ec1d69e3af619eb11"},{"author":{"_account_id":35548,"name":"Antonia Gaete","email":"antoniagaete@osuosl.org","username":"antoniagaete"},"change_message_id":"551b255a9421945d29cd764ec6ae5cb4c426b59e","unresolved":true,"context_lines":[{"line_number":613,"context_line":"        ),"},{"line_number":614,"context_line":"        ks_flask.construct_resource_map("},{"line_number":615,"context_line":"            resource\u003dServiceProviderResource,"},{"line_number":616,"context_line":"            url\u003d\u0027/service_providers/\u003cstring:service_provider_id\u003e\u0027,"},{"line_number":617,"context_line":"            resource_kwargs\u003d{},"},{"line_number":618,"context_line":"            rel\u003d\"service_provider\","},{"line_number":619,"context_line":"            path_vars\u003d{\u0027service_provider_id\u0027: SP_ID_PARAMETER_RELATION},"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f525f42_f7740c82","line":616,"in_reply_to":"a004adbe_90f588a2","updated":"2024-10-11 21:37:35.000000000","message":"Yes that fixed it, thank you! I can rename the param, just let me know what you decide","commit_id":"65345f3c0a25b48e764eb56ec1d69e3af619eb11"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"cb6209de2e9a6bee73120538ad0c0a64538262e3","unresolved":true,"context_lines":[{"line_number":404,"context_line":"    )"},{"line_number":405,"context_line":"    api_prefix \u003d \u0027/OS-FEDERATION\u0027"},{"line_number":406,"context_line":""},{"line_number":407,"context_line":"    @validation.request_query_schema("},{"line_number":408,"context_line":"        schema.service_provider_index_request_query"},{"line_number":409,"context_line":"    )"},{"line_number":410,"context_line":"    @validation.response_body_schema("}],"source_content_type":"text/x-python","patch_set":10,"id":"7de18a6e_59fe22e7","line":407,"updated":"2024-11-01 15:19:17.000000000","message":"since this is a GET and not GET or LIST you should use proper schemas and make service_provider_id function argument non-optional","commit_id":"4c69a93e54a2903f358d66d463113290ee3135ad"},{"author":{"_account_id":35548,"name":"Antonia Gaete","email":"antoniagaete@osuosl.org","username":"antoniagaete"},"change_message_id":"5be58fc103567c1e78f9170622003aaa2479e237","unresolved":false,"context_lines":[{"line_number":404,"context_line":"    )"},{"line_number":405,"context_line":"    api_prefix \u003d \u0027/OS-FEDERATION\u0027"},{"line_number":406,"context_line":""},{"line_number":407,"context_line":"    @validation.request_query_schema("},{"line_number":408,"context_line":"        schema.service_provider_index_request_query"},{"line_number":409,"context_line":"    )"},{"line_number":410,"context_line":"    @validation.response_body_schema("}],"source_content_type":"text/x-python","patch_set":10,"id":"54aefb97_c8e868af","line":407,"in_reply_to":"7de18a6e_59fe22e7","updated":"2024-11-01 19:25:56.000000000","message":"Done","commit_id":"4c69a93e54a2903f358d66d463113290ee3135ad"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"cdae4ad5266038bf3534237da76a798ae06952f2","unresolved":true,"context_lines":[{"line_number":405,"context_line":"    api_prefix \u003d \u0027/OS-FEDERATION\u0027"},{"line_number":406,"context_line":""},{"line_number":407,"context_line":"    @validation.request_query_schema("},{"line_number":408,"context_line":"        schema.service_provider_index_request_query"},{"line_number":409,"context_line":"    )"},{"line_number":410,"context_line":"    @validation.response_body_schema(schema.service_provider_response_body)"},{"line_number":411,"context_line":"    def get(self, service_provider_id):"}],"source_content_type":"text/x-python","patch_set":11,"id":"e4969fa4_b0ded7dc","line":408,"updated":"2024-11-15 13:54:18.000000000","message":"still index query params for show operation","commit_id":"11c8825b739871c05fbc13f9e67b5f0570a174e3"},{"author":{"_account_id":35548,"name":"Antonia Gaete","email":"antoniagaete@osuosl.org","username":"antoniagaete"},"change_message_id":"8cf72cd44492d08513281aae2db59d3cc6e014fb","unresolved":false,"context_lines":[{"line_number":405,"context_line":"    api_prefix \u003d \u0027/OS-FEDERATION\u0027"},{"line_number":406,"context_line":""},{"line_number":407,"context_line":"    @validation.request_query_schema("},{"line_number":408,"context_line":"        schema.service_provider_index_request_query"},{"line_number":409,"context_line":"    )"},{"line_number":410,"context_line":"    @validation.response_body_schema(schema.service_provider_response_body)"},{"line_number":411,"context_line":"    def get(self, service_provider_id):"}],"source_content_type":"text/x-python","patch_set":11,"id":"21741a2a_563fcf10","line":408,"in_reply_to":"e4969fa4_b0ded7dc","updated":"2024-11-26 18:34:10.000000000","message":"Done","commit_id":"11c8825b739871c05fbc13f9e67b5f0570a174e3"}],"keystone/api/validation/parameter_types.py":[{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"511305d52f2e0bbaad9b6d95e15e6a48ab2d3e99","unresolved":true,"context_lines":[{"line_number":87,"context_line":"    \"type\": \"string\","},{"line_number":88,"context_line":"    \"minLength\": 0,"},{"line_number":89,"context_line":"    \"maxLength\": 225,"},{"line_number":90,"context_line":"    \"pattern\": \"^[a-zA-Z0-9+.-]+:.+\","},{"line_number":91,"context_line":"}"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"id_string: dict[str, Any] \u003d {"}],"source_content_type":"text/x-python","patch_set":15,"id":"ba3c4b0d_e891fce2","line":90,"updated":"2025-01-10 14:42:25.000000000","message":"if it is necessary maybe we can improve the pattern, but isn\u0027t `type: string format: uri` sufficient? Or where is the pattern coming from?","commit_id":"32ddd8ccffabcc1758faf50b59340e827cfa0c0d"}],"keystone/federation/schema.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"26ad85aa3739646c929bd79151d9e8980c14aa77","unresolved":true,"context_lines":[{"line_number":46,"context_line":"_service_provider_properties \u003d {"},{"line_number":47,"context_line":"    # NOTE(rodrigods): The database accepts URLs with 256 as max length,"},{"line_number":48,"context_line":"    # but parameter_types.url uses 225 as max length."},{"line_number":49,"context_line":"    \u0027auth_url\u0027: parameter_types.url,"},{"line_number":50,"context_line":"    \u0027sp_url\u0027: parameter_types.url,"},{"line_number":51,"context_line":"    \u0027description\u0027: validation.nullable(parameter_types.description),"},{"line_number":52,"context_line":"    \u0027enabled\u0027: parameter_types.boolean,"}],"source_content_type":"text/x-python","patch_set":3,"id":"676c71a7_640acd3d","side":"PARENT","line":49,"updated":"2024-10-04 15:29:20.000000000","message":"As discussed in the meeting today, you don\u0027t want to get rid of these. Rather, we should copy (or move, if there are no other references) these variables from `keystone/common/validation/parameter_types.py` to `keystone/api/validation/parameter_types.py` and use them instead.","commit_id":"b00cb4197d603da948f8f43f9c5f0e55182d2c96"},{"author":{"_account_id":35548,"name":"Antonia Gaete","email":"antoniagaete@osuosl.org","username":"antoniagaete"},"change_message_id":"d737f84b0274f27f6adb7879a88428110ecab7bb","unresolved":true,"context_lines":[{"line_number":46,"context_line":"_service_provider_properties \u003d {"},{"line_number":47,"context_line":"    # NOTE(rodrigods): The database accepts URLs with 256 as max length,"},{"line_number":48,"context_line":"    # but parameter_types.url uses 225 as max length."},{"line_number":49,"context_line":"    \u0027auth_url\u0027: parameter_types.url,"},{"line_number":50,"context_line":"    \u0027sp_url\u0027: parameter_types.url,"},{"line_number":51,"context_line":"    \u0027description\u0027: validation.nullable(parameter_types.description),"},{"line_number":52,"context_line":"    \u0027enabled\u0027: parameter_types.boolean,"}],"source_content_type":"text/x-python","patch_set":3,"id":"a8fd3644_7f036f6a","side":"PARENT","line":49,"in_reply_to":"676c71a7_640acd3d","updated":"2024-10-04 16:30:48.000000000","message":"Will do. I noticed the `validation.nullable()` wrapper comes from `keystone/common/validation`. Looks like there is a `keystone/api/validation` module, should I use that instead too?","commit_id":"b00cb4197d603da948f8f43f9c5f0e55182d2c96"},{"author":{"_account_id":35548,"name":"Antonia Gaete","email":"antoniagaete@osuosl.org","username":"antoniagaete"},"change_message_id":"db316196c0b94d6e202543875a72d2fb61774661","unresolved":false,"context_lines":[{"line_number":46,"context_line":"_service_provider_properties \u003d {"},{"line_number":47,"context_line":"    # NOTE(rodrigods): The database accepts URLs with 256 as max length,"},{"line_number":48,"context_line":"    # but parameter_types.url uses 225 as max length."},{"line_number":49,"context_line":"    \u0027auth_url\u0027: parameter_types.url,"},{"line_number":50,"context_line":"    \u0027sp_url\u0027: parameter_types.url,"},{"line_number":51,"context_line":"    \u0027description\u0027: validation.nullable(parameter_types.description),"},{"line_number":52,"context_line":"    \u0027enabled\u0027: parameter_types.boolean,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5c14bdf0_2d1b1a3b","side":"PARENT","line":49,"in_reply_to":"a8fd3644_7f036f6a","updated":"2024-10-23 19:06:46.000000000","message":"Done","commit_id":"b00cb4197d603da948f8f43f9c5f0e55182d2c96"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"26ad85aa3739646c929bd79151d9e8980c14aa77","unresolved":true,"context_lines":[{"line_number":63,"context_line":"        \"maxLength\": 225,"},{"line_number":64,"context_line":"        \"pattern\": \"^[a-zA-Z0-9+.-]+:.+\","},{"line_number":65,"context_line":"    },"},{"line_number":66,"context_line":"    \"description\": {"},{"line_number":67,"context_line":"        \"type\": \"string\","},{"line_number":68,"context_line":"        \"description\": \"The description of the service provider\","},{"line_number":69,"context_line":"    },"}],"source_content_type":"text/x-python","patch_set":3,"id":"ee898f2c_2780b337","line":66,"updated":"2024-10-04 15:29:20.000000000","message":"The failure in the tests is as a result of removing the `nullable` wrapper. If you revert this, the tests should look much happier.","commit_id":"515ec1b4625a452d15d4b49133b923ebb8094d42"},{"author":{"_account_id":35548,"name":"Antonia Gaete","email":"antoniagaete@osuosl.org","username":"antoniagaete"},"change_message_id":"d737f84b0274f27f6adb7879a88428110ecab7bb","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        \"maxLength\": 225,"},{"line_number":64,"context_line":"        \"pattern\": \"^[a-zA-Z0-9+.-]+:.+\","},{"line_number":65,"context_line":"    },"},{"line_number":66,"context_line":"    \"description\": {"},{"line_number":67,"context_line":"        \"type\": \"string\","},{"line_number":68,"context_line":"        \"description\": \"The description of the service provider\","},{"line_number":69,"context_line":"    },"}],"source_content_type":"text/x-python","patch_set":3,"id":"e5ef2128_8f3002ca","line":66,"in_reply_to":"ee898f2c_2780b337","updated":"2024-10-04 16:30:48.000000000","message":"Acknowledged","commit_id":"515ec1b4625a452d15d4b49133b923ebb8094d42"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"cdae4ad5266038bf3534237da76a798ae06952f2","unresolved":true,"context_lines":[{"line_number":123,"context_line":"            \"properties\": _service_provider_properties,"},{"line_number":124,"context_line":"            \"required\": [\"auth_url\", \"sp_url\"],"},{"line_number":125,"context_line":"            \"additionalProperties\": False,"},{"line_number":126,"context_line":"        }"},{"line_number":127,"context_line":"    },"},{"line_number":128,"context_line":"    \"additionalProperties\": False,"},{"line_number":129,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":11,"id":"e1e8336d_5383fc1f","line":126,"updated":"2024-11-15 13:54:18.000000000","message":"please mark service_provider as required (root key)","commit_id":"11c8825b739871c05fbc13f9e67b5f0570a174e3"},{"author":{"_account_id":35548,"name":"Antonia Gaete","email":"antoniagaete@osuosl.org","username":"antoniagaete"},"change_message_id":"8cf72cd44492d08513281aae2db59d3cc6e014fb","unresolved":false,"context_lines":[{"line_number":123,"context_line":"            \"properties\": _service_provider_properties,"},{"line_number":124,"context_line":"            \"required\": [\"auth_url\", \"sp_url\"],"},{"line_number":125,"context_line":"            \"additionalProperties\": False,"},{"line_number":126,"context_line":"        }"},{"line_number":127,"context_line":"    },"},{"line_number":128,"context_line":"    \"additionalProperties\": False,"},{"line_number":129,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":11,"id":"f9819fca_cc214b63","line":126,"in_reply_to":"e1e8336d_5383fc1f","updated":"2024-11-26 18:34:10.000000000","message":"Done","commit_id":"11c8825b739871c05fbc13f9e67b5f0570a174e3"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"cdae4ad5266038bf3534237da76a798ae06952f2","unresolved":true,"context_lines":[{"line_number":140,"context_line":"            \"minProperties\": 1,"},{"line_number":141,"context_line":"        },"},{"line_number":142,"context_line":"    },"},{"line_number":143,"context_line":"    \"required\": [\"service_provider\"],"},{"line_number":144,"context_line":"}"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"_identity_provider_properties_create \u003d {"}],"source_content_type":"text/x-python","patch_set":11,"id":"bd235ecf_e74b570d","line":143,"updated":"2024-11-15 13:54:18.000000000","message":"additionalProps - false","commit_id":"11c8825b739871c05fbc13f9e67b5f0570a174e3"},{"author":{"_account_id":35548,"name":"Antonia Gaete","email":"antoniagaete@osuosl.org","username":"antoniagaete"},"change_message_id":"8cf72cd44492d08513281aae2db59d3cc6e014fb","unresolved":false,"context_lines":[{"line_number":140,"context_line":"            \"minProperties\": 1,"},{"line_number":141,"context_line":"        },"},{"line_number":142,"context_line":"    },"},{"line_number":143,"context_line":"    \"required\": [\"service_provider\"],"},{"line_number":144,"context_line":"}"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"_identity_provider_properties_create \u003d {"}],"source_content_type":"text/x-python","patch_set":11,"id":"b11aa358_0712bbe8","line":143,"in_reply_to":"bd235ecf_e74b570d","updated":"2024-11-26 18:34:10.000000000","message":"Done","commit_id":"11c8825b739871c05fbc13f9e67b5f0570a174e3"}],"keystone/tests/unit/test_validation.py":[{"author":{"_account_id":35548,"name":"Antonia Gaete","email":"antoniagaete@osuosl.org","username":"antoniagaete"},"change_message_id":"5fb91a7d2f913359cb0722118823b45d565c436e","unresolved":true,"context_lines":[{"line_number":2179,"context_line":"                    \u0027enabled\u0027: invalid_enabled,"},{"line_number":2180,"context_line":"                }"},{"line_number":2181,"context_line":"            }"},{"line_number":2182,"context_line":"            self.assertRaises("},{"line_number":2183,"context_line":"                exception.SchemaValidationError,"},{"line_number":2184,"context_line":"                self.create_sp_validator.validate,"},{"line_number":2185,"context_line":"                request_to_validate,"}],"source_content_type":"text/x-python","patch_set":4,"id":"e9e2d42a_d51c75cf","line":2182,"updated":"2024-10-04 16:48:18.000000000","message":"This test will fail with `keystone/api/parameter_types.boolean` due to the invalid enabled formats \"True\" and \"False\" being valid. (The boolean declared in `keystone/api` is of type boolean *and* string).","commit_id":"8ee728f648304379d3f853facc5cc5be527288cf"},{"author":{"_account_id":35548,"name":"Antonia Gaete","email":"antoniagaete@osuosl.org","username":"antoniagaete"},"change_message_id":"db316196c0b94d6e202543875a72d2fb61774661","unresolved":false,"context_lines":[{"line_number":2179,"context_line":"                    \u0027enabled\u0027: invalid_enabled,"},{"line_number":2180,"context_line":"                }"},{"line_number":2181,"context_line":"            }"},{"line_number":2182,"context_line":"            self.assertRaises("},{"line_number":2183,"context_line":"                exception.SchemaValidationError,"},{"line_number":2184,"context_line":"                self.create_sp_validator.validate,"},{"line_number":2185,"context_line":"                request_to_validate,"}],"source_content_type":"text/x-python","patch_set":4,"id":"0ba9860f_bad56b42","line":2182,"in_reply_to":"e9e2d42a_d51c75cf","updated":"2024-10-23 19:06:46.000000000","message":"Done","commit_id":"8ee728f648304379d3f853facc5cc5be527288cf"}]}
