From 1bab1a475cd6100f4c1fe3897cfe7e4cbb1b963b Mon Sep 17 00:00:00 2001 From: Richard Tibbles Date: Wed, 1 Jul 2026 23:32:23 -0700 Subject: [PATCH] fix: stop stripping issue header on unrelated label changes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The `labeled`/`unlabeled` handlers fell through with an empty header whenever the changed label was not `help wanted`, then unconditionally rewrote the body — deleting the contribution header on every unrelated label add/remove. Return early for non-`help wanted` label events. Co-Authored-By: Claude Opus 4.8 (1M context) Claude-Session: https://claude.ai/code/session_0187m8h2Mqm45A8yw5tSSfr6 --- scripts/manage-issue-header.js | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/scripts/manage-issue-header.js b/scripts/manage-issue-header.js index 6a5a172..5bb8c6e 100644 --- a/scripts/manage-issue-header.js +++ b/scripts/manage-issue-header.js @@ -58,23 +58,28 @@ module.exports = async ({ github, context, core }) => { header = isIssueHelpWanted(issue) ? HELP_WANTED_HEADER : NON_HELP_WANTED_HEADER; break; case 'labeled': - if (labelName === HELP_WANTED_LABEL) { - header = HELP_WANTED_HEADER; + // only the 'help wanted' label affects the header; other labels must not touch the body + if (labelName !== HELP_WANTED_LABEL) { + core.info(`Ignoring '${actionType}' event for unrelated label '${labelName}'.`); + return; } + header = HELP_WANTED_HEADER; break; case 'unlabeled': - if (labelName === HELP_WANTED_LABEL) { - header = NON_HELP_WANTED_HEADER; - await deleteBotComments( - issueNumber, - LE_BOT_USERNAME, - ASSIGN_GUIDANCE_MARKER, - repoOwner, - repoName, - github, - core, - ); + if (labelName !== HELP_WANTED_LABEL) { + core.info(`Ignoring '${actionType}' event for unrelated label '${labelName}'.`); + return; } + header = NON_HELP_WANTED_HEADER; + await deleteBotComments( + issueNumber, + LE_BOT_USERNAME, + ASSIGN_GUIDANCE_MARKER, + repoOwner, + repoName, + github, + core, + ); break; default: core.info(`Unsupported action type '${actionType}' or label '${labelName}'. Skipping.`);