diff --git a/README.md b/README.md index 6c631c187..d8cf43b0d 100644 --- a/README.md +++ b/README.md @@ -448,14 +448,12 @@ Thanks to all clawtributors:

joaohlisboa mneves75 steipete maxsumrall xadenryan joshp123 mukhtharcm hsrvc jamesgroat dantelex - azade-c omniwired Mariano Belinky julianengel sreekaransrinath dbhurley kitze Jonathan D. Rhyne (DJ-D) vsabavat jeffersonwarrior - claude scald nachoiacovino andranik-sahakyan nachx639 tobiasbischoff sircrumpet manmal rafaelreis-r meaningfool - ratulsarna lutr0 abhisekbasu1 emanuelst osolmaz kiranjd thewilloftheshadow wstock CashWilliams manuelhettich - minghinmatthewlam buddyh sheeek timkrase gupsammy mcinteerj imfing petter-b RandyVentures jalehman - obviyus dan-dr iamadig VACInc zats djangonavarro220 pcty-nextgen-service-account Syhids erikpr1994 fcatuhe - jayhickey jverdi oswalpalash VAC alejandro maza antons Asleep123 cash-echo-bot Clawd conhecendocontato - daveonkels gtsifrikas hrdwdmrbl hugobarauna Jarvis jonasjancarik kkarimi loukotal mrdbstn MSch - nexty5870 ngutman onutc reeltimeapps Rolf Fredheim Sash Catanzarite snopoke Azade ddyo Django Navarro - Eng. Juan Combetto Erik Kit Manuel Maly Mariano Belinky Mourad Boustani pcty-nextgen-ios-builder Quentin Randy Torres Tobias Bischoff - Tu Nombre Real VACInc Vasanth Rao Naik Sabavat William Stock + Azade Eng. Juan Combetto Mariano Belinky julianengel sreekaransrinath dbhurley Kit Jonathan D. Rhyne (DJ-D) Vasanth Rao Naik Sabavat jeffersonwarrior + claude scald nachoiacovino andranik-sahakyan nachx639 sircrumpet Manuel Maly rafaelreis-r meaningfool ratulsarna + lutr0 abhisekbasu1 emanuelst osolmaz kiranjd thewilloftheshadow William Stock CashWilliams manuelhettich minghinmatthewlam + buddyh sheeek timkrase gupsammy mcinteerj imfing petter-b RandyVentures jalehman obviyus + dan-dr iamadig VACInc zats Django Navarro pcty-nextgen-service-account Syhids Erik fcatuhe jayhickey + jverdi oswalpalash VAC alejandro maza antons Asleep123 cash-echo-bot Clawd conhecendocontato gtsifrikas + hrdwdmrbl hugobarauna Jarvis jonasjancarik kkarimi loukotal mrdbstn MSch nexty5870 ngutman + onutc reeltimeapps Rolf Fredheim snopoke ddyo Mourad Boustani pcty-nextgen-ios-builder Quentin Randy Torres Tobias Bischoff

diff --git a/scripts/update-clawtributors.ts b/scripts/update-clawtributors.ts index ccb4413fd..5df4a493f 100644 --- a/scripts/update-clawtributors.ts +++ b/scripts/update-clawtributors.ts @@ -131,21 +131,33 @@ const entriesByKey = new Map(); for (const seed of seedEntries) { const login = loginFromUrl(seed.html_url); - const key = login ? login.toLowerCase() : `name:${normalizeName(seed.display)}`; - if (entriesByKey.has(key)) { - continue; + const resolvedLogin = + login ?? resolveLogin(seed.display, null, apiByLogin, nameToLogin, emailToLogin); + const key = resolvedLogin ? resolvedLogin.toLowerCase() : `name:${normalizeName(seed.display)}`; + const avatar = + seed.avatar_url && !isGhostAvatar(seed.avatar_url) + ? normalizeAvatar(seed.avatar_url) + : placeholderAvatar; + const existing = entriesByKey.get(key); + if (!existing) { + const user = resolvedLogin ? apiByLogin.get(key) : null; + entriesByKey.set(key, { + key, + login: resolvedLogin ?? login ?? undefined, + display: seed.display, + html_url: user?.html_url ?? seed.html_url, + avatar_url: user?.avatar_url ?? avatar, + lines: 0, + }); + } else { + existing.display = existing.display || seed.display; + if (existing.avatar_url === placeholderAvatar || !existing.avatar_url) { + existing.avatar_url = avatar; + } + if (!existing.html_url || existing.html_url.includes("/search?q=")) { + existing.html_url = seed.html_url; + } } - const avatar = seed.avatar_url && !isGhostAvatar(seed.avatar_url) - ? normalizeAvatar(seed.avatar_url) - : placeholderAvatar; - entriesByKey.set(key, { - key, - login: login ?? undefined, - display: seed.display, - html_url: seed.html_url, - avatar_url: avatar, - lines: 0, - }); } for (const item of contributors) {