Repository navigation
verify LFX handles against the GitHub API in merge_lfx_contributors - #3742
tanjiroK-coder wants to merge 1 commit into
Conversation
|
|
|
Thank you for raising this @tanjiroK-coder, we (@open-telemetry/otel-elections) will take a look into this and make sure that this is addressed accordingly. |
|
following up on this, based on our immediate understanding you are right about most of the points here. As we have an ongoing election, we can currently not accept contributions from outsiders to the election scripts and processes, so I will treat your report as an issue, but unfortunately can not take in the PR as is. |
|
understood, not touching election scripts mid-election makes sense. the description has everything needed to reproduce the audit against the committed roll, so tracking it as an issue works fine. feel free to take or rework the fix however suits once the election is done. |
|
@tanjiroK-coder thanks for your understanding, note that this is still highly appreciated, and counts for us as a contribution to the project! Kudos! |
The voters roll is built from two sources and only one of them checks that a handle is a real GitHub account. The devstats path runs every name through
get_github_loginso it can only write a login the API confirmed, but the LFX path added in #3706 appendsgithubHandleArray[0]straight onto the roll. LFX handle arrays aren't validated against GitHub and aren't ordered by recency, so the first element is often a retired or renamed account: on the live feed 8 of the 644 eligible contributors have ahandles[0]that 404s, and 6 of those are inelections/2026/voters-roll.csvright now (amishhaa,MohamedElDegwi,Balaji01-4D,ahmadalguydi,gusun0,nw0rn). An unregistered GitHub username is claimable by anyone, so each of those rows is a ballot bound to no existing identity, andconvert-voter-roll-to-helios.pyhands it to Helios as['github', handle]unchanged. It cuts the other way too: for 4 of the 8 a live handle sat later in the same array, soswiatekm(3625 contributions) landed on the roll as the deadswiatekm-sumoand couldn't have voted. I hit this resolving every handle in the committed roll against the API while reading the LFX merge, and the fix just sends the handles through theget_github_loginhelper already in the file, taking the first canonical login that resolves and skipping the contributor when none does; on the current feed that takes 644 rows to 640 and leaves the other 636 unchanged.AI tooling was used to help prepare this change.