mirror of
https://github.com/pyenv/pyenv.git
synced 2026-09-15 01:56:16 -04:00
fix(release): validate sponsors response records
This commit is contained in:
parent
deedb29d34
commit
390daa8605
|
|
@ -176,22 +176,41 @@ def github_sponsors(since: datetime.date) -> typing.List[typing.Dict]:
|
|||
raise SponsorDataError(
|
||||
"GitHub Sponsors query returned an unexpected response shape."
|
||||
) from exc
|
||||
for node in sponsorships["nodes"]:
|
||||
created = datetime.datetime.fromisoformat(
|
||||
node["createdAt"].replace("Z", "+00:00")
|
||||
)
|
||||
try:
|
||||
nodes = sponsorships["nodes"]
|
||||
page_info = sponsorships["pageInfo"]
|
||||
except (TypeError, KeyError) as exc:
|
||||
raise SponsorDataError(
|
||||
"GitHub Sponsors query returned incomplete pagination data."
|
||||
) from exc
|
||||
|
||||
for node in nodes:
|
||||
try:
|
||||
created = datetime.datetime.fromisoformat(
|
||||
node["createdAt"].replace("Z", "+00:00")
|
||||
)
|
||||
entity = node["sponsorEntity"]
|
||||
login = entity["login"]
|
||||
except (AttributeError, KeyError, TypeError, ValueError) as exc:
|
||||
raise SponsorDataError(
|
||||
"GitHub Sponsors query returned an unexpected sponsor record."
|
||||
) from exc
|
||||
if created < since_dt:
|
||||
return sponsors
|
||||
entity = node["sponsorEntity"]
|
||||
sponsors.append({
|
||||
"login": entity["login"],
|
||||
"name": entity.get("name") or entity["login"],
|
||||
"login": login,
|
||||
"name": entity.get("name") or login,
|
||||
})
|
||||
|
||||
page_info = sponsorships["pageInfo"]
|
||||
if not page_info["hasNextPage"]:
|
||||
try:
|
||||
has_next_page = page_info["hasNextPage"]
|
||||
cursor = page_info["endCursor"]
|
||||
except (TypeError, KeyError) as exc:
|
||||
raise SponsorDataError(
|
||||
"GitHub Sponsors query returned incomplete pagination data."
|
||||
) from exc
|
||||
if not has_next_page:
|
||||
return sponsors
|
||||
cursor = page_info["endCursor"]
|
||||
|
||||
|
||||
def opencollective_sponsors(since: datetime.date) -> typing.List[typing.Dict]:
|
||||
|
|
|
|||
Loading…
Reference in a new issue