Description
When a GitHub user deletes their account, the GraphQL API returns null for the author field on their PRs. The current code accesses pr_raw['author']['login'] without null-checking, causing a TypeError that crashes PR processing for the entire miner evaluation.
Affected code
gittensor/utils/github_api_tools.py line 929: pr_raw['author']['login'] in self-merge check
gittensor/utils/github_api_tools.py line 933: review['author']['login'] != pr_raw['author']['login'] in review check
gittensor/classes.py line 277: pr_data['author']['login'] in PullRequest.from_github_data()
Steps to reproduce
- A miner has a merged PR on a whitelisted repo
- The PR author later deletes their GitHub account
- Validator tries to score the miner's PRs
TypeError: 'NoneType' object is not subscriptable crashes the evaluation
Expected behavior
PRs from deleted accounts should be gracefully skipped or handled with a fallback login like 'ghost'.
Actual behavior
TypeError crash stops the entire miner evaluation.
Description
When a GitHub user deletes their account, the GraphQL API returns
nullfor theauthorfield on their PRs. The current code accessespr_raw['author']['login']without null-checking, causing aTypeErrorthat crashes PR processing for the entire miner evaluation.Affected code
gittensor/utils/github_api_tools.pyline 929:pr_raw['author']['login']in self-merge checkgittensor/utils/github_api_tools.pyline 933:review['author']['login'] != pr_raw['author']['login']in review checkgittensor/classes.pyline 277:pr_data['author']['login']inPullRequest.from_github_data()Steps to reproduce
TypeError: 'NoneType' object is not subscriptablecrashes the evaluationExpected behavior
PRs from deleted accounts should be gracefully skipped or handled with a fallback login like
'ghost'.Actual behavior
TypeErrorcrash stops the entire miner evaluation.