diff --git a/.github/aw/github-agentic-workflows.md b/.github/aw/github-agentic-workflows.md index 5c3f889e58a..0b3df484a9c 100644 --- a/.github/aw/github-agentic-workflows.md +++ b/.github/aw/github-agentic-workflows.md @@ -253,10 +253,10 @@ The YAML frontmatter supports these fields: - `read-only:` - Restrict to read-only operations (boolean) - `github-token:` - Custom GitHub token - `toolsets:` - Enable specific GitHub toolset groups (array only) - - **Default toolsets** (when unspecified): `context`, `repos`, `issues`, `pull_requests` (excludes `users` - not supported by GitHub Actions tokens) + - **Default toolsets** (when unspecified): `context`, `repos`, `issues`, `pull_requests`, `users` - **All toolsets**: `context`, `repos`, `issues`, `pull_requests`, `actions`, `code_security`, `dependabot`, `discussions`, `experiments`, `gists`, `labels`, `notifications`, `orgs`, `projects`, `secret_protection`, `security_advisories`, `stargazers`, `users`, `search` - - Use `[default]` or `[action-friendly]` for GitHub Actions-compatible toolsets, `[all]` to enable everything - - Examples: `toolsets: [default]`, `toolsets: [action-friendly]`, `toolsets: [default, discussions]`, `toolsets: [repos, issues]` + - Use `[default]` for recommended toolsets, `[all]` to enable everything + - Examples: `toolsets: [default]`, `toolsets: [default, discussions]`, `toolsets: [repos, issues]` - **Recommended**: Prefer `toolsets:` over `allowed:` for better organization and reduced configuration verbosity - `agentic-workflows:` - GitHub Agentic Workflows MCP server for workflow introspection - Provides tools for: diff --git a/.github/workflows/ai-triage-campaign.lock.yml b/.github/workflows/ai-triage-campaign.lock.yml index cbd3dc11428..f0e8902675c 100644 --- a/.github/workflows/ai-triage-campaign.lock.yml +++ b/.github/workflows/ai-triage-campaign.lock.yml @@ -3288,10 +3288,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/archie.lock.yml b/.github/workflows/archie.lock.yml index 267010a9e65..d89de63702b 100644 --- a/.github/workflows/archie.lock.yml +++ b/.github/workflows/archie.lock.yml @@ -4949,10 +4949,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/artifacts-summary.lock.yml b/.github/workflows/artifacts-summary.lock.yml index 0a7e8ed5a93..02d6858de87 100644 --- a/.github/workflows/artifacts-summary.lock.yml +++ b/.github/workflows/artifacts-summary.lock.yml @@ -3446,10 +3446,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/audit-workflows.lock.yml b/.github/workflows/audit-workflows.lock.yml index 53c8004cd90..5b2bfdfb222 100644 --- a/.github/workflows/audit-workflows.lock.yml +++ b/.github/workflows/audit-workflows.lock.yml @@ -5003,10 +5003,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/blog-auditor.lock.yml b/.github/workflows/blog-auditor.lock.yml index ee2987646d2..777b92cebd7 100644 --- a/.github/workflows/blog-auditor.lock.yml +++ b/.github/workflows/blog-auditor.lock.yml @@ -4065,10 +4065,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/brave.lock.yml b/.github/workflows/brave.lock.yml index 1ab56bc26b7..0d67c1ce7c0 100644 --- a/.github/workflows/brave.lock.yml +++ b/.github/workflows/brave.lock.yml @@ -4739,10 +4739,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/breaking-change-checker.lock.yml b/.github/workflows/breaking-change-checker.lock.yml index c371135761c..de4f4ebb0e7 100644 --- a/.github/workflows/breaking-change-checker.lock.yml +++ b/.github/workflows/breaking-change-checker.lock.yml @@ -3530,10 +3530,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/changeset.lock.yml b/.github/workflows/changeset.lock.yml index 305057492e1..023c78ebb9e 100644 --- a/.github/workflows/changeset.lock.yml +++ b/.github/workflows/changeset.lock.yml @@ -4419,10 +4419,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/ci-doctor.lock.yml b/.github/workflows/ci-doctor.lock.yml index c812324f0b1..48ac0206a77 100644 --- a/.github/workflows/ci-doctor.lock.yml +++ b/.github/workflows/ci-doctor.lock.yml @@ -4225,10 +4225,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/cli-consistency-checker.lock.yml b/.github/workflows/cli-consistency-checker.lock.yml index c6e47914787..dbfbf2f83c5 100644 --- a/.github/workflows/cli-consistency-checker.lock.yml +++ b/.github/workflows/cli-consistency-checker.lock.yml @@ -3527,10 +3527,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/cli-version-checker.lock.yml b/.github/workflows/cli-version-checker.lock.yml index cb4805fb335..97071383323 100644 --- a/.github/workflows/cli-version-checker.lock.yml +++ b/.github/workflows/cli-version-checker.lock.yml @@ -4014,10 +4014,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/cloclo.lock.yml b/.github/workflows/cloclo.lock.yml index cbd281424f2..ebc7af54316 100644 --- a/.github/workflows/cloclo.lock.yml +++ b/.github/workflows/cloclo.lock.yml @@ -5481,10 +5481,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/close-old-discussions.lock.yml b/.github/workflows/close-old-discussions.lock.yml index 2948b778b90..549dab66c06 100644 --- a/.github/workflows/close-old-discussions.lock.yml +++ b/.github/workflows/close-old-discussions.lock.yml @@ -3624,10 +3624,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/commit-changes-analyzer.lock.yml b/.github/workflows/commit-changes-analyzer.lock.yml index 6eec6444fee..9b7bce64dbc 100644 --- a/.github/workflows/commit-changes-analyzer.lock.yml +++ b/.github/workflows/commit-changes-analyzer.lock.yml @@ -3946,10 +3946,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/copilot-agent-analysis.lock.yml b/.github/workflows/copilot-agent-analysis.lock.yml index afd5f7c5ad8..058d49c9279 100644 --- a/.github/workflows/copilot-agent-analysis.lock.yml +++ b/.github/workflows/copilot-agent-analysis.lock.yml @@ -4690,10 +4690,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/copilot-pr-merged-report.lock.yml b/.github/workflows/copilot-pr-merged-report.lock.yml index 81f0bb39244..5300f38e1a4 100644 --- a/.github/workflows/copilot-pr-merged-report.lock.yml +++ b/.github/workflows/copilot-pr-merged-report.lock.yml @@ -4961,10 +4961,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/copilot-pr-nlp-analysis.lock.yml b/.github/workflows/copilot-pr-nlp-analysis.lock.yml index ee7a52e6954..560593afe5e 100644 --- a/.github/workflows/copilot-pr-nlp-analysis.lock.yml +++ b/.github/workflows/copilot-pr-nlp-analysis.lock.yml @@ -5067,10 +5067,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/copilot-pr-prompt-analysis.lock.yml b/.github/workflows/copilot-pr-prompt-analysis.lock.yml index 7a58ecd9731..a4e90d4799d 100644 --- a/.github/workflows/copilot-pr-prompt-analysis.lock.yml +++ b/.github/workflows/copilot-pr-prompt-analysis.lock.yml @@ -4089,10 +4089,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/copilot-session-insights.lock.yml b/.github/workflows/copilot-session-insights.lock.yml index 4c6fc4f8d96..56cdf028447 100644 --- a/.github/workflows/copilot-session-insights.lock.yml +++ b/.github/workflows/copilot-session-insights.lock.yml @@ -6100,10 +6100,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/craft.lock.yml b/.github/workflows/craft.lock.yml index 9de80eb9a7a..390003b63fc 100644 --- a/.github/workflows/craft.lock.yml +++ b/.github/workflows/craft.lock.yml @@ -5083,10 +5083,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/daily-assign-issue-to-user.lock.yml b/.github/workflows/daily-assign-issue-to-user.lock.yml index 1d7f4351e1d..a182611c55a 100644 --- a/.github/workflows/daily-assign-issue-to-user.lock.yml +++ b/.github/workflows/daily-assign-issue-to-user.lock.yml @@ -3724,10 +3724,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/daily-code-metrics.lock.yml b/.github/workflows/daily-code-metrics.lock.yml index 4c22bad49c4..9cbc0a8ad27 100644 --- a/.github/workflows/daily-code-metrics.lock.yml +++ b/.github/workflows/daily-code-metrics.lock.yml @@ -5141,10 +5141,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/daily-copilot-token-report.lock.yml b/.github/workflows/daily-copilot-token-report.lock.yml index cf4b917fb61..345b7945481 100644 --- a/.github/workflows/daily-copilot-token-report.lock.yml +++ b/.github/workflows/daily-copilot-token-report.lock.yml @@ -5232,10 +5232,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/daily-doc-updater.lock.yml b/.github/workflows/daily-doc-updater.lock.yml index f22c9b4fa05..5f5e37e1654 100644 --- a/.github/workflows/daily-doc-updater.lock.yml +++ b/.github/workflows/daily-doc-updater.lock.yml @@ -3737,10 +3737,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/daily-fact.lock.yml b/.github/workflows/daily-fact.lock.yml index b219d04765a..b38d6a0047f 100644 --- a/.github/workflows/daily-fact.lock.yml +++ b/.github/workflows/daily-fact.lock.yml @@ -3819,10 +3819,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/daily-file-diet.lock.yml b/.github/workflows/daily-file-diet.lock.yml index 1e16f104177..55d869a5eae 100644 --- a/.github/workflows/daily-file-diet.lock.yml +++ b/.github/workflows/daily-file-diet.lock.yml @@ -3773,10 +3773,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/daily-firewall-report.lock.yml b/.github/workflows/daily-firewall-report.lock.yml index a062dd5110a..5698a07b1d9 100644 --- a/.github/workflows/daily-firewall-report.lock.yml +++ b/.github/workflows/daily-firewall-report.lock.yml @@ -4514,10 +4514,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/daily-issues-report.lock.yml b/.github/workflows/daily-issues-report.lock.yml index 4fb9c365f2e..9be74dfd910 100644 --- a/.github/workflows/daily-issues-report.lock.yml +++ b/.github/workflows/daily-issues-report.lock.yml @@ -5356,10 +5356,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/daily-malicious-code-scan.lock.yml b/.github/workflows/daily-malicious-code-scan.lock.yml index 306c0ceae0f..64046dca1df 100644 --- a/.github/workflows/daily-malicious-code-scan.lock.yml +++ b/.github/workflows/daily-malicious-code-scan.lock.yml @@ -3760,10 +3760,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/daily-multi-device-docs-tester.lock.yml b/.github/workflows/daily-multi-device-docs-tester.lock.yml index ee5de4cebab..f0076d52c71 100644 --- a/.github/workflows/daily-multi-device-docs-tester.lock.yml +++ b/.github/workflows/daily-multi-device-docs-tester.lock.yml @@ -3648,10 +3648,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/daily-news.lock.yml b/.github/workflows/daily-news.lock.yml index 16a9e23d89a..d889bfd6efa 100644 --- a/.github/workflows/daily-news.lock.yml +++ b/.github/workflows/daily-news.lock.yml @@ -4991,10 +4991,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/daily-performance-summary.lock.yml b/.github/workflows/daily-performance-summary.lock.yml index 8202e263732..5f58a460982 100644 --- a/.github/workflows/daily-performance-summary.lock.yml +++ b/.github/workflows/daily-performance-summary.lock.yml @@ -6585,10 +6585,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/daily-repo-chronicle.lock.yml b/.github/workflows/daily-repo-chronicle.lock.yml index 679728db85f..9267eb291f4 100644 --- a/.github/workflows/daily-repo-chronicle.lock.yml +++ b/.github/workflows/daily-repo-chronicle.lock.yml @@ -4665,10 +4665,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/daily-workflow-updater.lock.yml b/.github/workflows/daily-workflow-updater.lock.yml index 8e766ed65f7..49ec16115ee 100644 --- a/.github/workflows/daily-workflow-updater.lock.yml +++ b/.github/workflows/daily-workflow-updater.lock.yml @@ -3452,10 +3452,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/deep-report.lock.yml b/.github/workflows/deep-report.lock.yml index 56015cf73dc..a728041b218 100644 --- a/.github/workflows/deep-report.lock.yml +++ b/.github/workflows/deep-report.lock.yml @@ -4235,10 +4235,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/dependabot-go-checker.lock.yml b/.github/workflows/dependabot-go-checker.lock.yml index 6c867d9b483..4fe1d09a2fb 100644 --- a/.github/workflows/dependabot-go-checker.lock.yml +++ b/.github/workflows/dependabot-go-checker.lock.yml @@ -4060,10 +4060,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/dev-hawk.lock.yml b/.github/workflows/dev-hawk.lock.yml index fda79a75368..4535fe3aa49 100644 --- a/.github/workflows/dev-hawk.lock.yml +++ b/.github/workflows/dev-hawk.lock.yml @@ -3993,10 +3993,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/developer-docs-consolidator.lock.yml b/.github/workflows/developer-docs-consolidator.lock.yml index e623dc73f5c..217661d6809 100644 --- a/.github/workflows/developer-docs-consolidator.lock.yml +++ b/.github/workflows/developer-docs-consolidator.lock.yml @@ -4892,10 +4892,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/dictation-prompt.lock.yml b/.github/workflows/dictation-prompt.lock.yml index 220d2eb0f79..8d6ede94eb1 100644 --- a/.github/workflows/dictation-prompt.lock.yml +++ b/.github/workflows/dictation-prompt.lock.yml @@ -3400,10 +3400,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/docs-noob-tester.lock.yml b/.github/workflows/docs-noob-tester.lock.yml index d18f74086b4..46bd356f326 100644 --- a/.github/workflows/docs-noob-tester.lock.yml +++ b/.github/workflows/docs-noob-tester.lock.yml @@ -3538,10 +3538,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/duplicate-code-detector.lock.yml b/.github/workflows/duplicate-code-detector.lock.yml index 8dcf0f61e4a..6147c4b1255 100644 --- a/.github/workflows/duplicate-code-detector.lock.yml +++ b/.github/workflows/duplicate-code-detector.lock.yml @@ -3608,10 +3608,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/example-workflow-analyzer.lock.yml b/.github/workflows/example-workflow-analyzer.lock.yml index cdab386dd5f..bd680e9efb3 100644 --- a/.github/workflows/example-workflow-analyzer.lock.yml +++ b/.github/workflows/example-workflow-analyzer.lock.yml @@ -3453,10 +3453,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/github-mcp-structural-analysis.lock.yml b/.github/workflows/github-mcp-structural-analysis.lock.yml index 556acf748db..8deff8291fc 100644 --- a/.github/workflows/github-mcp-structural-analysis.lock.yml +++ b/.github/workflows/github-mcp-structural-analysis.lock.yml @@ -4819,10 +4819,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/github-mcp-tools-report.lock.yml b/.github/workflows/github-mcp-tools-report.lock.yml index d30bcae14fd..24623981873 100644 --- a/.github/workflows/github-mcp-tools-report.lock.yml +++ b/.github/workflows/github-mcp-tools-report.lock.yml @@ -4595,10 +4595,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/glossary-maintainer.lock.yml b/.github/workflows/glossary-maintainer.lock.yml index f3e84f885c3..924d90564c9 100644 --- a/.github/workflows/glossary-maintainer.lock.yml +++ b/.github/workflows/glossary-maintainer.lock.yml @@ -4558,10 +4558,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/go-fan.lock.yml b/.github/workflows/go-fan.lock.yml index 63d47e8e288..09c9a6c32b5 100644 --- a/.github/workflows/go-fan.lock.yml +++ b/.github/workflows/go-fan.lock.yml @@ -4136,10 +4136,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/go-logger.lock.yml b/.github/workflows/go-logger.lock.yml index 5a817ebee1a..817e72fc68e 100644 --- a/.github/workflows/go-logger.lock.yml +++ b/.github/workflows/go-logger.lock.yml @@ -3901,10 +3901,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/go-pattern-detector.lock.yml b/.github/workflows/go-pattern-detector.lock.yml index 396ff68dca8..62e00cfcefe 100644 --- a/.github/workflows/go-pattern-detector.lock.yml +++ b/.github/workflows/go-pattern-detector.lock.yml @@ -3652,10 +3652,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/grumpy-reviewer.lock.yml b/.github/workflows/grumpy-reviewer.lock.yml index 53ae01dfebe..f22e55a3ea0 100644 --- a/.github/workflows/grumpy-reviewer.lock.yml +++ b/.github/workflows/grumpy-reviewer.lock.yml @@ -4888,10 +4888,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/instructions-janitor.lock.yml b/.github/workflows/instructions-janitor.lock.yml index e7e63e8c3dc..53ae770dbde 100644 --- a/.github/workflows/instructions-janitor.lock.yml +++ b/.github/workflows/instructions-janitor.lock.yml @@ -3666,10 +3666,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/issue-arborist.lock.yml b/.github/workflows/issue-arborist.lock.yml index 347bdfb8f73..cfc69a9dbde 100644 --- a/.github/workflows/issue-arborist.lock.yml +++ b/.github/workflows/issue-arborist.lock.yml @@ -3617,10 +3617,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/issue-classifier.lock.yml b/.github/workflows/issue-classifier.lock.yml index 292892bcbae..17f8af17d96 100644 --- a/.github/workflows/issue-classifier.lock.yml +++ b/.github/workflows/issue-classifier.lock.yml @@ -4464,10 +4464,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/issue-monster.lock.yml b/.github/workflows/issue-monster.lock.yml index b54d2aacb33..ea049db034c 100644 --- a/.github/workflows/issue-monster.lock.yml +++ b/.github/workflows/issue-monster.lock.yml @@ -4160,10 +4160,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/issue-triage-agent.lock.yml b/.github/workflows/issue-triage-agent.lock.yml index 26a3a4153e1..143e49ed5d7 100644 --- a/.github/workflows/issue-triage-agent.lock.yml +++ b/.github/workflows/issue-triage-agent.lock.yml @@ -3632,10 +3632,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/lockfile-stats.lock.yml b/.github/workflows/lockfile-stats.lock.yml index 6b1632e1425..955d99a556e 100644 --- a/.github/workflows/lockfile-stats.lock.yml +++ b/.github/workflows/lockfile-stats.lock.yml @@ -4178,10 +4178,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/mcp-inspector.lock.yml b/.github/workflows/mcp-inspector.lock.yml index e962a4c8a7c..dc3dc2bf012 100644 --- a/.github/workflows/mcp-inspector.lock.yml +++ b/.github/workflows/mcp-inspector.lock.yml @@ -4068,10 +4068,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/mergefest.lock.yml b/.github/workflows/mergefest.lock.yml index 8bc1aa1d530..635be3cf727 100644 --- a/.github/workflows/mergefest.lock.yml +++ b/.github/workflows/mergefest.lock.yml @@ -4233,10 +4233,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/notion-issue-summary.lock.yml b/.github/workflows/notion-issue-summary.lock.yml index cbe59faae6b..145f54b75b5 100644 --- a/.github/workflows/notion-issue-summary.lock.yml +++ b/.github/workflows/notion-issue-summary.lock.yml @@ -3135,10 +3135,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/org-health-report.lock.yml b/.github/workflows/org-health-report.lock.yml index 64ce7bce4c9..20bc49fb213 100644 --- a/.github/workflows/org-health-report.lock.yml +++ b/.github/workflows/org-health-report.lock.yml @@ -4929,10 +4929,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/pdf-summary.lock.yml b/.github/workflows/pdf-summary.lock.yml index 57d31eea1fd..3b4e6d3c1ef 100644 --- a/.github/workflows/pdf-summary.lock.yml +++ b/.github/workflows/pdf-summary.lock.yml @@ -4913,10 +4913,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/plan.lock.yml b/.github/workflows/plan.lock.yml index 35b42154952..7464d8590c5 100644 --- a/.github/workflows/plan.lock.yml +++ b/.github/workflows/plan.lock.yml @@ -4247,10 +4247,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/poem-bot.lock.yml b/.github/workflows/poem-bot.lock.yml index 282c8d01733..44c250024ae 100644 --- a/.github/workflows/poem-bot.lock.yml +++ b/.github/workflows/poem-bot.lock.yml @@ -5965,10 +5965,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/pr-nitpick-reviewer.lock.yml b/.github/workflows/pr-nitpick-reviewer.lock.yml index ab2e5f89cf6..add9128119b 100644 --- a/.github/workflows/pr-nitpick-reviewer.lock.yml +++ b/.github/workflows/pr-nitpick-reviewer.lock.yml @@ -5233,10 +5233,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/prompt-clustering-analysis.lock.yml b/.github/workflows/prompt-clustering-analysis.lock.yml index c0a5229a639..cdfb960ca39 100644 --- a/.github/workflows/prompt-clustering-analysis.lock.yml +++ b/.github/workflows/prompt-clustering-analysis.lock.yml @@ -5454,10 +5454,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/python-data-charts.lock.yml b/.github/workflows/python-data-charts.lock.yml index 39346191381..a19d6d527b6 100644 --- a/.github/workflows/python-data-charts.lock.yml +++ b/.github/workflows/python-data-charts.lock.yml @@ -5297,10 +5297,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/q.lock.yml b/.github/workflows/q.lock.yml index 99d8b06970e..06ed6ba891c 100644 --- a/.github/workflows/q.lock.yml +++ b/.github/workflows/q.lock.yml @@ -5495,10 +5495,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/release.lock.yml b/.github/workflows/release.lock.yml index 326a7745951..48e8593bca9 100644 --- a/.github/workflows/release.lock.yml +++ b/.github/workflows/release.lock.yml @@ -3593,10 +3593,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/repo-tree-map.lock.yml b/.github/workflows/repo-tree-map.lock.yml index d02b06dcb17..42c24372654 100644 --- a/.github/workflows/repo-tree-map.lock.yml +++ b/.github/workflows/repo-tree-map.lock.yml @@ -3473,10 +3473,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/repository-quality-improver.lock.yml b/.github/workflows/repository-quality-improver.lock.yml index f34420ef898..3c0e4f37c93 100644 --- a/.github/workflows/repository-quality-improver.lock.yml +++ b/.github/workflows/repository-quality-improver.lock.yml @@ -4511,10 +4511,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/research.lock.yml b/.github/workflows/research.lock.yml index b4017c18db6..6ad227513b4 100644 --- a/.github/workflows/research.lock.yml +++ b/.github/workflows/research.lock.yml @@ -3388,10 +3388,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/safe-output-health.lock.yml b/.github/workflows/safe-output-health.lock.yml index a64ba263306..567ddfd10b1 100644 --- a/.github/workflows/safe-output-health.lock.yml +++ b/.github/workflows/safe-output-health.lock.yml @@ -4475,10 +4475,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/schema-consistency-checker.lock.yml b/.github/workflows/schema-consistency-checker.lock.yml index 3c7dd0facac..be109626be9 100644 --- a/.github/workflows/schema-consistency-checker.lock.yml +++ b/.github/workflows/schema-consistency-checker.lock.yml @@ -4123,10 +4123,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/scout.lock.yml b/.github/workflows/scout.lock.yml index 6cd85caea35..3452e29ff8b 100644 --- a/.github/workflows/scout.lock.yml +++ b/.github/workflows/scout.lock.yml @@ -5529,10 +5529,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/security-fix-pr.lock.yml b/.github/workflows/security-fix-pr.lock.yml index 03cd21e3dab..b19f16c234b 100644 --- a/.github/workflows/security-fix-pr.lock.yml +++ b/.github/workflows/security-fix-pr.lock.yml @@ -3673,10 +3673,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/semantic-function-refactor.lock.yml b/.github/workflows/semantic-function-refactor.lock.yml index 5a526f2d2bd..51a13779b55 100644 --- a/.github/workflows/semantic-function-refactor.lock.yml +++ b/.github/workflows/semantic-function-refactor.lock.yml @@ -4511,10 +4511,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/smoke-claude.lock.yml b/.github/workflows/smoke-claude.lock.yml index a7ce417c3c1..5ff5b8a54b1 100644 --- a/.github/workflows/smoke-claude.lock.yml +++ b/.github/workflows/smoke-claude.lock.yml @@ -5410,10 +5410,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/smoke-codex.lock.yml b/.github/workflows/smoke-codex.lock.yml index 65006d41ce2..da0212aa524 100644 --- a/.github/workflows/smoke-codex.lock.yml +++ b/.github/workflows/smoke-codex.lock.yml @@ -4961,10 +4961,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/smoke-copilot-no-firewall.lock.yml b/.github/workflows/smoke-copilot-no-firewall.lock.yml index b026a595f67..c59f7ea80e5 100644 --- a/.github/workflows/smoke-copilot-no-firewall.lock.yml +++ b/.github/workflows/smoke-copilot-no-firewall.lock.yml @@ -6390,10 +6390,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/smoke-copilot-playwright.lock.yml b/.github/workflows/smoke-copilot-playwright.lock.yml index b3a4b1e4c8c..45bae009da6 100644 --- a/.github/workflows/smoke-copilot-playwright.lock.yml +++ b/.github/workflows/smoke-copilot-playwright.lock.yml @@ -6374,10 +6374,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/smoke-copilot-safe-inputs.lock.yml b/.github/workflows/smoke-copilot-safe-inputs.lock.yml index 408fd11fbd7..816a159270d 100644 --- a/.github/workflows/smoke-copilot-safe-inputs.lock.yml +++ b/.github/workflows/smoke-copilot-safe-inputs.lock.yml @@ -6099,10 +6099,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/smoke-copilot.lock.yml b/.github/workflows/smoke-copilot.lock.yml index 5c50958cff8..5291e2a022e 100644 --- a/.github/workflows/smoke-copilot.lock.yml +++ b/.github/workflows/smoke-copilot.lock.yml @@ -6276,10 +6276,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/smoke-detector.lock.yml b/.github/workflows/smoke-detector.lock.yml index 508e2bd80be..0882f42c070 100644 --- a/.github/workflows/smoke-detector.lock.yml +++ b/.github/workflows/smoke-detector.lock.yml @@ -5153,10 +5153,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/smoke-srt.lock.yml b/.github/workflows/smoke-srt.lock.yml index ccdc7e24b1e..aa5e48c2223 100644 --- a/.github/workflows/smoke-srt.lock.yml +++ b/.github/workflows/smoke-srt.lock.yml @@ -3280,10 +3280,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/spec-kit-execute.lock.yml b/.github/workflows/spec-kit-execute.lock.yml index 0eef100e33a..48f332bbaa7 100644 --- a/.github/workflows/spec-kit-execute.lock.yml +++ b/.github/workflows/spec-kit-execute.lock.yml @@ -4002,10 +4002,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/spec-kit-executor.lock.yml b/.github/workflows/spec-kit-executor.lock.yml index d5f05acdf5b..82199afcbe1 100644 --- a/.github/workflows/spec-kit-executor.lock.yml +++ b/.github/workflows/spec-kit-executor.lock.yml @@ -3692,10 +3692,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/speckit-dispatcher.lock.yml b/.github/workflows/speckit-dispatcher.lock.yml index 18e79022684..1c5d849feeb 100644 --- a/.github/workflows/speckit-dispatcher.lock.yml +++ b/.github/workflows/speckit-dispatcher.lock.yml @@ -5408,10 +5408,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/stale-repo-identifier.lock.yml b/.github/workflows/stale-repo-identifier.lock.yml index a13e29adc31..6eaea89521c 100644 --- a/.github/workflows/stale-repo-identifier.lock.yml +++ b/.github/workflows/stale-repo-identifier.lock.yml @@ -5165,10 +5165,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/static-analysis-report.lock.yml b/.github/workflows/static-analysis-report.lock.yml index 31f3e85ccf2..ceca51fac4f 100644 --- a/.github/workflows/static-analysis-report.lock.yml +++ b/.github/workflows/static-analysis-report.lock.yml @@ -4214,10 +4214,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/super-linter.lock.yml b/.github/workflows/super-linter.lock.yml index b5de052078c..2bf39a9dfa9 100644 --- a/.github/workflows/super-linter.lock.yml +++ b/.github/workflows/super-linter.lock.yml @@ -3689,10 +3689,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/technical-doc-writer.lock.yml b/.github/workflows/technical-doc-writer.lock.yml index 637710d2a9c..2fabcd3a439 100644 --- a/.github/workflows/technical-doc-writer.lock.yml +++ b/.github/workflows/technical-doc-writer.lock.yml @@ -4746,10 +4746,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/test-discussion-expires.lock.yml b/.github/workflows/test-discussion-expires.lock.yml index 5a6f99d4fc5..b91348c40ca 100644 --- a/.github/workflows/test-discussion-expires.lock.yml +++ b/.github/workflows/test-discussion-expires.lock.yml @@ -3067,10 +3067,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/test-python-safe-input.lock.yml b/.github/workflows/test-python-safe-input.lock.yml index 99a6d3e6e42..b38597bfe6a 100644 --- a/.github/workflows/test-python-safe-input.lock.yml +++ b/.github/workflows/test-python-safe-input.lock.yml @@ -4682,10 +4682,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/tidy.lock.yml b/.github/workflows/tidy.lock.yml index 155d743ed52..5c5a4320d83 100644 --- a/.github/workflows/tidy.lock.yml +++ b/.github/workflows/tidy.lock.yml @@ -3806,10 +3806,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/typist.lock.yml b/.github/workflows/typist.lock.yml index 5e7aafe785e..493329e8ec1 100644 --- a/.github/workflows/typist.lock.yml +++ b/.github/workflows/typist.lock.yml @@ -4542,10 +4542,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/unbloat-docs.lock.yml b/.github/workflows/unbloat-docs.lock.yml index 623dad91acd..4f6b6f845d5 100644 --- a/.github/workflows/unbloat-docs.lock.yml +++ b/.github/workflows/unbloat-docs.lock.yml @@ -5275,10 +5275,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/video-analyzer.lock.yml b/.github/workflows/video-analyzer.lock.yml index 19475b6a167..1060a5331c3 100644 --- a/.github/workflows/video-analyzer.lock.yml +++ b/.github/workflows/video-analyzer.lock.yml @@ -3730,10 +3730,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/.github/workflows/weekly-issue-summary.lock.yml b/.github/workflows/weekly-issue-summary.lock.yml index 8aba3938268..1c0cef05017 100644 --- a/.github/workflows/weekly-issue-summary.lock.yml +++ b/.github/workflows/weekly-issue-summary.lock.yml @@ -4522,10 +4522,6 @@ jobs: if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/pkg/workflow/js/collect_ndjson_output.cjs b/pkg/workflow/js/collect_ndjson_output.cjs index 091dfdb499d..27d529e6e64 100644 --- a/pkg/workflow/js/collect_ndjson_output.cjs +++ b/pkg/workflow/js/collect_ndjson_output.cjs @@ -285,10 +285,6 @@ async function main() { if (errors.length > 0) { core.warning("Validation errors found:"); errors.forEach(error => core.warning(` - ${error}`)); - if (parsedItems.length === 0) { - core.setFailed(errors.map(e => ` - ${e}`).join("\n")); - return; - } } for (const itemType of Object.keys(expectedOutputTypes)) { const minRequired = getMinRequiredForType(itemType, expectedOutputTypes); diff --git a/pkg/workflow/js/collect_ndjson_output.test.cjs b/pkg/workflow/js/collect_ndjson_output.test.cjs index 03f574bbd7b..38c4a902b02 100644 --- a/pkg/workflow/js/collect_ndjson_output.test.cjs +++ b/pkg/workflow/js/collect_ndjson_output.test.cjs @@ -336,16 +336,20 @@ describe("collect_ndjson_output.cjs", () => { await eval(`(async () => { ${collectScript} })()`); - // Since there are errors and no valid items, setFailed should be called - expect(mockCore.setFailed).toHaveBeenCalledTimes(1); - const failedMessage = mockCore.setFailed.mock.calls[0][0]; - expect(failedMessage).toContain("requires a 'body' field (string)"); - expect(failedMessage).toContain("requires a 'title' field (string)"); + // Should show warnings but not fail the step + expect(mockCore.warning).toHaveBeenCalled(); + expect(mockCore.setFailed).not.toHaveBeenCalled(); - // setOutput should not be called because of early return + // setOutput should be called with errors and empty items const setOutputCalls = mockCore.setOutput.mock.calls; const outputCall = setOutputCalls.find(call => call[0] === "output"); - expect(outputCall).toBeUndefined(); + expect(outputCall).toBeDefined(); + + const parsedOutput = JSON.parse(outputCall[1]); + expect(parsedOutput.items).toHaveLength(0); + expect(parsedOutput.errors.length).toBeGreaterThan(0); + expect(parsedOutput.errors.some(e => e.includes("requires a 'body' field (string)"))).toBe(true); + expect(parsedOutput.errors.some(e => e.includes("requires a 'title' field (string)"))).toBe(true); }); it("should validate required fields for add-labels type", async () => { @@ -935,15 +939,19 @@ Line 3"} await eval(`(async () => { ${collectScript} })()`); - // Since there are errors and no valid items, setFailed should be called - expect(mockCore.setFailed).toHaveBeenCalledTimes(1); - const failedMessage = mockCore.setFailed.mock.calls[0][0]; - expect(failedMessage).toContain("JSON parsing failed"); + // Should show warnings but not fail the step + expect(mockCore.warning).toHaveBeenCalled(); + expect(mockCore.setFailed).not.toHaveBeenCalled(); - // setOutput should not be called because of early return + // setOutput should be called with errors and empty items const setOutputCalls = mockCore.setOutput.mock.calls; const outputCall = setOutputCalls.find(call => call[0] === "output"); - expect(outputCall).toBeUndefined(); + expect(outputCall).toBeDefined(); + + const parsedOutput = JSON.parse(outputCall[1]); + expect(parsedOutput.items).toHaveLength(0); + expect(parsedOutput.errors.length).toBeGreaterThan(0); + expect(parsedOutput.errors.some(e => e.includes("JSON parsing failed"))).toBe(true); }); it("should preserve valid JSON without modification", async () => { @@ -1033,18 +1041,19 @@ Line 3"} // Check if repair succeeded by looking at mock calls const setOutputCalls = mockCore.setOutput.mock.calls; const outputCall = setOutputCalls.find(call => call[0] === "output"); + expect(outputCall).toBeDefined(); - if (outputCall) { + const parsedOutput = JSON.parse(outputCall[1]); + if (parsedOutput.items.length > 0) { // Repair succeeded - const parsedOutput = JSON.parse(outputCall[1]); expect(parsedOutput.items[0].type).toBe("add_labels"); expect(parsedOutput.items[0].labels).toEqual(["bug", "feature"]); expect(parsedOutput.errors).toHaveLength(0); } else { - // Repair failed, should have called setFailed - expect(mockCore.setFailed).toHaveBeenCalledTimes(1); - const failedMessage = mockCore.setFailed.mock.calls[0][0]; - expect(failedMessage).toContain("JSON parsing failed"); + // Repair failed, but step should not fail - just return errors + expect(mockCore.setFailed).not.toHaveBeenCalled(); + expect(mockCore.warning).toHaveBeenCalled(); + expect(parsedOutput.errors.length).toBeGreaterThan(0); } }); @@ -1356,15 +1365,19 @@ Line 3"} await eval(`(async () => { ${collectScript} })()`); - // Since this JSON is too malformed to repair and results in no valid items, setFailed should be called - expect(mockCore.setFailed).toHaveBeenCalledTimes(1); - const failedMessage = mockCore.setFailed.mock.calls[0][0]; - expect(failedMessage).toContain("JSON parsing failed"); + // Should show warnings but not fail the step + expect(mockCore.warning).toHaveBeenCalled(); + expect(mockCore.setFailed).not.toHaveBeenCalled(); - // setOutput should not be called because of early return + // setOutput should be called with errors and empty items const setOutputCalls = mockCore.setOutput.mock.calls; const outputCall = setOutputCalls.find(call => call[0] === "output"); - expect(outputCall).toBeUndefined(); + expect(outputCall).toBeDefined(); + + const parsedOutput = JSON.parse(outputCall[1]); + expect(parsedOutput.items).toHaveLength(0); + expect(parsedOutput.errors.length).toBeGreaterThan(0); + expect(parsedOutput.errors.some(e => e.includes("JSON parsing failed"))).toBe(true); }); it("should repair very long strings with multiple issues", async () => { @@ -1487,15 +1500,19 @@ Line 3"} await eval(`(async () => { ${collectScript} })()`); - // Since this JSON is fundamentally broken and results in no valid items, setFailed should be called - expect(mockCore.setFailed).toHaveBeenCalledTimes(1); - const failedMessage = mockCore.setFailed.mock.calls[0][0]; - expect(failedMessage).toContain("JSON parsing failed"); + // Should show warnings but not fail the step + expect(mockCore.warning).toHaveBeenCalled(); + expect(mockCore.setFailed).not.toHaveBeenCalled(); - // setOutput should not be called because of early return + // setOutput should be called with errors and empty items const setOutputCalls = mockCore.setOutput.mock.calls; const outputCall = setOutputCalls.find(call => call[0] === "output"); - expect(outputCall).toBeUndefined(); + expect(outputCall).toBeDefined(); + + const parsedOutput = JSON.parse(outputCall[1]); + expect(parsedOutput.items).toHaveLength(0); + expect(parsedOutput.errors.length).toBeGreaterThan(0); + expect(parsedOutput.errors.some(e => e.includes("JSON parsing failed"))).toBe(true); }); it("should handle repair of JSON with missing property separators", async () => { @@ -1511,15 +1528,19 @@ Line 3"} await eval(`(async () => { ${collectScript} })()`); - // Since this JSON likely fails to repair and results in no valid items, setFailed should be called - expect(mockCore.setFailed).toHaveBeenCalledTimes(1); - const failedMessage = mockCore.setFailed.mock.calls[0][0]; - expect(failedMessage).toContain("JSON parsing failed"); + // Should show warnings but not fail the step + expect(mockCore.warning).toHaveBeenCalled(); + expect(mockCore.setFailed).not.toHaveBeenCalled(); - // setOutput should not be called because of early return + // setOutput should be called with errors and empty items const setOutputCalls = mockCore.setOutput.mock.calls; const outputCall = setOutputCalls.find(call => call[0] === "output"); - expect(outputCall).toBeUndefined(); + expect(outputCall).toBeDefined(); + + const parsedOutput = JSON.parse(outputCall[1]); + expect(parsedOutput.items).toHaveLength(0); + expect(parsedOutput.errors.length).toBeGreaterThan(0); + expect(parsedOutput.errors.some(e => e.includes("JSON parsing failed"))).toBe(true); }); it("should repair arrays with mixed bracket types in complex structures", async () => { @@ -1563,17 +1584,19 @@ Line 3"} const setOutputCalls = mockCore.setOutput.mock.calls; const outputCall = setOutputCalls.find(call => call[0] === "output"); - if (outputCall) { + expect(outputCall).toBeDefined(); + + const parsedOutput = JSON.parse(outputCall[1]); + if (parsedOutput.items.length > 0) { // Repair succeeded - const parsedOutput = JSON.parse(outputCall[1]); expect(parsedOutput.items[0].type).toBe("create_issue"); expect(parsedOutput.items[0].title).toBe("Test"); expect(parsedOutput.errors).toHaveLength(0); } else { - // Repair failed, should have called setFailed - expect(mockCore.setFailed).toHaveBeenCalledTimes(1); - const failedMessage = mockCore.setFailed.mock.calls[0][0]; - expect(failedMessage).toContain("JSON parsing failed"); + // Repair failed, but step should not fail - just return errors + expect(mockCore.setFailed).not.toHaveBeenCalled(); + expect(mockCore.warning).toHaveBeenCalled(); + expect(parsedOutput.errors.length).toBeGreaterThan(0); } }); @@ -1779,18 +1802,22 @@ Line 3"} await eval(`(async () => { ${collectScript} })()`); - // Since there are errors and no valid items, setFailed should be called - expect(mockCore.setFailed).toHaveBeenCalledTimes(1); - const failedMessage = mockCore.setFailed.mock.calls[0][0]; - expect(failedMessage).toContain("create_code_scanning_alert requires a 'file' field (string)"); - expect(failedMessage).toContain("create_code_scanning_alert 'line' is required"); - expect(failedMessage).toContain("create_code_scanning_alert requires a 'severity' field (string)"); - expect(failedMessage).toContain("create_code_scanning_alert requires a 'message' field (string)"); + // Should show warnings but not fail the step + expect(mockCore.warning).toHaveBeenCalled(); + expect(mockCore.setFailed).not.toHaveBeenCalled(); - // setOutput should not be called because of early return + // setOutput should be called with errors and empty items const setOutputCalls = mockCore.setOutput.mock.calls; const outputCall = setOutputCalls.find(call => call[0] === "output"); - expect(outputCall).toBeUndefined(); + expect(outputCall).toBeDefined(); + + const parsedOutput = JSON.parse(outputCall[1]); + expect(parsedOutput.items).toHaveLength(0); + expect(parsedOutput.errors.length).toBeGreaterThan(0); + expect(parsedOutput.errors.some(e => e.includes("create_code_scanning_alert requires a 'file' field (string)"))).toBe(true); + expect(parsedOutput.errors.some(e => e.includes("create_code_scanning_alert 'line' is required"))).toBe(true); + expect(parsedOutput.errors.some(e => e.includes("create_code_scanning_alert requires a 'severity' field (string)"))).toBe(true); + expect(parsedOutput.errors.some(e => e.includes("create_code_scanning_alert requires a 'message' field (string)"))).toBe(true); }); it("should reject code scanning alert entries with invalid field types", async () => { @@ -1809,18 +1836,22 @@ Line 3"} await eval(`(async () => { ${collectScript} })()`); - // Since there are errors and no valid items, setFailed should be called - expect(mockCore.setFailed).toHaveBeenCalledTimes(1); - const failedMessage = mockCore.setFailed.mock.calls[0][0]; - expect(failedMessage).toContain("create_code_scanning_alert requires a 'file' field (string)"); - expect(failedMessage).toContain("create_code_scanning_alert 'line' is required"); - expect(failedMessage).toContain("create_code_scanning_alert requires a 'severity' field (string)"); - expect(failedMessage).toContain("create_code_scanning_alert requires a 'message' field (string)"); + // Should show warnings but not fail the step + expect(mockCore.warning).toHaveBeenCalled(); + expect(mockCore.setFailed).not.toHaveBeenCalled(); - // setOutput should not be called because of early return + // setOutput should be called with errors and empty items const setOutputCalls = mockCore.setOutput.mock.calls; const outputCall = setOutputCalls.find(call => call[0] === "output"); - expect(outputCall).toBeUndefined(); + expect(outputCall).toBeDefined(); + + const parsedOutput = JSON.parse(outputCall[1]); + expect(parsedOutput.items).toHaveLength(0); + expect(parsedOutput.errors.length).toBeGreaterThan(0); + expect(parsedOutput.errors.some(e => e.includes("create_code_scanning_alert requires a 'file' field (string)"))).toBe(true); + expect(parsedOutput.errors.some(e => e.includes("create_code_scanning_alert 'line' is required"))).toBe(true); + expect(parsedOutput.errors.some(e => e.includes("create_code_scanning_alert requires a 'severity' field (string)"))).toBe(true); + expect(parsedOutput.errors.some(e => e.includes("create_code_scanning_alert requires a 'message' field (string)"))).toBe(true); }); it("should reject code scanning alert entries with invalid severity levels", async () => { @@ -1837,15 +1868,21 @@ Line 3"} await eval(`(async () => { ${collectScript} })()`); - // Since there are errors and no valid items, setFailed should be called - expect(mockCore.setFailed).toHaveBeenCalledTimes(1); - const failedMessage = mockCore.setFailed.mock.calls[0][0]; - expect(failedMessage).toContain("create_code_scanning_alert 'severity' must be one of: error, warning, info, note"); + // Should show warnings but not fail the step + expect(mockCore.warning).toHaveBeenCalled(); + expect(mockCore.setFailed).not.toHaveBeenCalled(); - // setOutput should not be called because of early return + // setOutput should be called with errors and empty items const setOutputCalls = mockCore.setOutput.mock.calls; const outputCall = setOutputCalls.find(call => call[0] === "output"); - expect(outputCall).toBeUndefined(); + expect(outputCall).toBeDefined(); + + const parsedOutput = JSON.parse(outputCall[1]); + expect(parsedOutput.items).toHaveLength(0); + expect(parsedOutput.errors.length).toBeGreaterThan(0); + expect( + parsedOutput.errors.some(e => e.includes("create_code_scanning_alert 'severity' must be one of: error, warning, info, note")) + ).toBe(true); }); it("should reject code scanning alert entries with invalid optional fields", async () => { @@ -1863,19 +1900,27 @@ Line 3"} await eval(`(async () => { ${collectScript} })()`); - // Since there are errors and no valid items, setFailed should be called - expect(mockCore.setFailed).toHaveBeenCalledTimes(1); - const failedMessage = mockCore.setFailed.mock.calls[0][0]; - expect(failedMessage).toContain("create_code_scanning_alert 'column' must be a valid positive integer (got: invalid)"); - expect(failedMessage).toContain("create_code_scanning_alert 'ruleIdSuffix' must be a string"); - expect(failedMessage).toContain( - "create_code_scanning_alert 'ruleIdSuffix' must contain only alphanumeric characters, hyphens, and underscores" - ); + // Should show warnings but not fail the step + expect(mockCore.warning).toHaveBeenCalled(); + expect(mockCore.setFailed).not.toHaveBeenCalled(); - // setOutput should not be called because of early return + // setOutput should be called with errors and empty items const setOutputCalls = mockCore.setOutput.mock.calls; const outputCall = setOutputCalls.find(call => call[0] === "output"); - expect(outputCall).toBeUndefined(); + expect(outputCall).toBeDefined(); + + const parsedOutput = JSON.parse(outputCall[1]); + expect(parsedOutput.items).toHaveLength(0); + expect(parsedOutput.errors.length).toBeGreaterThan(0); + expect( + parsedOutput.errors.some(e => e.includes("create_code_scanning_alert 'column' must be a valid positive integer (got: invalid)")) + ).toBe(true); + expect(parsedOutput.errors.some(e => e.includes("create_code_scanning_alert 'ruleIdSuffix' must be a string"))).toBe(true); + expect( + parsedOutput.errors.some(e => + e.includes("create_code_scanning_alert 'ruleIdSuffix' must contain only alphanumeric characters, hyphens, and underscores") + ) + ).toBe(true); }); it("should handle mixed valid and invalid code scanning alert entries", async () => { @@ -1923,19 +1968,33 @@ Line 3"} await eval(`(async () => { ${collectScript} })()`); - // Since there are errors and no valid items, setFailed should be called - expect(mockCore.setFailed).toHaveBeenCalledTimes(1); - const failedMessage = mockCore.setFailed.mock.calls[0][0]; - expect(failedMessage).toContain("create_code_scanning_alert 'line' must be a valid positive integer (got: invalid)"); - expect(failedMessage).toContain("create_code_scanning_alert 'line' must be a valid positive integer (got: 0)"); - expect(failedMessage).toContain("create_code_scanning_alert 'line' must be a valid positive integer (got: -5)"); - expect(failedMessage).toContain("create_code_scanning_alert 'column' must be a valid positive integer (got: abc)"); - expect(failedMessage).toContain("create_code_scanning_alert 'column' must be a valid positive integer (got: 0)"); + // Should show warnings but not fail the step + expect(mockCore.warning).toHaveBeenCalled(); + expect(mockCore.setFailed).not.toHaveBeenCalled(); - // setOutput should not be called because of early return + // setOutput should be called with errors and empty items const setOutputCalls = mockCore.setOutput.mock.calls; const outputCall = setOutputCalls.find(call => call[0] === "output"); - expect(outputCall).toBeUndefined(); + expect(outputCall).toBeDefined(); + + const parsedOutput = JSON.parse(outputCall[1]); + expect(parsedOutput.items).toHaveLength(0); + expect(parsedOutput.errors.length).toBeGreaterThan(0); + expect( + parsedOutput.errors.some(e => e.includes("create_code_scanning_alert 'line' must be a valid positive integer (got: invalid)")) + ).toBe(true); + expect(parsedOutput.errors.some(e => e.includes("create_code_scanning_alert 'line' must be a valid positive integer (got: 0)"))).toBe( + true + ); + expect( + parsedOutput.errors.some(e => e.includes("create_code_scanning_alert 'line' must be a valid positive integer (got: -5)")) + ).toBe(true); + expect( + parsedOutput.errors.some(e => e.includes("create_code_scanning_alert 'column' must be a valid positive integer (got: abc)")) + ).toBe(true); + expect( + parsedOutput.errors.some(e => e.includes("create_code_scanning_alert 'column' must be a valid positive integer (got: 0)")) + ).toBe(true); }); }); @@ -2494,10 +2553,19 @@ Line 3"} await eval(`(async () => { ${collectScript} })()`); - // When there are only errors and no valid items, setFailed is called instead of setOutput - expect(mockCore.setFailed).toHaveBeenCalled(); - const failedCall = mockCore.setFailed.mock.calls[0][0]; - expect(failedCall).toContain("noop requires a 'message' field (string)"); + // Should show warnings but not fail the step + expect(mockCore.warning).toHaveBeenCalled(); + expect(mockCore.setFailed).not.toHaveBeenCalled(); + + // setOutput should be called with errors and empty items + const setOutputCalls = mockCore.setOutput.mock.calls; + const outputCall = setOutputCalls.find(call => call[0] === "output"); + expect(outputCall).toBeDefined(); + + const parsedOutput = JSON.parse(outputCall[1]); + expect(parsedOutput.items).toHaveLength(0); + expect(parsedOutput.errors.length).toBeGreaterThan(0); + expect(parsedOutput.errors.some(e => e.includes("noop requires a 'message' field (string)"))).toBe(true); }); it("should reject noop with non-string message", async () => { @@ -2515,10 +2583,19 @@ Line 3"} await eval(`(async () => { ${collectScript} })()`); - // When there are only errors and no valid items, setFailed is called instead of setOutput - expect(mockCore.setFailed).toHaveBeenCalled(); - const failedCall = mockCore.setFailed.mock.calls[0][0]; - expect(failedCall).toContain("noop requires a 'message' field (string)"); + // Should show warnings but not fail the step + expect(mockCore.warning).toHaveBeenCalled(); + expect(mockCore.setFailed).not.toHaveBeenCalled(); + + // setOutput should be called with errors and empty items + const setOutputCalls = mockCore.setOutput.mock.calls; + const outputCall = setOutputCalls.find(call => call[0] === "output"); + expect(outputCall).toBeDefined(); + + const parsedOutput = JSON.parse(outputCall[1]); + expect(parsedOutput.items).toHaveLength(0); + expect(parsedOutput.errors.length).toBeGreaterThan(0); + expect(parsedOutput.errors.some(e => e.includes("noop requires a 'message' field (string)"))).toBe(true); }); it("should sanitize noop message content", async () => { @@ -2665,15 +2742,19 @@ Line 3"} await eval(`(async () => { ${collectScript} })()`); - // Since there are errors and no valid items, setFailed should be called - expect(mockCore.setFailed).toHaveBeenCalledTimes(1); - const failedMessage = mockCore.setFailed.mock.calls[0][0]; - expect(failedMessage).toContain("assign_to_agent 'issue_number' is required"); + // Should show warnings but not fail the step + expect(mockCore.warning).toHaveBeenCalled(); + expect(mockCore.setFailed).not.toHaveBeenCalled(); - // setOutput should not be called because of early return + // setOutput should be called with errors and empty items const setOutputCalls = mockCore.setOutput.mock.calls; const outputCall = setOutputCalls.find(call => call[0] === "output"); - expect(outputCall).toBeUndefined(); + expect(outputCall).toBeDefined(); + + const parsedOutput = JSON.parse(outputCall[1]); + expect(parsedOutput.items).toHaveLength(0); + expect(parsedOutput.errors.length).toBeGreaterThan(0); + expect(parsedOutput.errors.some(e => e.includes("assign_to_agent 'issue_number' is required"))).toBe(true); }); }); @@ -2791,10 +2872,19 @@ Line 3"} await eval(`(async () => { ${collectScript} })()`); - // When all items fail validation, setFailed is called and output is not set - const setFailedCalls = mockCore.setFailed.mock.calls; - expect(setFailedCalls.length).toBeGreaterThan(0); - expect(setFailedCalls[0][0]).toContain("must be a positive integer or temporary ID"); + // Should show warnings but not fail the step + expect(mockCore.warning).toHaveBeenCalled(); + expect(mockCore.setFailed).not.toHaveBeenCalled(); + + // setOutput should be called with errors and empty items + const setOutputCalls = mockCore.setOutput.mock.calls; + const outputCall = setOutputCalls.find(call => call[0] === "output"); + expect(outputCall).toBeDefined(); + + const parsedOutput = JSON.parse(outputCall[1]); + expect(parsedOutput.items).toHaveLength(0); + expect(parsedOutput.errors.length).toBeGreaterThan(0); + expect(parsedOutput.errors.some(e => e.includes("must be a positive integer or temporary ID"))).toBe(true); }); it("should reject same temporary ID for parent and sub", async () => { @@ -2807,10 +2897,19 @@ Line 3"} await eval(`(async () => { ${collectScript} })()`); - // When all items fail validation, setFailed is called and output is not set - const setFailedCalls = mockCore.setFailed.mock.calls; - expect(setFailedCalls.length).toBeGreaterThan(0); - expect(setFailedCalls[0][0]).toContain("must be different"); + // Should show warnings but not fail the step + expect(mockCore.warning).toHaveBeenCalled(); + expect(mockCore.setFailed).not.toHaveBeenCalled(); + + // setOutput should be called with errors and empty items + const setOutputCalls = mockCore.setOutput.mock.calls; + const outputCall = setOutputCalls.find(call => call[0] === "output"); + expect(outputCall).toBeDefined(); + + const parsedOutput = JSON.parse(outputCall[1]); + expect(parsedOutput.items).toHaveLength(0); + expect(parsedOutput.errors.length).toBeGreaterThan(0); + expect(parsedOutput.errors.some(e => e.includes("must be different"))).toBe(true); }); }); });