diff --git a/.changeset/patch-skip-empty-threat-detection.md b/.changeset/patch-skip-empty-threat-detection.md new file mode 100644 index 0000000000..4de9ea0897 --- /dev/null +++ b/.changeset/patch-skip-empty-threat-detection.md @@ -0,0 +1,5 @@ +--- +"gh-aw": patch +--- + +Skip running threat detection and downstream safe outputs when the agent produces no outputs and no patch, while still allowing cache and repo memory updates when detection is skipped. diff --git a/.github/workflows/agent-performance-analyzer.lock.yml b/.github/workflows/agent-performance-analyzer.lock.yml index ef036e0a9a..4d4844a540 100644 --- a/.github/workflows/agent-performance-analyzer.lock.yml +++ b/.github/workflows/agent-performance-analyzer.lock.yml @@ -1038,7 +1038,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1216,7 +1217,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: write diff --git a/.github/workflows/agent-persona-explorer.lock.yml b/.github/workflows/agent-persona-explorer.lock.yml index 7d30065fe6..36566ee0d9 100644 --- a/.github/workflows/agent-persona-explorer.lock.yml +++ b/.github/workflows/agent-persona-explorer.lock.yml @@ -976,7 +976,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1236,7 +1237,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/agentic-observability-kit.lock.yml b/.github/workflows/agentic-observability-kit.lock.yml index 69c3599ab9..b5235a50cb 100644 --- a/.github/workflows/agentic-observability-kit.lock.yml +++ b/.github/workflows/agentic-observability-kit.lock.yml @@ -987,7 +987,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/archie.lock.yml b/.github/workflows/archie.lock.yml index f152573229..6a7ec4b77f 100644 --- a/.github/workflows/archie.lock.yml +++ b/.github/workflows/archie.lock.yml @@ -961,7 +961,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/artifacts-summary.lock.yml b/.github/workflows/artifacts-summary.lock.yml index e17d3079fd..0d00b28dd3 100644 --- a/.github/workflows/artifacts-summary.lock.yml +++ b/.github/workflows/artifacts-summary.lock.yml @@ -869,7 +869,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/audit-workflows.lock.yml b/.github/workflows/audit-workflows.lock.yml index a6c6f32123..cff491023d 100644 --- a/.github/workflows/audit-workflows.lock.yml +++ b/.github/workflows/audit-workflows.lock.yml @@ -1121,7 +1121,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1281,7 +1282,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: write @@ -1439,7 +1440,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/auto-triage-issues.lock.yml b/.github/workflows/auto-triage-issues.lock.yml index 10a128c234..f8985006bb 100644 --- a/.github/workflows/auto-triage-issues.lock.yml +++ b/.github/workflows/auto-triage-issues.lock.yml @@ -919,7 +919,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/blog-auditor.lock.yml b/.github/workflows/blog-auditor.lock.yml index caa91b3898..72c7a26c7b 100644 --- a/.github/workflows/blog-auditor.lock.yml +++ b/.github/workflows/blog-auditor.lock.yml @@ -989,7 +989,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/brave.lock.yml b/.github/workflows/brave.lock.yml index 1591437a6b..b2283e300b 100644 --- a/.github/workflows/brave.lock.yml +++ b/.github/workflows/brave.lock.yml @@ -953,7 +953,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/breaking-change-checker.lock.yml b/.github/workflows/breaking-change-checker.lock.yml index eb37fb132b..c7f24e678b 100644 --- a/.github/workflows/breaking-change-checker.lock.yml +++ b/.github/workflows/breaking-change-checker.lock.yml @@ -906,7 +906,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/ci-coach.lock.yml b/.github/workflows/ci-coach.lock.yml index 4c86c777a8..b230b2056d 100644 --- a/.github/workflows/ci-coach.lock.yml +++ b/.github/workflows/ci-coach.lock.yml @@ -977,7 +977,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1239,7 +1240,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/ci-doctor.lock.yml b/.github/workflows/ci-doctor.lock.yml index 6e557f39d5..1bcc750452 100644 --- a/.github/workflows/ci-doctor.lock.yml +++ b/.github/workflows/ci-doctor.lock.yml @@ -1120,7 +1120,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1386,7 +1387,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/claude-code-user-docs-review.lock.yml b/.github/workflows/claude-code-user-docs-review.lock.yml index 3b0a669146..989ed82c37 100644 --- a/.github/workflows/claude-code-user-docs-review.lock.yml +++ b/.github/workflows/claude-code-user-docs-review.lock.yml @@ -950,7 +950,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1194,7 +1195,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/cli-consistency-checker.lock.yml b/.github/workflows/cli-consistency-checker.lock.yml index a1c948c92c..a4d0556696 100644 --- a/.github/workflows/cli-consistency-checker.lock.yml +++ b/.github/workflows/cli-consistency-checker.lock.yml @@ -864,7 +864,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/cli-version-checker.lock.yml b/.github/workflows/cli-version-checker.lock.yml index 393510581f..72a4729c77 100644 --- a/.github/workflows/cli-version-checker.lock.yml +++ b/.github/workflows/cli-version-checker.lock.yml @@ -955,7 +955,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1199,7 +1200,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/cloclo.lock.yml b/.github/workflows/cloclo.lock.yml index edb2501f5e..98b3883785 100644 --- a/.github/workflows/cloclo.lock.yml +++ b/.github/workflows/cloclo.lock.yml @@ -1294,7 +1294,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1617,7 +1618,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/code-scanning-fixer.lock.yml b/.github/workflows/code-scanning-fixer.lock.yml index 4caa38c7dd..0844462ac3 100644 --- a/.github/workflows/code-scanning-fixer.lock.yml +++ b/.github/workflows/code-scanning-fixer.lock.yml @@ -965,7 +965,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1156,7 +1157,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: write @@ -1345,7 +1346,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/code-simplifier.lock.yml b/.github/workflows/code-simplifier.lock.yml index 4034efebf5..3af157baee 100644 --- a/.github/workflows/code-simplifier.lock.yml +++ b/.github/workflows/code-simplifier.lock.yml @@ -914,7 +914,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/commit-changes-analyzer.lock.yml b/.github/workflows/commit-changes-analyzer.lock.yml index f29b224e85..11fbdd3c9c 100644 --- a/.github/workflows/commit-changes-analyzer.lock.yml +++ b/.github/workflows/commit-changes-analyzer.lock.yml @@ -919,7 +919,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/constraint-solving-potd.lock.yml b/.github/workflows/constraint-solving-potd.lock.yml index d24de60da8..2ef7ca385c 100644 --- a/.github/workflows/constraint-solving-potd.lock.yml +++ b/.github/workflows/constraint-solving-potd.lock.yml @@ -871,7 +871,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1099,7 +1100,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/contribution-check.lock.yml b/.github/workflows/contribution-check.lock.yml index b5a93939e8..1be81f5049 100644 --- a/.github/workflows/contribution-check.lock.yml +++ b/.github/workflows/contribution-check.lock.yml @@ -914,7 +914,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/copilot-agent-analysis.lock.yml b/.github/workflows/copilot-agent-analysis.lock.yml index 8b8ebd3efb..b59edefa27 100644 --- a/.github/workflows/copilot-agent-analysis.lock.yml +++ b/.github/workflows/copilot-agent-analysis.lock.yml @@ -1001,7 +1001,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1161,7 +1162,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: write @@ -1318,7 +1319,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/copilot-cli-deep-research.lock.yml b/.github/workflows/copilot-cli-deep-research.lock.yml index fc422fa4c0..af9609ba48 100644 --- a/.github/workflows/copilot-cli-deep-research.lock.yml +++ b/.github/workflows/copilot-cli-deep-research.lock.yml @@ -930,7 +930,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1076,7 +1077,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: write diff --git a/.github/workflows/copilot-pr-merged-report.lock.yml b/.github/workflows/copilot-pr-merged-report.lock.yml index 68d2bd046c..d633f7c52a 100644 --- a/.github/workflows/copilot-pr-merged-report.lock.yml +++ b/.github/workflows/copilot-pr-merged-report.lock.yml @@ -1046,7 +1046,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1275,7 +1276,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/copilot-pr-nlp-analysis.lock.yml b/.github/workflows/copilot-pr-nlp-analysis.lock.yml index 8ad20d7c7c..bf7df9e63d 100644 --- a/.github/workflows/copilot-pr-nlp-analysis.lock.yml +++ b/.github/workflows/copilot-pr-nlp-analysis.lock.yml @@ -1014,7 +1014,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1160,7 +1161,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: write @@ -1317,7 +1318,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/copilot-pr-prompt-analysis.lock.yml b/.github/workflows/copilot-pr-prompt-analysis.lock.yml index 88ff5024e1..c88f09137d 100644 --- a/.github/workflows/copilot-pr-prompt-analysis.lock.yml +++ b/.github/workflows/copilot-pr-prompt-analysis.lock.yml @@ -950,7 +950,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1096,7 +1097,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: write @@ -1253,7 +1254,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/copilot-session-insights.lock.yml b/.github/workflows/copilot-session-insights.lock.yml index 81cc17fa5c..e06ad31ac7 100644 --- a/.github/workflows/copilot-session-insights.lock.yml +++ b/.github/workflows/copilot-session-insights.lock.yml @@ -1064,7 +1064,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1224,7 +1225,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: write @@ -1381,7 +1382,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/craft.lock.yml b/.github/workflows/craft.lock.yml index ce48125c94..7378792c17 100644 --- a/.github/workflows/craft.lock.yml +++ b/.github/workflows/craft.lock.yml @@ -954,7 +954,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/daily-architecture-diagram.lock.yml b/.github/workflows/daily-architecture-diagram.lock.yml index 62439b39a9..148f654deb 100644 --- a/.github/workflows/daily-architecture-diagram.lock.yml +++ b/.github/workflows/daily-architecture-diagram.lock.yml @@ -950,7 +950,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1213,7 +1214,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/daily-assign-issue-to-user.lock.yml b/.github/workflows/daily-assign-issue-to-user.lock.yml index 20770a7e6c..69cdaa235b 100644 --- a/.github/workflows/daily-assign-issue-to-user.lock.yml +++ b/.github/workflows/daily-assign-issue-to-user.lock.yml @@ -870,7 +870,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/daily-choice-test.lock.yml b/.github/workflows/daily-choice-test.lock.yml index a0d47869c2..c45a62b5ed 100644 --- a/.github/workflows/daily-choice-test.lock.yml +++ b/.github/workflows/daily-choice-test.lock.yml @@ -910,7 +910,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/daily-cli-performance.lock.yml b/.github/workflows/daily-cli-performance.lock.yml index 10215c58c5..f3d842130d 100644 --- a/.github/workflows/daily-cli-performance.lock.yml +++ b/.github/workflows/daily-cli-performance.lock.yml @@ -1122,7 +1122,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1322,7 +1323,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: write diff --git a/.github/workflows/daily-cli-tools-tester.lock.yml b/.github/workflows/daily-cli-tools-tester.lock.yml index 2e94233c9e..03edf04b32 100644 --- a/.github/workflows/daily-cli-tools-tester.lock.yml +++ b/.github/workflows/daily-cli-tools-tester.lock.yml @@ -953,7 +953,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/daily-code-metrics.lock.yml b/.github/workflows/daily-code-metrics.lock.yml index 0e0a2d6fa1..160f4a440d 100644 --- a/.github/workflows/daily-code-metrics.lock.yml +++ b/.github/workflows/daily-code-metrics.lock.yml @@ -1042,7 +1042,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1202,7 +1203,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: write @@ -1360,7 +1361,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/daily-community-attribution.lock.yml b/.github/workflows/daily-community-attribution.lock.yml index 18b71435f4..f8aac5d747 100644 --- a/.github/workflows/daily-community-attribution.lock.yml +++ b/.github/workflows/daily-community-attribution.lock.yml @@ -977,7 +977,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1122,7 +1123,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: write diff --git a/.github/workflows/daily-compiler-quality.lock.yml b/.github/workflows/daily-compiler-quality.lock.yml index b515b4cfe3..4ef84be3d7 100644 --- a/.github/workflows/daily-compiler-quality.lock.yml +++ b/.github/workflows/daily-compiler-quality.lock.yml @@ -935,7 +935,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1165,7 +1166,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/daily-copilot-token-report.lock.yml b/.github/workflows/daily-copilot-token-report.lock.yml index b811226ac5..057ba5d550 100644 --- a/.github/workflows/daily-copilot-token-report.lock.yml +++ b/.github/workflows/daily-copilot-token-report.lock.yml @@ -1022,7 +1022,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1168,7 +1169,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: write @@ -1326,7 +1327,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/daily-doc-healer.lock.yml b/.github/workflows/daily-doc-healer.lock.yml index 31a2589b21..97ce9c28d0 100644 --- a/.github/workflows/daily-doc-healer.lock.yml +++ b/.github/workflows/daily-doc-healer.lock.yml @@ -1099,7 +1099,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1463,7 +1464,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/daily-doc-updater.lock.yml b/.github/workflows/daily-doc-updater.lock.yml index d13bd6b154..546e5d6e17 100644 --- a/.github/workflows/daily-doc-updater.lock.yml +++ b/.github/workflows/daily-doc-updater.lock.yml @@ -1060,7 +1060,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1405,7 +1406,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/daily-fact.lock.yml b/.github/workflows/daily-fact.lock.yml index c140f6c665..13ff5bc7b0 100644 --- a/.github/workflows/daily-fact.lock.yml +++ b/.github/workflows/daily-fact.lock.yml @@ -901,7 +901,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest outputs: detection_conclusion: ${{ steps.detection_conclusion.outputs.conclusion }} diff --git a/.github/workflows/daily-file-diet.lock.yml b/.github/workflows/daily-file-diet.lock.yml index 91f89dd7b1..a7e819e339 100644 --- a/.github/workflows/daily-file-diet.lock.yml +++ b/.github/workflows/daily-file-diet.lock.yml @@ -928,7 +928,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/daily-firewall-report.lock.yml b/.github/workflows/daily-firewall-report.lock.yml index 56d199639b..7fc66e7223 100644 --- a/.github/workflows/daily-firewall-report.lock.yml +++ b/.github/workflows/daily-firewall-report.lock.yml @@ -1032,7 +1032,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1261,7 +1262,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/daily-function-namer.lock.yml b/.github/workflows/daily-function-namer.lock.yml index e5ebc80922..a91cd0ce8b 100644 --- a/.github/workflows/daily-function-namer.lock.yml +++ b/.github/workflows/daily-function-namer.lock.yml @@ -979,7 +979,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1224,7 +1225,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/daily-integrity-analysis.lock.yml b/.github/workflows/daily-integrity-analysis.lock.yml index 4da576e6c9..cfb3279ba0 100644 --- a/.github/workflows/daily-integrity-analysis.lock.yml +++ b/.github/workflows/daily-integrity-analysis.lock.yml @@ -1037,7 +1037,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1266,7 +1267,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/daily-issues-report.lock.yml b/.github/workflows/daily-issues-report.lock.yml index aff08b22f7..9b4d98fa83 100644 --- a/.github/workflows/daily-issues-report.lock.yml +++ b/.github/workflows/daily-issues-report.lock.yml @@ -1023,7 +1023,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1281,7 +1282,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/daily-mcp-concurrency-analysis.lock.yml b/.github/workflows/daily-mcp-concurrency-analysis.lock.yml index fcd04809c2..9028fcd527 100644 --- a/.github/workflows/daily-mcp-concurrency-analysis.lock.yml +++ b/.github/workflows/daily-mcp-concurrency-analysis.lock.yml @@ -955,7 +955,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1200,7 +1201,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/daily-multi-device-docs-tester.lock.yml b/.github/workflows/daily-multi-device-docs-tester.lock.yml index 0e6f795d99..127281a835 100644 --- a/.github/workflows/daily-multi-device-docs-tester.lock.yml +++ b/.github/workflows/daily-multi-device-docs-tester.lock.yml @@ -1035,7 +1035,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/daily-news.lock.yml b/.github/workflows/daily-news.lock.yml index acb6d729e5..c1a0c447e2 100644 --- a/.github/workflows/daily-news.lock.yml +++ b/.github/workflows/daily-news.lock.yml @@ -1090,7 +1090,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1236,7 +1237,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: write @@ -1394,7 +1395,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/daily-observability-report.lock.yml b/.github/workflows/daily-observability-report.lock.yml index e5c09ae49d..0cabd4494d 100644 --- a/.github/workflows/daily-observability-report.lock.yml +++ b/.github/workflows/daily-observability-report.lock.yml @@ -996,7 +996,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/daily-performance-summary.lock.yml b/.github/workflows/daily-performance-summary.lock.yml index 76f8b8dced..7e2bc709dc 100644 --- a/.github/workflows/daily-performance-summary.lock.yml +++ b/.github/workflows/daily-performance-summary.lock.yml @@ -1474,7 +1474,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1703,7 +1704,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/daily-regulatory.lock.yml b/.github/workflows/daily-regulatory.lock.yml index 2c5950f5e3..d3794cc01b 100644 --- a/.github/workflows/daily-regulatory.lock.yml +++ b/.github/workflows/daily-regulatory.lock.yml @@ -1395,7 +1395,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/daily-rendering-scripts-verifier.lock.yml b/.github/workflows/daily-rendering-scripts-verifier.lock.yml index 96f8ba2621..05d413ac28 100644 --- a/.github/workflows/daily-rendering-scripts-verifier.lock.yml +++ b/.github/workflows/daily-rendering-scripts-verifier.lock.yml @@ -1089,7 +1089,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1410,7 +1411,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/daily-repo-chronicle.lock.yml b/.github/workflows/daily-repo-chronicle.lock.yml index ec51f322fc..d595dca6c6 100644 --- a/.github/workflows/daily-repo-chronicle.lock.yml +++ b/.github/workflows/daily-repo-chronicle.lock.yml @@ -953,7 +953,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1183,7 +1184,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/daily-safe-output-integrator.lock.yml b/.github/workflows/daily-safe-output-integrator.lock.yml index 2a63327468..1a70660227 100644 --- a/.github/workflows/daily-safe-output-integrator.lock.yml +++ b/.github/workflows/daily-safe-output-integrator.lock.yml @@ -933,7 +933,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/daily-safe-output-optimizer.lock.yml b/.github/workflows/daily-safe-output-optimizer.lock.yml index f983ef80f7..2464e2596a 100644 --- a/.github/workflows/daily-safe-output-optimizer.lock.yml +++ b/.github/workflows/daily-safe-output-optimizer.lock.yml @@ -1060,7 +1060,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1349,7 +1350,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/daily-safe-outputs-conformance.lock.yml b/.github/workflows/daily-safe-outputs-conformance.lock.yml index be11e40a72..0ca170fbf7 100644 --- a/.github/workflows/daily-safe-outputs-conformance.lock.yml +++ b/.github/workflows/daily-safe-outputs-conformance.lock.yml @@ -922,7 +922,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/daily-secrets-analysis.lock.yml b/.github/workflows/daily-secrets-analysis.lock.yml index 75714b1448..d9597945ee 100644 --- a/.github/workflows/daily-secrets-analysis.lock.yml +++ b/.github/workflows/daily-secrets-analysis.lock.yml @@ -900,7 +900,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/daily-security-red-team.lock.yml b/.github/workflows/daily-security-red-team.lock.yml index 5bcac9a89c..65f0358f50 100644 --- a/.github/workflows/daily-security-red-team.lock.yml +++ b/.github/workflows/daily-security-red-team.lock.yml @@ -926,7 +926,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/daily-semgrep-scan.lock.yml b/.github/workflows/daily-semgrep-scan.lock.yml index aa3abb4c41..f3e15c22e7 100644 --- a/.github/workflows/daily-semgrep-scan.lock.yml +++ b/.github/workflows/daily-semgrep-scan.lock.yml @@ -902,7 +902,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/daily-syntax-error-quality.lock.yml b/.github/workflows/daily-syntax-error-quality.lock.yml index 0cb048f8fb..4b9d67f153 100644 --- a/.github/workflows/daily-syntax-error-quality.lock.yml +++ b/.github/workflows/daily-syntax-error-quality.lock.yml @@ -909,7 +909,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/daily-team-evolution-insights.lock.yml b/.github/workflows/daily-team-evolution-insights.lock.yml index 4bf5108e31..766822660e 100644 --- a/.github/workflows/daily-team-evolution-insights.lock.yml +++ b/.github/workflows/daily-team-evolution-insights.lock.yml @@ -921,7 +921,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/daily-team-status.lock.yml b/.github/workflows/daily-team-status.lock.yml index 37ec144049..93893e798e 100644 --- a/.github/workflows/daily-team-status.lock.yml +++ b/.github/workflows/daily-team-status.lock.yml @@ -898,7 +898,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/daily-testify-uber-super-expert.lock.yml b/.github/workflows/daily-testify-uber-super-expert.lock.yml index 9f4ee880d2..45b94a0723 100644 --- a/.github/workflows/daily-testify-uber-super-expert.lock.yml +++ b/.github/workflows/daily-testify-uber-super-expert.lock.yml @@ -966,7 +966,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1157,7 +1158,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: write diff --git a/.github/workflows/daily-workflow-updater.lock.yml b/.github/workflows/daily-workflow-updater.lock.yml index 07e74f2b35..d1b1c43f3c 100644 --- a/.github/workflows/daily-workflow-updater.lock.yml +++ b/.github/workflows/daily-workflow-updater.lock.yml @@ -890,7 +890,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/dead-code-remover.lock.yml b/.github/workflows/dead-code-remover.lock.yml index 6fdbc02a0f..c99174c656 100644 --- a/.github/workflows/dead-code-remover.lock.yml +++ b/.github/workflows/dead-code-remover.lock.yml @@ -937,7 +937,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1243,7 +1244,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/deep-report.lock.yml b/.github/workflows/deep-report.lock.yml index 922a3ff9e8..1e4e4dcdfb 100644 --- a/.github/workflows/deep-report.lock.yml +++ b/.github/workflows/deep-report.lock.yml @@ -1113,7 +1113,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1255,7 +1256,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: write @@ -1415,7 +1416,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/delight.lock.yml b/.github/workflows/delight.lock.yml index 854fa462f3..e04f22c64c 100644 --- a/.github/workflows/delight.lock.yml +++ b/.github/workflows/delight.lock.yml @@ -975,7 +975,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1121,7 +1122,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: write diff --git a/.github/workflows/dependabot-burner.lock.yml b/.github/workflows/dependabot-burner.lock.yml index 6d2662b1be..9e46bd51a2 100644 --- a/.github/workflows/dependabot-burner.lock.yml +++ b/.github/workflows/dependabot-burner.lock.yml @@ -878,7 +878,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/dependabot-go-checker.lock.yml b/.github/workflows/dependabot-go-checker.lock.yml index 80872aa232..ce9c75f99e 100644 --- a/.github/workflows/dependabot-go-checker.lock.yml +++ b/.github/workflows/dependabot-go-checker.lock.yml @@ -896,7 +896,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/dev-hawk.lock.yml b/.github/workflows/dev-hawk.lock.yml index 92c578fd9f..a45141cf61 100644 --- a/.github/workflows/dev-hawk.lock.yml +++ b/.github/workflows/dev-hawk.lock.yml @@ -972,7 +972,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/dev.lock.yml b/.github/workflows/dev.lock.yml index c4a899b577..c4dc18f8c2 100644 --- a/.github/workflows/dev.lock.yml +++ b/.github/workflows/dev.lock.yml @@ -998,7 +998,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/developer-docs-consolidator.lock.yml b/.github/workflows/developer-docs-consolidator.lock.yml index ae4342fe6c..f032932e41 100644 --- a/.github/workflows/developer-docs-consolidator.lock.yml +++ b/.github/workflows/developer-docs-consolidator.lock.yml @@ -1154,7 +1154,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1383,7 +1384,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: write @@ -1573,7 +1574,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/dictation-prompt.lock.yml b/.github/workflows/dictation-prompt.lock.yml index e4e4dce232..f3550b1a95 100644 --- a/.github/workflows/dictation-prompt.lock.yml +++ b/.github/workflows/dictation-prompt.lock.yml @@ -954,7 +954,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/discussion-task-miner.lock.yml b/.github/workflows/discussion-task-miner.lock.yml index 5ee2667dfa..753bb56278 100644 --- a/.github/workflows/discussion-task-miner.lock.yml +++ b/.github/workflows/discussion-task-miner.lock.yml @@ -960,7 +960,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1106,7 +1107,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: write diff --git a/.github/workflows/docs-noob-tester.lock.yml b/.github/workflows/docs-noob-tester.lock.yml index 0c04c2ec6f..528be60100 100644 --- a/.github/workflows/docs-noob-tester.lock.yml +++ b/.github/workflows/docs-noob-tester.lock.yml @@ -921,7 +921,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/draft-pr-cleanup.lock.yml b/.github/workflows/draft-pr-cleanup.lock.yml index ef922690e5..4bb41e668b 100644 --- a/.github/workflows/draft-pr-cleanup.lock.yml +++ b/.github/workflows/draft-pr-cleanup.lock.yml @@ -906,7 +906,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/duplicate-code-detector.lock.yml b/.github/workflows/duplicate-code-detector.lock.yml index a3d0a2089f..e4c2023176 100644 --- a/.github/workflows/duplicate-code-detector.lock.yml +++ b/.github/workflows/duplicate-code-detector.lock.yml @@ -933,7 +933,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/example-workflow-analyzer.lock.yml b/.github/workflows/example-workflow-analyzer.lock.yml index db5c912533..c9115ca03e 100644 --- a/.github/workflows/example-workflow-analyzer.lock.yml +++ b/.github/workflows/example-workflow-analyzer.lock.yml @@ -988,7 +988,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/firewall-escape.lock.yml b/.github/workflows/firewall-escape.lock.yml index e41eaeed0f..9f412cab34 100644 --- a/.github/workflows/firewall-escape.lock.yml +++ b/.github/workflows/firewall-escape.lock.yml @@ -950,7 +950,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1169,7 +1170,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: write @@ -1326,7 +1327,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/functional-pragmatist.lock.yml b/.github/workflows/functional-pragmatist.lock.yml index d753e6ee1f..5e4d3c4ac6 100644 --- a/.github/workflows/functional-pragmatist.lock.yml +++ b/.github/workflows/functional-pragmatist.lock.yml @@ -904,7 +904,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/github-mcp-structural-analysis.lock.yml b/.github/workflows/github-mcp-structural-analysis.lock.yml index 2a3f818617..cc3a675a1a 100644 --- a/.github/workflows/github-mcp-structural-analysis.lock.yml +++ b/.github/workflows/github-mcp-structural-analysis.lock.yml @@ -1000,7 +1000,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1243,7 +1244,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/github-mcp-tools-report.lock.yml b/.github/workflows/github-mcp-tools-report.lock.yml index 14593253cb..6431d8d8ad 100644 --- a/.github/workflows/github-mcp-tools-report.lock.yml +++ b/.github/workflows/github-mcp-tools-report.lock.yml @@ -1002,7 +1002,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1278,7 +1279,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/github-remote-mcp-auth-test.lock.yml b/.github/workflows/github-remote-mcp-auth-test.lock.yml index 9b7e83ea02..edb341e648 100644 --- a/.github/workflows/github-remote-mcp-auth-test.lock.yml +++ b/.github/workflows/github-remote-mcp-auth-test.lock.yml @@ -879,7 +879,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/glossary-maintainer.lock.yml b/.github/workflows/glossary-maintainer.lock.yml index 38b65db75b..1003119814 100644 --- a/.github/workflows/glossary-maintainer.lock.yml +++ b/.github/workflows/glossary-maintainer.lock.yml @@ -1057,7 +1057,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1271,7 +1272,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: write @@ -1460,7 +1461,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/go-fan.lock.yml b/.github/workflows/go-fan.lock.yml index a89634dd3d..b54990ffdb 100644 --- a/.github/workflows/go-fan.lock.yml +++ b/.github/workflows/go-fan.lock.yml @@ -993,7 +993,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1237,7 +1238,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/go-logger.lock.yml b/.github/workflows/go-logger.lock.yml index ff95d8b353..6a8f6a8d91 100644 --- a/.github/workflows/go-logger.lock.yml +++ b/.github/workflows/go-logger.lock.yml @@ -1163,7 +1163,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1438,7 +1439,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/go-pattern-detector.lock.yml b/.github/workflows/go-pattern-detector.lock.yml index 4e65d975c3..0d18cd5fa3 100644 --- a/.github/workflows/go-pattern-detector.lock.yml +++ b/.github/workflows/go-pattern-detector.lock.yml @@ -988,7 +988,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/gpclean.lock.yml b/.github/workflows/gpclean.lock.yml index 9ad937167e..34e1aefe40 100644 --- a/.github/workflows/gpclean.lock.yml +++ b/.github/workflows/gpclean.lock.yml @@ -906,7 +906,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1135,7 +1136,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/grumpy-reviewer.lock.yml b/.github/workflows/grumpy-reviewer.lock.yml index f8eaa9350f..a579f18186 100644 --- a/.github/workflows/grumpy-reviewer.lock.yml +++ b/.github/workflows/grumpy-reviewer.lock.yml @@ -1001,7 +1001,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1270,7 +1271,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/hourly-ci-cleaner.lock.yml b/.github/workflows/hourly-ci-cleaner.lock.yml index 6abbc3d6a2..278abcae98 100644 --- a/.github/workflows/hourly-ci-cleaner.lock.yml +++ b/.github/workflows/hourly-ci-cleaner.lock.yml @@ -1013,7 +1013,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/instructions-janitor.lock.yml b/.github/workflows/instructions-janitor.lock.yml index 95db8e401a..1618c1f284 100644 --- a/.github/workflows/instructions-janitor.lock.yml +++ b/.github/workflows/instructions-janitor.lock.yml @@ -984,7 +984,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1259,7 +1260,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/issue-arborist.lock.yml b/.github/workflows/issue-arborist.lock.yml index 1ee651c0bb..b1e73bafac 100644 --- a/.github/workflows/issue-arborist.lock.yml +++ b/.github/workflows/issue-arborist.lock.yml @@ -944,7 +944,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/issue-monster.lock.yml b/.github/workflows/issue-monster.lock.yml index 83770386bd..d8a86e6136 100644 --- a/.github/workflows/issue-monster.lock.yml +++ b/.github/workflows/issue-monster.lock.yml @@ -1266,7 +1266,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/issue-triage-agent.lock.yml b/.github/workflows/issue-triage-agent.lock.yml index f19c093ac2..852b471da3 100644 --- a/.github/workflows/issue-triage-agent.lock.yml +++ b/.github/workflows/issue-triage-agent.lock.yml @@ -862,7 +862,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/jsweep.lock.yml b/.github/workflows/jsweep.lock.yml index a0fc3094ba..f088a56fca 100644 --- a/.github/workflows/jsweep.lock.yml +++ b/.github/workflows/jsweep.lock.yml @@ -947,7 +947,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1208,7 +1209,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/layout-spec-maintainer.lock.yml b/.github/workflows/layout-spec-maintainer.lock.yml index 33211da98a..55004e3857 100644 --- a/.github/workflows/layout-spec-maintainer.lock.yml +++ b/.github/workflows/layout-spec-maintainer.lock.yml @@ -933,7 +933,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/lockfile-stats.lock.yml b/.github/workflows/lockfile-stats.lock.yml index e0db7c4be0..ad0c9a7f2b 100644 --- a/.github/workflows/lockfile-stats.lock.yml +++ b/.github/workflows/lockfile-stats.lock.yml @@ -942,7 +942,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1185,7 +1186,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/mcp-inspector.lock.yml b/.github/workflows/mcp-inspector.lock.yml index 37fcfd40ad..3b4b17c468 100644 --- a/.github/workflows/mcp-inspector.lock.yml +++ b/.github/workflows/mcp-inspector.lock.yml @@ -1393,7 +1393,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1898,7 +1899,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/mergefest.lock.yml b/.github/workflows/mergefest.lock.yml index bef0d254b5..90b00a69fa 100644 --- a/.github/workflows/mergefest.lock.yml +++ b/.github/workflows/mergefest.lock.yml @@ -968,7 +968,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/org-health-report.lock.yml b/.github/workflows/org-health-report.lock.yml index 64f56cce04..1e8d8b3f0d 100644 --- a/.github/workflows/org-health-report.lock.yml +++ b/.github/workflows/org-health-report.lock.yml @@ -956,7 +956,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1184,7 +1185,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/pdf-summary.lock.yml b/.github/workflows/pdf-summary.lock.yml index 68939d1ec1..62fb1e7f0b 100644 --- a/.github/workflows/pdf-summary.lock.yml +++ b/.github/workflows/pdf-summary.lock.yml @@ -1037,7 +1037,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1313,7 +1314,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/plan.lock.yml b/.github/workflows/plan.lock.yml index 2335e174ed..6a8d3a89dc 100644 --- a/.github/workflows/plan.lock.yml +++ b/.github/workflows/plan.lock.yml @@ -972,7 +972,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/poem-bot.lock.yml b/.github/workflows/poem-bot.lock.yml index d755a8fa5a..bf7787e5cd 100644 --- a/.github/workflows/poem-bot.lock.yml +++ b/.github/workflows/poem-bot.lock.yml @@ -1338,7 +1338,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1626,7 +1627,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/portfolio-analyst.lock.yml b/.github/workflows/portfolio-analyst.lock.yml index 223c2a3d3b..e304ba1734 100644 --- a/.github/workflows/portfolio-analyst.lock.yml +++ b/.github/workflows/portfolio-analyst.lock.yml @@ -1043,7 +1043,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1272,7 +1273,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/pr-nitpick-reviewer.lock.yml b/.github/workflows/pr-nitpick-reviewer.lock.yml index da3bce7f44..1566d7062d 100644 --- a/.github/workflows/pr-nitpick-reviewer.lock.yml +++ b/.github/workflows/pr-nitpick-reviewer.lock.yml @@ -1036,7 +1036,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1310,7 +1311,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/pr-triage-agent.lock.yml b/.github/workflows/pr-triage-agent.lock.yml index ae0c984393..003097aa19 100644 --- a/.github/workflows/pr-triage-agent.lock.yml +++ b/.github/workflows/pr-triage-agent.lock.yml @@ -947,7 +947,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1092,7 +1093,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: write diff --git a/.github/workflows/prompt-clustering-analysis.lock.yml b/.github/workflows/prompt-clustering-analysis.lock.yml index ab15c3965c..2db52c310c 100644 --- a/.github/workflows/prompt-clustering-analysis.lock.yml +++ b/.github/workflows/prompt-clustering-analysis.lock.yml @@ -1084,7 +1084,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1327,7 +1328,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/python-data-charts.lock.yml b/.github/workflows/python-data-charts.lock.yml index dd3c162364..1c437c9d60 100644 --- a/.github/workflows/python-data-charts.lock.yml +++ b/.github/workflows/python-data-charts.lock.yml @@ -1027,7 +1027,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1255,7 +1256,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/q.lock.yml b/.github/workflows/q.lock.yml index 48dc06aefd..e011af070c 100644 --- a/.github/workflows/q.lock.yml +++ b/.github/workflows/q.lock.yml @@ -1159,7 +1159,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1467,7 +1468,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/refiner.lock.yml b/.github/workflows/refiner.lock.yml index 425f1ab633..a4482e03fd 100644 --- a/.github/workflows/refiner.lock.yml +++ b/.github/workflows/refiner.lock.yml @@ -941,7 +941,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/release.lock.yml b/.github/workflows/release.lock.yml index a97aaabeea..71e9415972 100644 --- a/.github/workflows/release.lock.yml +++ b/.github/workflows/release.lock.yml @@ -1034,7 +1034,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/repo-audit-analyzer.lock.yml b/.github/workflows/repo-audit-analyzer.lock.yml index 4b137f7954..7d42ae4b69 100644 --- a/.github/workflows/repo-audit-analyzer.lock.yml +++ b/.github/workflows/repo-audit-analyzer.lock.yml @@ -904,7 +904,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1132,7 +1133,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/repo-tree-map.lock.yml b/.github/workflows/repo-tree-map.lock.yml index cbf6296ea4..e8e14fdad6 100644 --- a/.github/workflows/repo-tree-map.lock.yml +++ b/.github/workflows/repo-tree-map.lock.yml @@ -871,7 +871,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/repository-quality-improver.lock.yml b/.github/workflows/repository-quality-improver.lock.yml index 16719303e9..49d449b3f1 100644 --- a/.github/workflows/repository-quality-improver.lock.yml +++ b/.github/workflows/repository-quality-improver.lock.yml @@ -916,7 +916,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1144,7 +1145,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/research.lock.yml b/.github/workflows/research.lock.yml index c91435974a..71b41f78ea 100644 --- a/.github/workflows/research.lock.yml +++ b/.github/workflows/research.lock.yml @@ -903,7 +903,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/safe-output-health.lock.yml b/.github/workflows/safe-output-health.lock.yml index 81650a2819..b0dffa81c6 100644 --- a/.github/workflows/safe-output-health.lock.yml +++ b/.github/workflows/safe-output-health.lock.yml @@ -1047,7 +1047,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1290,7 +1291,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/schema-consistency-checker.lock.yml b/.github/workflows/schema-consistency-checker.lock.yml index a74d562330..8eeec81422 100644 --- a/.github/workflows/schema-consistency-checker.lock.yml +++ b/.github/workflows/schema-consistency-checker.lock.yml @@ -942,7 +942,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1185,7 +1186,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/schema-feature-coverage.lock.yml b/.github/workflows/schema-feature-coverage.lock.yml index 611985df81..765be68817 100644 --- a/.github/workflows/schema-feature-coverage.lock.yml +++ b/.github/workflows/schema-feature-coverage.lock.yml @@ -899,7 +899,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/scout.lock.yml b/.github/workflows/scout.lock.yml index 495988d667..983becaad8 100644 --- a/.github/workflows/scout.lock.yml +++ b/.github/workflows/scout.lock.yml @@ -1209,7 +1209,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1500,7 +1501,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/security-compliance.lock.yml b/.github/workflows/security-compliance.lock.yml index ae24c66623..d3fa3bc495 100644 --- a/.github/workflows/security-compliance.lock.yml +++ b/.github/workflows/security-compliance.lock.yml @@ -924,7 +924,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1069,7 +1070,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: write diff --git a/.github/workflows/security-review.lock.yml b/.github/workflows/security-review.lock.yml index 55e66485e7..095f375ac1 100644 --- a/.github/workflows/security-review.lock.yml +++ b/.github/workflows/security-review.lock.yml @@ -1078,7 +1078,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1350,7 +1351,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/semantic-function-refactor.lock.yml b/.github/workflows/semantic-function-refactor.lock.yml index 109be24f83..c6362cc65a 100644 --- a/.github/workflows/semantic-function-refactor.lock.yml +++ b/.github/workflows/semantic-function-refactor.lock.yml @@ -984,7 +984,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/sergo.lock.yml b/.github/workflows/sergo.lock.yml index de79d829db..0d0db422cb 100644 --- a/.github/workflows/sergo.lock.yml +++ b/.github/workflows/sergo.lock.yml @@ -992,7 +992,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1236,7 +1237,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/slide-deck-maintainer.lock.yml b/.github/workflows/slide-deck-maintainer.lock.yml index 4f02a0b33b..7c30523f2a 100644 --- a/.github/workflows/slide-deck-maintainer.lock.yml +++ b/.github/workflows/slide-deck-maintainer.lock.yml @@ -1013,7 +1013,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1319,7 +1320,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/smoke-agent-all-merged.lock.yml b/.github/workflows/smoke-agent-all-merged.lock.yml index c3479ecaea..5abaa0782f 100644 --- a/.github/workflows/smoke-agent-all-merged.lock.yml +++ b/.github/workflows/smoke-agent-all-merged.lock.yml @@ -911,7 +911,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/smoke-agent-all-none.lock.yml b/.github/workflows/smoke-agent-all-none.lock.yml index 5100d99607..724d801cff 100644 --- a/.github/workflows/smoke-agent-all-none.lock.yml +++ b/.github/workflows/smoke-agent-all-none.lock.yml @@ -911,7 +911,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/smoke-agent-public-approved.lock.yml b/.github/workflows/smoke-agent-public-approved.lock.yml index def6f49c7e..66599176d1 100644 --- a/.github/workflows/smoke-agent-public-approved.lock.yml +++ b/.github/workflows/smoke-agent-public-approved.lock.yml @@ -939,7 +939,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/smoke-agent-public-none.lock.yml b/.github/workflows/smoke-agent-public-none.lock.yml index 41c57adde7..a0802faea1 100644 --- a/.github/workflows/smoke-agent-public-none.lock.yml +++ b/.github/workflows/smoke-agent-public-none.lock.yml @@ -911,7 +911,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/smoke-agent-scoped-approved.lock.yml b/.github/workflows/smoke-agent-scoped-approved.lock.yml index 1b23063570..01f0884ffa 100644 --- a/.github/workflows/smoke-agent-scoped-approved.lock.yml +++ b/.github/workflows/smoke-agent-scoped-approved.lock.yml @@ -915,7 +915,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/smoke-call-workflow.lock.yml b/.github/workflows/smoke-call-workflow.lock.yml index f1a261c447..0544a9ee66 100644 --- a/.github/workflows/smoke-call-workflow.lock.yml +++ b/.github/workflows/smoke-call-workflow.lock.yml @@ -886,7 +886,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/smoke-claude.lock.yml b/.github/workflows/smoke-claude.lock.yml index 85dae88ecc..4e7906f700 100644 --- a/.github/workflows/smoke-claude.lock.yml +++ b/.github/workflows/smoke-claude.lock.yml @@ -2403,7 +2403,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -2714,7 +2715,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/smoke-codex.lock.yml b/.github/workflows/smoke-codex.lock.yml index b314801b5b..b0ea68bf8b 100644 --- a/.github/workflows/smoke-codex.lock.yml +++ b/.github/workflows/smoke-codex.lock.yml @@ -1443,7 +1443,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1790,7 +1791,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/smoke-copilot-arm.lock.yml b/.github/workflows/smoke-copilot-arm.lock.yml index 8965afa2df..bb735a9c00 100644 --- a/.github/workflows/smoke-copilot-arm.lock.yml +++ b/.github/workflows/smoke-copilot-arm.lock.yml @@ -1816,7 +1816,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -2125,7 +2126,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/smoke-copilot.lock.yml b/.github/workflows/smoke-copilot.lock.yml index 5963bd34c2..c47a7513a8 100644 --- a/.github/workflows/smoke-copilot.lock.yml +++ b/.github/workflows/smoke-copilot.lock.yml @@ -1864,7 +1864,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -2171,7 +2172,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/smoke-create-cross-repo-pr.lock.yml b/.github/workflows/smoke-create-cross-repo-pr.lock.yml index 3f24124fbc..970966b4d4 100644 --- a/.github/workflows/smoke-create-cross-repo-pr.lock.yml +++ b/.github/workflows/smoke-create-cross-repo-pr.lock.yml @@ -1013,7 +1013,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/smoke-gemini.lock.yml b/.github/workflows/smoke-gemini.lock.yml index b0bcd86e82..c306bc0a68 100644 --- a/.github/workflows/smoke-gemini.lock.yml +++ b/.github/workflows/smoke-gemini.lock.yml @@ -1145,7 +1145,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1424,7 +1425,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/smoke-multi-pr.lock.yml b/.github/workflows/smoke-multi-pr.lock.yml index bf94bbb5d7..badeac216d 100644 --- a/.github/workflows/smoke-multi-pr.lock.yml +++ b/.github/workflows/smoke-multi-pr.lock.yml @@ -1007,7 +1007,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/smoke-project.lock.yml b/.github/workflows/smoke-project.lock.yml index 925d499799..1dc94e7248 100644 --- a/.github/workflows/smoke-project.lock.yml +++ b/.github/workflows/smoke-project.lock.yml @@ -1140,7 +1140,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/smoke-temporary-id.lock.yml b/.github/workflows/smoke-temporary-id.lock.yml index d486a5eb0b..4faecc9bfc 100644 --- a/.github/workflows/smoke-temporary-id.lock.yml +++ b/.github/workflows/smoke-temporary-id.lock.yml @@ -977,7 +977,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/smoke-test-tools.lock.yml b/.github/workflows/smoke-test-tools.lock.yml index 0a66b105e0..a01bd33774 100644 --- a/.github/workflows/smoke-test-tools.lock.yml +++ b/.github/workflows/smoke-test-tools.lock.yml @@ -938,7 +938,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/smoke-update-cross-repo-pr.lock.yml b/.github/workflows/smoke-update-cross-repo-pr.lock.yml index 9ca24434cd..0906a633b5 100644 --- a/.github/workflows/smoke-update-cross-repo-pr.lock.yml +++ b/.github/workflows/smoke-update-cross-repo-pr.lock.yml @@ -1013,7 +1013,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1317,7 +1318,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/smoke-workflow-call-with-inputs.lock.yml b/.github/workflows/smoke-workflow-call-with-inputs.lock.yml index 1da20aea6a..1763ac5717 100644 --- a/.github/workflows/smoke-workflow-call-with-inputs.lock.yml +++ b/.github/workflows/smoke-workflow-call-with-inputs.lock.yml @@ -937,7 +937,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/smoke-workflow-call.lock.yml b/.github/workflows/smoke-workflow-call.lock.yml index 40cf7a4ee5..d164819923 100644 --- a/.github/workflows/smoke-workflow-call.lock.yml +++ b/.github/workflows/smoke-workflow-call.lock.yml @@ -928,7 +928,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/stale-repo-identifier.lock.yml b/.github/workflows/stale-repo-identifier.lock.yml index 0568fc9e9b..b1790cd020 100644 --- a/.github/workflows/stale-repo-identifier.lock.yml +++ b/.github/workflows/stale-repo-identifier.lock.yml @@ -1020,7 +1020,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1250,7 +1251,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/static-analysis-report.lock.yml b/.github/workflows/static-analysis-report.lock.yml index 7a7d0e2e50..b69a16f222 100644 --- a/.github/workflows/static-analysis-report.lock.yml +++ b/.github/workflows/static-analysis-report.lock.yml @@ -1025,7 +1025,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1268,7 +1269,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/step-name-alignment.lock.yml b/.github/workflows/step-name-alignment.lock.yml index c7a6fea4c4..ff07f919f4 100644 --- a/.github/workflows/step-name-alignment.lock.yml +++ b/.github/workflows/step-name-alignment.lock.yml @@ -955,7 +955,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1199,7 +1200,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/sub-issue-closer.lock.yml b/.github/workflows/sub-issue-closer.lock.yml index 3f082656f1..83883e5178 100644 --- a/.github/workflows/sub-issue-closer.lock.yml +++ b/.github/workflows/sub-issue-closer.lock.yml @@ -910,7 +910,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/super-linter.lock.yml b/.github/workflows/super-linter.lock.yml index 1397e7b101..656a76c244 100644 --- a/.github/workflows/super-linter.lock.yml +++ b/.github/workflows/super-linter.lock.yml @@ -915,7 +915,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1199,7 +1200,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/technical-doc-writer.lock.yml b/.github/workflows/technical-doc-writer.lock.yml index fb95875d1a..d969879419 100644 --- a/.github/workflows/technical-doc-writer.lock.yml +++ b/.github/workflows/technical-doc-writer.lock.yml @@ -1106,7 +1106,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1320,7 +1321,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: write @@ -1513,7 +1514,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/terminal-stylist.lock.yml b/.github/workflows/terminal-stylist.lock.yml index 29b3070af6..c1fbab44bb 100644 --- a/.github/workflows/terminal-stylist.lock.yml +++ b/.github/workflows/terminal-stylist.lock.yml @@ -890,7 +890,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/test-create-pr-error-handling.lock.yml b/.github/workflows/test-create-pr-error-handling.lock.yml index 724ed3c9bf..153e7b1ccb 100644 --- a/.github/workflows/test-create-pr-error-handling.lock.yml +++ b/.github/workflows/test-create-pr-error-handling.lock.yml @@ -956,7 +956,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1231,7 +1232,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/test-dispatcher.lock.yml b/.github/workflows/test-dispatcher.lock.yml index ed659ea95a..4aa768a2b1 100644 --- a/.github/workflows/test-dispatcher.lock.yml +++ b/.github/workflows/test-dispatcher.lock.yml @@ -849,7 +849,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/test-project-url-default.lock.yml b/.github/workflows/test-project-url-default.lock.yml index 01e5c1bcbc..fe188f45c6 100644 --- a/.github/workflows/test-project-url-default.lock.yml +++ b/.github/workflows/test-project-url-default.lock.yml @@ -909,7 +909,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/tidy.lock.yml b/.github/workflows/tidy.lock.yml index cdd2ea27f3..4fcd3e0e4b 100644 --- a/.github/workflows/tidy.lock.yml +++ b/.github/workflows/tidy.lock.yml @@ -1036,7 +1036,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/typist.lock.yml b/.github/workflows/typist.lock.yml index 528280ce98..28e5ad1e23 100644 --- a/.github/workflows/typist.lock.yml +++ b/.github/workflows/typist.lock.yml @@ -960,7 +960,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/ubuntu-image-analyzer.lock.yml b/.github/workflows/ubuntu-image-analyzer.lock.yml index bb9e66bade..3e9767eb51 100644 --- a/.github/workflows/ubuntu-image-analyzer.lock.yml +++ b/.github/workflows/ubuntu-image-analyzer.lock.yml @@ -936,7 +936,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/unbloat-docs.lock.yml b/.github/workflows/unbloat-docs.lock.yml index 453b34df5a..2eede9839a 100644 --- a/.github/workflows/unbloat-docs.lock.yml +++ b/.github/workflows/unbloat-docs.lock.yml @@ -1261,7 +1261,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1653,7 +1654,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/update-astro.lock.yml b/.github/workflows/update-astro.lock.yml index 9a860b8a21..9221368345 100644 --- a/.github/workflows/update-astro.lock.yml +++ b/.github/workflows/update-astro.lock.yml @@ -959,7 +959,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/video-analyzer.lock.yml b/.github/workflows/video-analyzer.lock.yml index d04aaf8390..45a4d91cb0 100644 --- a/.github/workflows/video-analyzer.lock.yml +++ b/.github/workflows/video-analyzer.lock.yml @@ -905,7 +905,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/weekly-blog-post-writer.lock.yml b/.github/workflows/weekly-blog-post-writer.lock.yml index a7511c538f..6d9e7d39a7 100644 --- a/.github/workflows/weekly-blog-post-writer.lock.yml +++ b/.github/workflows/weekly-blog-post-writer.lock.yml @@ -1080,7 +1080,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1303,7 +1304,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: write diff --git a/.github/workflows/weekly-editors-health-check.lock.yml b/.github/workflows/weekly-editors-health-check.lock.yml index 03dacd51fc..cce5925240 100644 --- a/.github/workflows/weekly-editors-health-check.lock.yml +++ b/.github/workflows/weekly-editors-health-check.lock.yml @@ -967,7 +967,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/weekly-issue-summary.lock.yml b/.github/workflows/weekly-issue-summary.lock.yml index 21553e68e3..4bbd8988ae 100644 --- a/.github/workflows/weekly-issue-summary.lock.yml +++ b/.github/workflows/weekly-issue-summary.lock.yml @@ -939,7 +939,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1168,7 +1169,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/weekly-safe-outputs-spec-review.lock.yml b/.github/workflows/weekly-safe-outputs-spec-review.lock.yml index fa14406d2b..82908459db 100644 --- a/.github/workflows/weekly-safe-outputs-spec-review.lock.yml +++ b/.github/workflows/weekly-safe-outputs-spec-review.lock.yml @@ -893,7 +893,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/workflow-generator.lock.yml b/.github/workflows/workflow-generator.lock.yml index 852c437da9..46027b7aea 100644 --- a/.github/workflows/workflow-generator.lock.yml +++ b/.github/workflows/workflow-generator.lock.yml @@ -951,7 +951,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/workflow-health-manager.lock.yml b/.github/workflows/workflow-health-manager.lock.yml index 85b58c87fb..b42669d7f1 100644 --- a/.github/workflows/workflow-health-manager.lock.yml +++ b/.github/workflows/workflow-health-manager.lock.yml @@ -994,7 +994,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read @@ -1171,7 +1172,7 @@ jobs: needs: - agent - detection - if: always() && needs.detection.result == 'success' + if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped') runs-on: ubuntu-latest permissions: contents: write diff --git a/.github/workflows/workflow-normalizer.lock.yml b/.github/workflows/workflow-normalizer.lock.yml index 71564514ba..cdab9e093f 100644 --- a/.github/workflows/workflow-normalizer.lock.yml +++ b/.github/workflows/workflow-normalizer.lock.yml @@ -956,7 +956,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/workflow-skill-extractor.lock.yml b/.github/workflows/workflow-skill-extractor.lock.yml index da49200a7f..e2c837c195 100644 --- a/.github/workflows/workflow-skill-extractor.lock.yml +++ b/.github/workflows/workflow-skill-extractor.lock.yml @@ -926,7 +926,8 @@ jobs: detection: needs: agent - if: always() && needs.agent.result != 'skipped' + if: > + always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true') runs-on: ubuntu-latest permissions: contents: read diff --git a/pkg/workflow/cache.go b/pkg/workflow/cache.go index 95353a958c..fb54151be1 100644 --- a/pkg/workflow/cache.go +++ b/pkg/workflow/cache.go @@ -837,8 +837,9 @@ func (c *Compiler) buildUpdateCacheMemoryJob(data *WorkflowData, threatDetection // Prepend setup steps to all cache steps steps = append(setupSteps, steps...) - // Job condition: only run if detection job succeeded (exit 0 means analysis passed, no threats detected) - jobCondition := fmt.Sprintf("always() && needs.%s.result == 'success'", constants.DetectionJobName) + // Job condition: run if detection job succeeded (no threats found) or was skipped (no outputs to detect). + // Using always() so the job runs even when detection is skipped (which sets result = 'skipped'). + jobCondition := RenderCondition(BuildAnd(BuildFunctionCall("always"), buildDetectionPassedCondition())) // Set up permissions for the cache update job // If using local actions (dev mode without action-tag), we need contents: read to checkout the actions folder diff --git a/pkg/workflow/compiler_safe_outputs_job.go b/pkg/workflow/compiler_safe_outputs_job.go index 546b5f33aa..1edd6a799e 100644 --- a/pkg/workflow/compiler_safe_outputs_job.go +++ b/pkg/workflow/compiler_safe_outputs_job.go @@ -548,6 +548,20 @@ func buildDetectionSuccessCondition() ConditionNode { ) } +// buildDetectionPassedCondition builds the condition to check if the detection job either +// succeeded (no threats found) or was skipped (agent produced no outputs or patch — nothing +// to detect against). Use this for downstream jobs that must run in both cases, such as +// update_cache_memory and push_repo_memory. +func buildDetectionPassedCondition() ConditionNode { + return BuildOr( + buildDetectionSuccessCondition(), + BuildEquals( + BuildPropertyAccess(fmt.Sprintf("needs.%s.result", constants.DetectionJobName)), + BuildStringLiteral("skipped"), + ), + ) +} + // buildSafeOutputItemsManifestUploadStep builds the step that uploads the safe output // items manifest as a separate artifact. The step always runs (if: always()) so // the manifest is available to the audit command even if some safe output steps fail. diff --git a/pkg/workflow/repo_memory.go b/pkg/workflow/repo_memory.go index 91a5bc6a4a..006428bda0 100644 --- a/pkg/workflow/repo_memory.go +++ b/pkg/workflow/repo_memory.go @@ -690,7 +690,9 @@ func (c *Compiler) buildPushRepoMemoryJob(data *WorkflowData, threatDetectionEna jobCondition := "always()" jobNeeds := []string{"agent"} if threatDetectionEnabled { - jobCondition = fmt.Sprintf("always() && needs.%s.result == 'success'", constants.DetectionJobName) + // When threat detection is enabled, run only if detection succeeded (no threats found) + // or was skipped (agent produced no outputs or patch — nothing to detect against). + jobCondition = RenderCondition(BuildAnd(BuildFunctionCall("always"), buildDetectionPassedCondition())) jobNeeds = append(jobNeeds, string(constants.DetectionJobName)) } diff --git a/pkg/workflow/threat_detection.go b/pkg/workflow/threat_detection.go index fa6e080e9e..095d0ec044 100644 --- a/pkg/workflow/threat_detection.go +++ b/pkg/workflow/threat_detection.go @@ -608,9 +608,25 @@ func (c *Compiler) buildDetectionJob(data *WorkflowData) (*Job, error) { runsOn = "runs-on: " + data.SafeOutputs.ThreatDetection.RunsOn } - // Detection job condition: always run if agent job was not skipped - // Use always() so detection runs even if the agent job failed (to check whatever output was produced) - jobCondition := fmt.Sprintf("always() && needs.%s.result != 'skipped'", constants.AgentJobName) + // Detection job condition: always run if agent job was not skipped AND produced outputs or a patch. + // Skip the detection job entirely (result = 'skipped') when there is nothing to detect against, + // so downstream jobs (safe_outputs) are also correctly skipped. + alwaysFunc := BuildFunctionCall("always") + agentNotSkipped := BuildNotEquals( + BuildPropertyAccess(fmt.Sprintf("needs.%s.result", constants.AgentJobName)), + BuildStringLiteral("skipped"), + ) + outputTypesNotEmpty := BuildNotEquals( + BuildPropertyAccess(fmt.Sprintf("needs.%s.outputs.output_types", constants.AgentJobName)), + BuildStringLiteral(""), + ) + hasPatchTrue := BuildEquals( + BuildPropertyAccess(fmt.Sprintf("needs.%s.outputs.has_patch", constants.AgentJobName)), + BuildStringLiteral("true"), + ) + hasContent := BuildOr(outputTypesNotEmpty, hasPatchTrue) + jobConditionNode := BuildAnd(BuildAnd(alwaysFunc, agentNotSkipped), hasContent) + jobCondition := RenderCondition(jobConditionNode) // Determine permissions for the detection job // In dev/script mode, need contents: read if the actions folder checkout is needed diff --git a/pkg/workflow/threat_detection_test.go b/pkg/workflow/threat_detection_test.go index 963ccace9f..a110fcd206 100644 --- a/pkg/workflow/threat_detection_test.go +++ b/pkg/workflow/threat_detection_test.go @@ -754,7 +754,58 @@ func TestDetectionGuardStepCondition(t *testing.T) { } } -// TestBuildDetectionEngineExecutionStepStripsAgentField verifies that the Agent field from the +// TestDetectionJobLevelCondition verifies that the detection job-level `if:` condition +// skips the job entirely when the agent produced no outputs and no patch. +// This prevents the detection job from wasting a runner and ensures safe_outputs is +// also correctly skipped (since it gates on needs.detection.result == 'success'). +func TestDetectionJobLevelCondition(t *testing.T) { + compiler := NewCompiler() + + data := &WorkflowData{ + Name: "test-workflow", + AI: "copilot", + SafeOutputs: &SafeOutputsConfig{ + ThreatDetection: &ThreatDetectionConfig{}, + CreateIssues: &CreateIssuesConfig{ + TitlePrefix: "[Test]", + }, + }, + } + + job, err := compiler.buildDetectionJob(data) + if err != nil { + t.Fatalf("Unexpected error building detection job: %v", err) + } + if job == nil { + t.Fatal("Expected detection job to be built, got nil") + } + + condition := job.If + + // Must use always() so the job runs even when the agent job fails + if !strings.Contains(condition, "always()") { + t.Errorf("Expected detection job condition to include always(), got: %q", condition) + } + + // Must skip when agent was skipped + if !strings.Contains(condition, "needs."+string(constants.AgentJobName)+".result") { + t.Errorf("Expected detection job condition to check agent result, got: %q", condition) + } + if !strings.Contains(condition, "'skipped'") { + t.Errorf("Expected detection job condition to check for skipped status, got: %q", condition) + } + + // Must check output_types and has_patch so the job is skipped at job-level + // when the agent produced nothing (avoiding unnecessary runner usage and + // preventing safe_outputs from running when there is nothing to publish). + if !strings.Contains(condition, "needs."+string(constants.AgentJobName)+".outputs.output_types") { + t.Errorf("Expected detection job condition to check output_types, got: %q", condition) + } + if !strings.Contains(condition, "needs."+string(constants.AgentJobName)+".outputs.has_patch") { + t.Errorf("Expected detection job condition to check has_patch, got: %q", condition) + } +} + // main engine config is never propagated to the detection engine config, // regardless of whether a model is explicitly configured. func TestBuildDetectionEngineExecutionStepStripsAgentField(t *testing.T) {