From 34b5474207e1207bcc426ba06f4a9880897b7b67 Mon Sep 17 00:00:00 2001 From: RinZ27 <222222878+RinZ27@users.noreply.github.com> Date: Sun, 5 Apr 2026 18:59:56 +0700 Subject: [PATCH] Prevent email disclosure in contributor list generation --- scripts/generate-contributor-list.mjs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/scripts/generate-contributor-list.mjs b/scripts/generate-contributor-list.mjs index 41c68a313..aee6dbc97 100644 --- a/scripts/generate-contributor-list.mjs +++ b/scripts/generate-contributor-list.mjs @@ -309,7 +309,7 @@ async function main() { .filter((v, i, arr) => arr.findIndex(x => x.login.toLowerCase() === v.login.toLowerCase()) === i) .map(({ display, login }) => ({ name: display, gh: `[@${login}](https://github.com/${login})`, login })); - // 6) Unmatched → show email (dedupe by name+email) + // 6) Unmatched → log to STDERR for debugging, omit email from stdout output const unmatched = []; const seenUnk = new Set(); for (const { name, email } of pool) { @@ -319,7 +319,8 @@ async function main() { const key = normalizeName(nm) + "|" + email.toLowerCase(); if (seenUnk.has(key)) continue; seenUnk.add(key); - unmatched.push({ name: nm, gh: email, login: "" }); + console.error(`Unmatched contributor: ${nm} <${email}>`); + unmatched.push({ name: nm, gh: "", login: "" }); } // 7) Merge, sort, output