diff --git a/actions/setup/js/add_labels.cjs b/actions/setup/js/add_labels.cjs index 3b1d5a851c1..f42681aff84 100644 --- a/actions/setup/js/add_labels.cjs +++ b/actions/setup/js/add_labels.cjs @@ -3,7 +3,6 @@ const { processSafeOutput } = require("./safe_output_processor.cjs"); const { validateLabels } = require("./safe_output_validator.cjs"); -const { getErrorMessage } = require("./error_helpers.cjs"); async function main() { // Use shared processor for common steps @@ -43,7 +42,6 @@ async function main() { return; } - // @ts-ignore - TypeScript doesn't narrow properly after success check const { item: labelsItem, config, targetResult } = result; if (!config || !targetResult || targetResult.number === undefined) { core.setFailed("Internal error: config, targetResult, or targetResult.number is undefined"); @@ -53,14 +51,14 @@ async function main() { const itemNumber = targetResult.number; const { contextType } = targetResult; - const requestedLabels = labelsItem.labels || []; + const requestedLabels = labelsItem.labels ?? []; core.info(`Requested labels: ${JSON.stringify(requestedLabels)}`); // Use validation helper to sanitize and validate labels const labelsResult = validateLabels(requestedLabels, allowedLabels, maxCount); if (!labelsResult.valid) { // If no valid labels, log info and return gracefully instead of failing - if (labelsResult.error && labelsResult.error.includes("No valid labels")) { + if (labelsResult.error?.includes("No valid labels")) { core.info("No labels to add"); core.setOutput("labels_added", ""); await core.summary @@ -75,11 +73,11 @@ No labels were added (no valid labels found in agent output). return; } // For other validation errors, fail the workflow - core.setFailed(labelsResult.error || "Invalid labels"); + core.setFailed(labelsResult.error ?? "Invalid labels"); return; } - const uniqueLabels = labelsResult.value || []; + const uniqueLabels = labelsResult.value ?? []; if (uniqueLabels.length === 0) { core.info("No labels to add"); @@ -96,32 +94,26 @@ No labels were added (no valid labels found in agent output). return; } core.info(`Adding ${uniqueLabels.length} labels to ${contextType} #${itemNumber}: ${JSON.stringify(uniqueLabels)}`); - try { - await github.rest.issues.addLabels({ - owner: context.repo.owner, - repo: context.repo.repo, - issue_number: itemNumber, - labels: uniqueLabels, - }); - core.info(`Successfully added ${uniqueLabels.length} labels to ${contextType} #${itemNumber}`); - core.setOutput("labels_added", uniqueLabels.join("\n")); - const labelsListMarkdown = uniqueLabels.map(label => `- \`${label}\``).join("\n"); - await core.summary - .addRaw( - ` + await github.rest.issues.addLabels({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: itemNumber, + labels: uniqueLabels, + }); + core.info(`Successfully added ${uniqueLabels.length} labels to ${contextType} #${itemNumber}`); + core.setOutput("labels_added", uniqueLabels.join("\n")); + const labelsListMarkdown = uniqueLabels.map(label => `- \`${label}\``).join("\n"); + await core.summary + .addRaw( + ` ## Label Addition Successfully added ${uniqueLabels.length} label(s) to ${contextType} #${itemNumber}: ${labelsListMarkdown} ` - ) - .write(); - } catch (error) { - const errorMessage = getErrorMessage(error); - core.error(`Failed to add labels: ${errorMessage}`); - core.setFailed(`Failed to add labels: ${errorMessage}`); - } + ) + .write(); } module.exports = { main };