Traceback (most recent call last):
File "<string>", line 4, in <module>
gh.rest.search.repos(q="githubkit").parsed_data
File "/Users/trag1c/.cache/uv/archive-v0/SCQsbxhmcwG8trSxWyXaQ/lib/python3.14/site-packages/githubkit/response.py", line 97, in parsed_data
return type_validate_json(self._data_model, self.content)
File "/Users/trag1c/.cache/uv/archive-v0/SCQsbxhmcwG8trSxWyXaQ/lib/python3.14/site-packages/githubkit/compat.py", line 57, in type_validate_json
return TypeAdapter(type_).validate_json(data)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
File "/Users/trag1c/.cache/uv/archive-v0/SCQsbxhmcwG8trSxWyXaQ/lib/python3.14/site-packages/pydantic/type_adapter.py", line 492, in validate_json
return self.validator.validate_json(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
data,
^^^^^
...<5 lines>...
by_name=by_name,
^^^^^^^^^^^^^^^^
)
^
pydantic_core._pydantic_core.ValidationError: 21 validation errors for SearchRepositoriesGetResponse200
items.0.has_downloads
Field required [type=missing, input_value={'id': 512138996, 'node_i...l': True}, 'score': 1.0}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.12/v/missing
items.1.has_downloads
Field required [type=missing, input_value={'id': 3994912, 'node_id'...l': True}, 'score': 1.0}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.12/v/missing
items.2.has_downloads
Field required [type=missing, input_value={'id': 191404130, 'node_i...l': True}, 'score': 1.0}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.12/v/missing
items.3.has_downloads
Field required [type=missing, input_value={'id': 99353195, 'node_id...l': True}, 'score': 1.0}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.12/v/missing
items.4.has_downloads
Field required [type=missing, input_value={'id': 1035356812, 'node_...l': True}, 'score': 1.0}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.12/v/missing
items.5.has_downloads
Field required [type=missing, input_value={'id': 1196646305, 'node_...l': True}, 'score': 1.0}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.12/v/missing
items.6.has_downloads
Field required [type=missing, input_value={'id': 377402856, 'node_i...l': True}, 'score': 1.0}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.12/v/missing
items.7.has_downloads
Field required [type=missing, input_value={'id': 1037660554, 'node_...l': True}, 'score': 1.0}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.12/v/missing
items.8.has_downloads
Field required [type=missing, input_value={'id': 618454354, 'node_i...l': True}, 'score': 1.0}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.12/v/missing
items.9.has_downloads
Field required [type=missing, input_value={'id': 333656919, 'node_i...l': True}, 'score': 1.0}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.12/v/missing
items.10.has_downloads
Field required [type=missing, input_value={'id': 666976811, 'node_i...l': True}, 'score': 1.0}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.12/v/missing
items.11.has_downloads
Field required [type=missing, input_value={'id': 648689981, 'node_i...l': True}, 'score': 1.0}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.12/v/missing
items.12.has_downloads
Field required [type=missing, input_value={'id': 641948836, 'node_i...l': True}, 'score': 1.0}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.12/v/missing
items.13.has_downloads
Field required [type=missing, input_value={'id': 4013218, 'node_id'...l': True}, 'score': 1.0}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.12/v/missing
items.14.has_downloads
Field required [type=missing, input_value={'id': 111377720, 'node_i...l': True}, 'score': 1.0}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.12/v/missing
items.15.has_downloads
Field required [type=missing, input_value={'id': 61766972, 'node_id...l': True}, 'score': 1.0}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.12/v/missing
items.16.has_downloads
Field required [type=missing, input_value={'id': 103235763, 'node_i...l': True}, 'score': 1.0}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.12/v/missing
items.17.has_downloads
Field required [type=missing, input_value={'id': 836311737, 'node_i...l': True}, 'score': 1.0}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.12/v/missing
items.18.has_downloads
Field required [type=missing, input_value={'id': 110205169, 'node_i...l': True}, 'score': 1.0}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.12/v/missing
items.19.has_downloads
Field required [type=missing, input_value={'id': 64573114, 'node_id...l': True}, 'score': 1.0}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.12/v/missing
items.20.has_downloads
Field required [type=missing, input_value={'id': 872365266, 'node_i...l': True}, 'score': 1.0}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.12/v/missing
Repro for 0.15.3:
Full traceback
I have no idea how it ends up in this state since the field is there when using
gh api: