From 5f092e4c2279519bdd7b5b7cbdb23fcee6e9b1c6 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Mon, 6 Apr 2026 00:31:39 +0000
Subject: [PATCH 1/6] Initial plan
From c6878bdcb185f6fed934533f656b8c00d2080909 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Mon, 6 Apr 2026 00:56:33 +0000
Subject: [PATCH 2/6] Add report-skip-reason step to pre_activation job to
surface denial reasons in job summary (#bot-gated-pr-review-issue)
Agent-Logs-Url: https://github.com/github/gh-aw/sessions/067ab295-8ff2-4434-9c93-bad0eb8fe31b
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
---
.github/workflows/ace-editor.lock.yml | 15 +
.../agent-performance-analyzer.lock.yml | 14 +
.../workflows/agent-persona-explorer.lock.yml | 14 +
.github/workflows/ai-moderator.lock.yml | 16 ++
.github/workflows/archie.lock.yml | 15 +
.github/workflows/auto-triage-issues.lock.yml | 15 +
.github/workflows/brave.lock.yml | 15 +
.../breaking-change-checker.lock.yml | 15 +
.github/workflows/changeset.lock.yml | 14 +
.github/workflows/ci-doctor.lock.yml | 14 +
.github/workflows/cloclo.lock.yml | 15 +
.../workflows/code-scanning-fixer.lock.yml | 15 +
.github/workflows/code-simplifier.lock.yml | 15 +
.github/workflows/craft.lock.yml | 15 +
.../workflows/daily-cli-performance.lock.yml | 14 +
.github/workflows/daily-file-diet.lock.yml | 15 +
.../workflows/daily-issues-report.lock.yml | 14 +
.../daily-observability-report.lock.yml | 14 +
.../daily-rendering-scripts-verifier.lock.yml | 15 +
.../daily-safe-output-optimizer.lock.yml | 15 +
.github/workflows/daily-team-status.lock.yml | 12 +
.../daily-testify-uber-super-expert.lock.yml | 15 +
.github/workflows/dead-code-remover.lock.yml | 15 +
.github/workflows/dependabot-burner.lock.yml | 14 +
.github/workflows/dev-hawk.lock.yml | 14 +
.github/workflows/dev.lock.yml | 14 +
.github/workflows/firewall-escape.lock.yml | 14 +
.github/workflows/grumpy-reviewer.lock.yml | 15 +
.github/workflows/issue-monster.lock.yml | 17 ++
.github/workflows/mergefest.lock.yml | 15 +
.github/workflows/metrics-collector.lock.yml | 14 +
.github/workflows/pdf-summary.lock.yml | 15 +
.github/workflows/plan.lock.yml | 15 +
.github/workflows/poem-bot.lock.yml | 15 +
.../workflows/pr-nitpick-reviewer.lock.yml | 15 +
.github/workflows/q.lock.yml | 15 +
.github/workflows/refiner.lock.yml | 14 +
.github/workflows/release.lock.yml | 14 +
.github/workflows/scout.lock.yml | 15 +
.github/workflows/security-review.lock.yml | 15 +
.../workflows/slide-deck-maintainer.lock.yml | 15 +
.../workflows/smoke-agent-all-merged.lock.yml | 14 +
.../workflows/smoke-agent-all-none.lock.yml | 14 +
.../smoke-agent-public-approved.lock.yml | 14 +
.../smoke-agent-public-none.lock.yml | 14 +
.../smoke-agent-scoped-approved.lock.yml | 14 +
.../workflows/smoke-call-workflow.lock.yml | 14 +
.github/workflows/smoke-claude.lock.yml | 14 +
.github/workflows/smoke-codex.lock.yml | 14 +
.github/workflows/smoke-copilot-arm.lock.yml | 14 +
.github/workflows/smoke-copilot.lock.yml | 14 +
.../smoke-create-cross-repo-pr.lock.yml | 14 +
.github/workflows/smoke-gemini.lock.yml | 14 +
.github/workflows/smoke-multi-pr.lock.yml | 14 +
.github/workflows/smoke-project.lock.yml | 14 +
.../workflows/smoke-service-ports.lock.yml | 14 +
.github/workflows/smoke-temporary-id.lock.yml | 14 +
.github/workflows/smoke-test-tools.lock.yml | 14 +
.../smoke-update-cross-repo-pr.lock.yml | 14 +
.../smoke-workflow-call-with-inputs.lock.yml | 14 +
.../workflows/smoke-workflow-call.lock.yml | 14 +
.github/workflows/tidy.lock.yml | 15 +
.../workflows/ubuntu-image-analyzer.lock.yml | 15 +
.github/workflows/unbloat-docs.lock.yml | 15 +
.github/workflows/update-astro.lock.yml | 15 +
.github/workflows/workflow-generator.lock.yml | 15 +
.../workflow-health-manager.lock.yml | 14 +
.../setup/js/report_pre_activation_skip.cjs | 207 ++++++++++++++
.../js/report_pre_activation_skip.test.cjs | 261 ++++++++++++++++++
pkg/constants/job_constants.go | 4 +
pkg/workflow/compiler_pre_activation_job.go | 83 ++++++
pkg/workflow/report_skip_reason_test.go | 193 +++++++++++++
.../basic-copilot.golden | 14 +
.../with-imports.golden | 14 +
74 files changed, 1746 insertions(+)
create mode 100644 actions/setup/js/report_pre_activation_skip.cjs
create mode 100644 actions/setup/js/report_pre_activation_skip.test.cjs
create mode 100644 pkg/workflow/report_skip_reason_test.go
diff --git a/.github/workflows/ace-editor.lock.yml b/.github/workflows/ace-editor.lock.yml
index 0b7c12bf770..630f9160c75 100644
--- a/.github/workflows/ace-editor.lock.yml
+++ b/.github/workflows/ace-editor.lock.yml
@@ -665,4 +665,19 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_command_position.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ GH_AW_COMMAND_POSITION_OK: ${{ steps.check_command_position.outputs.command_position_ok }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
diff --git a/.github/workflows/agent-performance-analyzer.lock.yml b/.github/workflows/agent-performance-analyzer.lock.yml
index 80bdddd9b15..d1fb38a8f3a 100644
--- a/.github/workflows/agent-performance-analyzer.lock.yml
+++ b/.github/workflows/agent-performance-analyzer.lock.yml
@@ -1246,6 +1246,20 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
push_repo_memory:
needs:
diff --git a/.github/workflows/agent-persona-explorer.lock.yml b/.github/workflows/agent-persona-explorer.lock.yml
index bc83b1d663b..5368804febb 100644
--- a/.github/workflows/agent-persona-explorer.lock.yml
+++ b/.github/workflows/agent-persona-explorer.lock.yml
@@ -1195,6 +1195,20 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/ai-moderator.lock.yml b/.github/workflows/ai-moderator.lock.yml
index dabcbc9fe78..e91a826dddf 100644
--- a/.github/workflows/ai-moderator.lock.yml
+++ b/.github/workflows/ai-moderator.lock.yml
@@ -1030,6 +1030,22 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_skip_bots.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_RATE_LIMIT_OK: ${{ steps.check_rate_limit.outputs.rate_limit_ok }}
+ GH_AW_SKIP_ROLES_OK: ${{ steps.check_skip_roles.outputs.skip_roles_ok }}
+ GH_AW_SKIP_ROLES_ERROR_MESSAGE: ${{ steps.check_skip_roles.outputs.error_message }}
+ GH_AW_SKIP_BOTS_OK: ${{ steps.check_skip_bots.outputs.skip_bots_ok }}
+ GH_AW_SKIP_BOTS_ERROR_MESSAGE: ${{ steps.check_skip_bots.outputs.error_message }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/archie.lock.yml b/.github/workflows/archie.lock.yml
index bb98e437372..c21ab76f97c 100644
--- a/.github/workflows/archie.lock.yml
+++ b/.github/workflows/archie.lock.yml
@@ -1224,6 +1224,21 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_command_position.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ GH_AW_COMMAND_POSITION_OK: ${{ steps.check_command_position.outputs.command_position_ok }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/auto-triage-issues.lock.yml b/.github/workflows/auto-triage-issues.lock.yml
index c6570b914e2..f5acd578f72 100644
--- a/.github/workflows/auto-triage-issues.lock.yml
+++ b/.github/workflows/auto-triage-issues.lock.yml
@@ -1143,6 +1143,21 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_rate_limit.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ GH_AW_RATE_LIMIT_OK: ${{ steps.check_rate_limit.outputs.rate_limit_ok }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/brave.lock.yml b/.github/workflows/brave.lock.yml
index 362dcda6e9b..93e55db7ff0 100644
--- a/.github/workflows/brave.lock.yml
+++ b/.github/workflows/brave.lock.yml
@@ -1171,6 +1171,21 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_command_position.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ GH_AW_COMMAND_POSITION_OK: ${{ steps.check_command_position.outputs.command_position_ok }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/breaking-change-checker.lock.yml b/.github/workflows/breaking-change-checker.lock.yml
index e9695536987..82a0f98418d 100644
--- a/.github/workflows/breaking-change-checker.lock.yml
+++ b/.github/workflows/breaking-change-checker.lock.yml
@@ -1123,6 +1123,21 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_skip_if_match.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ GH_AW_SKIP_CHECK_OK: ${{ steps.check_skip_if_match.outputs.skip_check_ok }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/changeset.lock.yml b/.github/workflows/changeset.lock.yml
index 62395e3ca7d..3d9a5e8ddf3 100644
--- a/.github/workflows/changeset.lock.yml
+++ b/.github/workflows/changeset.lock.yml
@@ -1022,6 +1022,20 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/ci-doctor.lock.yml b/.github/workflows/ci-doctor.lock.yml
index ecf2549847a..b0aee2f768c 100644
--- a/.github/workflows/ci-doctor.lock.yml
+++ b/.github/workflows/ci-doctor.lock.yml
@@ -1333,6 +1333,20 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/cloclo.lock.yml b/.github/workflows/cloclo.lock.yml
index 680bd2e1b78..bfa818081bd 100644
--- a/.github/workflows/cloclo.lock.yml
+++ b/.github/workflows/cloclo.lock.yml
@@ -1575,6 +1575,21 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_command_position.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ GH_AW_COMMAND_POSITION_OK: ${{ steps.check_command_position.outputs.command_position_ok }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/code-scanning-fixer.lock.yml b/.github/workflows/code-scanning-fixer.lock.yml
index 7e3fff7253c..83df666f586 100644
--- a/.github/workflows/code-scanning-fixer.lock.yml
+++ b/.github/workflows/code-scanning-fixer.lock.yml
@@ -1182,6 +1182,21 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_skip_if_match.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ GH_AW_SKIP_CHECK_OK: ${{ steps.check_skip_if_match.outputs.skip_check_ok }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
push_repo_memory:
needs:
diff --git a/.github/workflows/code-simplifier.lock.yml b/.github/workflows/code-simplifier.lock.yml
index 392624d9f86..1f38a4a50fe 100644
--- a/.github/workflows/code-simplifier.lock.yml
+++ b/.github/workflows/code-simplifier.lock.yml
@@ -1114,6 +1114,21 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_skip_if_match.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ GH_AW_SKIP_CHECK_OK: ${{ steps.check_skip_if_match.outputs.skip_check_ok }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/craft.lock.yml b/.github/workflows/craft.lock.yml
index 942245a48ee..1976aa20622 100644
--- a/.github/workflows/craft.lock.yml
+++ b/.github/workflows/craft.lock.yml
@@ -1177,6 +1177,21 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_command_position.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ GH_AW_COMMAND_POSITION_OK: ${{ steps.check_command_position.outputs.command_position_ok }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/daily-cli-performance.lock.yml b/.github/workflows/daily-cli-performance.lock.yml
index e929b0954e3..69eae7f8012 100644
--- a/.github/workflows/daily-cli-performance.lock.yml
+++ b/.github/workflows/daily-cli-performance.lock.yml
@@ -1364,6 +1364,20 @@ jobs:
}
core.info(`has_changes=${hasChanges}`);
core.setOutput('has_changes', hasChanges ? 'true' : 'false');
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
push_repo_memory:
needs:
diff --git a/.github/workflows/daily-file-diet.lock.yml b/.github/workflows/daily-file-diet.lock.yml
index 6ea605d0fe7..feec34e8975 100644
--- a/.github/workflows/daily-file-diet.lock.yml
+++ b/.github/workflows/daily-file-diet.lock.yml
@@ -1209,6 +1209,21 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_skip_if_match.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ GH_AW_SKIP_CHECK_OK: ${{ steps.check_skip_if_match.outputs.skip_check_ok }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/daily-issues-report.lock.yml b/.github/workflows/daily-issues-report.lock.yml
index 9e57bbaf849..fbe71a530ef 100644
--- a/.github/workflows/daily-issues-report.lock.yml
+++ b/.github/workflows/daily-issues-report.lock.yml
@@ -1237,6 +1237,20 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/daily-observability-report.lock.yml b/.github/workflows/daily-observability-report.lock.yml
index 82d6b4787a7..d1dec8cbb75 100644
--- a/.github/workflows/daily-observability-report.lock.yml
+++ b/.github/workflows/daily-observability-report.lock.yml
@@ -1207,6 +1207,20 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/daily-rendering-scripts-verifier.lock.yml b/.github/workflows/daily-rendering-scripts-verifier.lock.yml
index ee64722a9c6..24db89ddb27 100644
--- a/.github/workflows/daily-rendering-scripts-verifier.lock.yml
+++ b/.github/workflows/daily-rendering-scripts-verifier.lock.yml
@@ -1351,6 +1351,21 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_skip_if_match.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ GH_AW_SKIP_CHECK_OK: ${{ steps.check_skip_if_match.outputs.skip_check_ok }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/daily-safe-output-optimizer.lock.yml b/.github/workflows/daily-safe-output-optimizer.lock.yml
index fc2cc3d77e2..c32043f22b6 100644
--- a/.github/workflows/daily-safe-output-optimizer.lock.yml
+++ b/.github/workflows/daily-safe-output-optimizer.lock.yml
@@ -1333,6 +1333,21 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_skip_if_match.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ GH_AW_SKIP_CHECK_OK: ${{ steps.check_skip_if_match.outputs.skip_check_ok }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/daily-team-status.lock.yml b/.github/workflows/daily-team-status.lock.yml
index 0db5f079d5a..3918919c58c 100644
--- a/.github/workflows/daily-team-status.lock.yml
+++ b/.github/workflows/daily-team-status.lock.yml
@@ -1117,6 +1117,18 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_stop_time.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_STOP_TIME_OK: ${{ steps.check_stop_time.outputs.stop_time_ok }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/daily-testify-uber-super-expert.lock.yml b/.github/workflows/daily-testify-uber-super-expert.lock.yml
index 3f651b55549..c5b07aa945b 100644
--- a/.github/workflows/daily-testify-uber-super-expert.lock.yml
+++ b/.github/workflows/daily-testify-uber-super-expert.lock.yml
@@ -1251,6 +1251,21 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_skip_if_match.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ GH_AW_SKIP_CHECK_OK: ${{ steps.check_skip_if_match.outputs.skip_check_ok }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
push_repo_memory:
needs:
diff --git a/.github/workflows/dead-code-remover.lock.yml b/.github/workflows/dead-code-remover.lock.yml
index 9759d38c63e..7d56e3c70a6 100644
--- a/.github/workflows/dead-code-remover.lock.yml
+++ b/.github/workflows/dead-code-remover.lock.yml
@@ -1155,6 +1155,21 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_skip_if_match.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ GH_AW_SKIP_CHECK_OK: ${{ steps.check_skip_if_match.outputs.skip_check_ok }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/dependabot-burner.lock.yml b/.github/workflows/dependabot-burner.lock.yml
index eaf1d28fb2c..87f09d5d05d 100644
--- a/.github/workflows/dependabot-burner.lock.yml
+++ b/.github/workflows/dependabot-burner.lock.yml
@@ -1082,6 +1082,20 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/dev-hawk.lock.yml b/.github/workflows/dev-hawk.lock.yml
index f89534ba151..f7158f532ce 100644
--- a/.github/workflows/dev-hawk.lock.yml
+++ b/.github/workflows/dev-hawk.lock.yml
@@ -1183,6 +1183,20 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/dev.lock.yml b/.github/workflows/dev.lock.yml
index d4e5ca891fd..dcea0d56ee9 100644
--- a/.github/workflows/dev.lock.yml
+++ b/.github/workflows/dev.lock.yml
@@ -1306,6 +1306,20 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/firewall-escape.lock.yml b/.github/workflows/firewall-escape.lock.yml
index 63879bfbe21..9d963081b67 100644
--- a/.github/workflows/firewall-escape.lock.yml
+++ b/.github/workflows/firewall-escape.lock.yml
@@ -1209,6 +1209,20 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
push_repo_memory:
needs:
diff --git a/.github/workflows/grumpy-reviewer.lock.yml b/.github/workflows/grumpy-reviewer.lock.yml
index 6222c6831ca..d9927e89dbc 100644
--- a/.github/workflows/grumpy-reviewer.lock.yml
+++ b/.github/workflows/grumpy-reviewer.lock.yml
@@ -1248,6 +1248,21 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_command_position.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ GH_AW_COMMAND_POSITION_OK: ${{ steps.check_command_position.outputs.command_position_ok }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/issue-monster.lock.yml b/.github/workflows/issue-monster.lock.yml
index 15cf5785e5f..261bc809479 100644
--- a/.github/workflows/issue-monster.lock.yml
+++ b/.github/workflows/issue-monster.lock.yml
@@ -1868,6 +1868,23 @@ jobs:
core.setOutput('issue_list', '');
core.setOutput('has_issues', 'false');
}
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ GH_AW_SKIP_CHECK_OK: ${{ steps.check_skip_if_match.outputs.skip_check_ok }}
+ GH_AW_SKIP_NO_MATCH_OK: ${{ steps.check_skip_if_no_match.outputs.skip_no_match_check_ok }}
+ GH_AW_SKIP_IF_CHECK_FAILING_OK: ${{ steps.check_skip_if_check_failing.outputs.skip_if_check_failing_ok }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/mergefest.lock.yml b/.github/workflows/mergefest.lock.yml
index ba8fa5e49ad..5385906cf43 100644
--- a/.github/workflows/mergefest.lock.yml
+++ b/.github/workflows/mergefest.lock.yml
@@ -1190,6 +1190,21 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_command_position.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ GH_AW_COMMAND_POSITION_OK: ${{ steps.check_command_position.outputs.command_position_ok }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/metrics-collector.lock.yml b/.github/workflows/metrics-collector.lock.yml
index 6f9c52d9f45..9e75bc66383 100644
--- a/.github/workflows/metrics-collector.lock.yml
+++ b/.github/workflows/metrics-collector.lock.yml
@@ -708,6 +708,20 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
push_repo_memory:
needs:
diff --git a/.github/workflows/pdf-summary.lock.yml b/.github/workflows/pdf-summary.lock.yml
index 9fed2c74da7..b59a89ac4de 100644
--- a/.github/workflows/pdf-summary.lock.yml
+++ b/.github/workflows/pdf-summary.lock.yml
@@ -1265,6 +1265,21 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_command_position.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ GH_AW_COMMAND_POSITION_OK: ${{ steps.check_command_position.outputs.command_position_ok }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/plan.lock.yml b/.github/workflows/plan.lock.yml
index f7fe52a6ef2..9ccb2dfff12 100644
--- a/.github/workflows/plan.lock.yml
+++ b/.github/workflows/plan.lock.yml
@@ -1192,6 +1192,21 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_command_position.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ GH_AW_COMMAND_POSITION_OK: ${{ steps.check_command_position.outputs.command_position_ok }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/poem-bot.lock.yml b/.github/workflows/poem-bot.lock.yml
index 2ab55c9bed9..787c59a5600 100644
--- a/.github/workflows/poem-bot.lock.yml
+++ b/.github/workflows/poem-bot.lock.yml
@@ -1554,6 +1554,21 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_command_position.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ GH_AW_COMMAND_POSITION_OK: ${{ steps.check_command_position.outputs.command_position_ok }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/pr-nitpick-reviewer.lock.yml b/.github/workflows/pr-nitpick-reviewer.lock.yml
index 9007284c234..76605d950f5 100644
--- a/.github/workflows/pr-nitpick-reviewer.lock.yml
+++ b/.github/workflows/pr-nitpick-reviewer.lock.yml
@@ -1262,6 +1262,21 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_command_position.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ GH_AW_COMMAND_POSITION_OK: ${{ steps.check_command_position.outputs.command_position_ok }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/q.lock.yml b/.github/workflows/q.lock.yml
index 8dedfe725d8..093263dbbd0 100644
--- a/.github/workflows/q.lock.yml
+++ b/.github/workflows/q.lock.yml
@@ -1426,6 +1426,21 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_command_position.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ GH_AW_COMMAND_POSITION_OK: ${{ steps.check_command_position.outputs.command_position_ok }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/refiner.lock.yml b/.github/workflows/refiner.lock.yml
index a2e1c5a6588..e36e5447450 100644
--- a/.github/workflows/refiner.lock.yml
+++ b/.github/workflows/refiner.lock.yml
@@ -1145,6 +1145,20 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/release.lock.yml b/.github/workflows/release.lock.yml
index a216e5b4a86..f4bc0f66b07 100644
--- a/.github/workflows/release.lock.yml
+++ b/.github/workflows/release.lock.yml
@@ -1244,6 +1244,20 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
push_tag:
needs:
diff --git a/.github/workflows/scout.lock.yml b/.github/workflows/scout.lock.yml
index 4fbfd2e9d0e..cbc5becba5c 100644
--- a/.github/workflows/scout.lock.yml
+++ b/.github/workflows/scout.lock.yml
@@ -1460,6 +1460,21 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_command_position.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ GH_AW_COMMAND_POSITION_OK: ${{ steps.check_command_position.outputs.command_position_ok }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/security-review.lock.yml b/.github/workflows/security-review.lock.yml
index 569476395db..d59bffb3b3d 100644
--- a/.github/workflows/security-review.lock.yml
+++ b/.github/workflows/security-review.lock.yml
@@ -1309,6 +1309,21 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_command_position.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ GH_AW_COMMAND_POSITION_OK: ${{ steps.check_command_position.outputs.command_position_ok }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/slide-deck-maintainer.lock.yml b/.github/workflows/slide-deck-maintainer.lock.yml
index 2077d9832cf..a9cd29acb08 100644
--- a/.github/workflows/slide-deck-maintainer.lock.yml
+++ b/.github/workflows/slide-deck-maintainer.lock.yml
@@ -1229,6 +1229,21 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_skip_if_match.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ GH_AW_SKIP_CHECK_OK: ${{ steps.check_skip_if_match.outputs.skip_check_ok }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/smoke-agent-all-merged.lock.yml b/.github/workflows/smoke-agent-all-merged.lock.yml
index 7e3f36fbfac..927e9083ff9 100644
--- a/.github/workflows/smoke-agent-all-merged.lock.yml
+++ b/.github/workflows/smoke-agent-all-merged.lock.yml
@@ -1157,6 +1157,20 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/smoke-agent-all-none.lock.yml b/.github/workflows/smoke-agent-all-none.lock.yml
index 151a5e62986..8e9f1753cc0 100644
--- a/.github/workflows/smoke-agent-all-none.lock.yml
+++ b/.github/workflows/smoke-agent-all-none.lock.yml
@@ -1157,6 +1157,20 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/smoke-agent-public-approved.lock.yml b/.github/workflows/smoke-agent-public-approved.lock.yml
index 31080c20a78..0d7051e3a22 100644
--- a/.github/workflows/smoke-agent-public-approved.lock.yml
+++ b/.github/workflows/smoke-agent-public-approved.lock.yml
@@ -1190,6 +1190,20 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/smoke-agent-public-none.lock.yml b/.github/workflows/smoke-agent-public-none.lock.yml
index bcd34d3f38a..2f77a301ee7 100644
--- a/.github/workflows/smoke-agent-public-none.lock.yml
+++ b/.github/workflows/smoke-agent-public-none.lock.yml
@@ -1157,6 +1157,20 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/smoke-agent-scoped-approved.lock.yml b/.github/workflows/smoke-agent-scoped-approved.lock.yml
index a79cdbd2473..921485e5bc0 100644
--- a/.github/workflows/smoke-agent-scoped-approved.lock.yml
+++ b/.github/workflows/smoke-agent-scoped-approved.lock.yml
@@ -1164,6 +1164,20 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/smoke-call-workflow.lock.yml b/.github/workflows/smoke-call-workflow.lock.yml
index 8782b886e37..9d99160f58b 100644
--- a/.github/workflows/smoke-call-workflow.lock.yml
+++ b/.github/workflows/smoke-call-workflow.lock.yml
@@ -1130,6 +1130,20 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/smoke-claude.lock.yml b/.github/workflows/smoke-claude.lock.yml
index b6eb329bc79..731e0138f27 100644
--- a/.github/workflows/smoke-claude.lock.yml
+++ b/.github/workflows/smoke-claude.lock.yml
@@ -2787,6 +2787,20 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/smoke-codex.lock.yml b/.github/workflows/smoke-codex.lock.yml
index c71c051c9e2..a7cba19cc02 100644
--- a/.github/workflows/smoke-codex.lock.yml
+++ b/.github/workflows/smoke-codex.lock.yml
@@ -1798,6 +1798,20 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/smoke-copilot-arm.lock.yml b/.github/workflows/smoke-copilot-arm.lock.yml
index 187fc9c6e2b..e5f545e03cb 100644
--- a/.github/workflows/smoke-copilot-arm.lock.yml
+++ b/.github/workflows/smoke-copilot-arm.lock.yml
@@ -2100,6 +2100,20 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/smoke-copilot.lock.yml b/.github/workflows/smoke-copilot.lock.yml
index e51a00e1d99..c426980d750 100644
--- a/.github/workflows/smoke-copilot.lock.yml
+++ b/.github/workflows/smoke-copilot.lock.yml
@@ -2150,6 +2150,20 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/smoke-create-cross-repo-pr.lock.yml b/.github/workflows/smoke-create-cross-repo-pr.lock.yml
index 5a01ce2c721..dedcf22cccd 100644
--- a/.github/workflows/smoke-create-cross-repo-pr.lock.yml
+++ b/.github/workflows/smoke-create-cross-repo-pr.lock.yml
@@ -1243,6 +1243,20 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/smoke-gemini.lock.yml b/.github/workflows/smoke-gemini.lock.yml
index 3984af1491f..6c6081c5788 100644
--- a/.github/workflows/smoke-gemini.lock.yml
+++ b/.github/workflows/smoke-gemini.lock.yml
@@ -1394,6 +1394,20 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/smoke-multi-pr.lock.yml b/.github/workflows/smoke-multi-pr.lock.yml
index 4df115196d9..214ae14f38c 100644
--- a/.github/workflows/smoke-multi-pr.lock.yml
+++ b/.github/workflows/smoke-multi-pr.lock.yml
@@ -1224,6 +1224,20 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/smoke-project.lock.yml b/.github/workflows/smoke-project.lock.yml
index f15e2db61a2..d29845f3778 100644
--- a/.github/workflows/smoke-project.lock.yml
+++ b/.github/workflows/smoke-project.lock.yml
@@ -1360,6 +1360,20 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/smoke-service-ports.lock.yml b/.github/workflows/smoke-service-ports.lock.yml
index 65a60bf3772..232fb204930 100644
--- a/.github/workflows/smoke-service-ports.lock.yml
+++ b/.github/workflows/smoke-service-ports.lock.yml
@@ -1128,6 +1128,20 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/smoke-temporary-id.lock.yml b/.github/workflows/smoke-temporary-id.lock.yml
index 9244a29f04a..0a36b08697f 100644
--- a/.github/workflows/smoke-temporary-id.lock.yml
+++ b/.github/workflows/smoke-temporary-id.lock.yml
@@ -1207,6 +1207,20 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/smoke-test-tools.lock.yml b/.github/workflows/smoke-test-tools.lock.yml
index 2e7fa86810d..41032eb12e7 100644
--- a/.github/workflows/smoke-test-tools.lock.yml
+++ b/.github/workflows/smoke-test-tools.lock.yml
@@ -1173,6 +1173,20 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/smoke-update-cross-repo-pr.lock.yml b/.github/workflows/smoke-update-cross-repo-pr.lock.yml
index 0554980f743..c7a7108272d 100644
--- a/.github/workflows/smoke-update-cross-repo-pr.lock.yml
+++ b/.github/workflows/smoke-update-cross-repo-pr.lock.yml
@@ -1269,6 +1269,20 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/smoke-workflow-call-with-inputs.lock.yml b/.github/workflows/smoke-workflow-call-with-inputs.lock.yml
index d917e7a3e51..bb7ecb82654 100644
--- a/.github/workflows/smoke-workflow-call-with-inputs.lock.yml
+++ b/.github/workflows/smoke-workflow-call-with-inputs.lock.yml
@@ -1143,6 +1143,20 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/smoke-workflow-call.lock.yml b/.github/workflows/smoke-workflow-call.lock.yml
index 7577b542e74..782e7a3a6bf 100644
--- a/.github/workflows/smoke-workflow-call.lock.yml
+++ b/.github/workflows/smoke-workflow-call.lock.yml
@@ -1134,6 +1134,20 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/tidy.lock.yml b/.github/workflows/tidy.lock.yml
index 7ce28142b40..bf2a4f5d8c9 100644
--- a/.github/workflows/tidy.lock.yml
+++ b/.github/workflows/tidy.lock.yml
@@ -1245,6 +1245,21 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_command_position.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ GH_AW_COMMAND_POSITION_OK: ${{ steps.check_command_position.outputs.command_position_ok }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/ubuntu-image-analyzer.lock.yml b/.github/workflows/ubuntu-image-analyzer.lock.yml
index b27e51ce437..303ce4387e5 100644
--- a/.github/workflows/ubuntu-image-analyzer.lock.yml
+++ b/.github/workflows/ubuntu-image-analyzer.lock.yml
@@ -1138,6 +1138,21 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_skip_if_match.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ GH_AW_SKIP_CHECK_OK: ${{ steps.check_skip_if_match.outputs.skip_check_ok }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/unbloat-docs.lock.yml b/.github/workflows/unbloat-docs.lock.yml
index 744e29f31c8..bc35c0b79ba 100644
--- a/.github/workflows/unbloat-docs.lock.yml
+++ b/.github/workflows/unbloat-docs.lock.yml
@@ -1589,6 +1589,21 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_command_position.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ GH_AW_COMMAND_POSITION_OK: ${{ steps.check_command_position.outputs.command_position_ok }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/update-astro.lock.yml b/.github/workflows/update-astro.lock.yml
index bf3bf3e85d9..a817ce81a00 100644
--- a/.github/workflows/update-astro.lock.yml
+++ b/.github/workflows/update-astro.lock.yml
@@ -1164,6 +1164,21 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_skip_if_no_match.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ GH_AW_SKIP_NO_MATCH_OK: ${{ steps.check_skip_if_no_match.outputs.skip_no_match_check_ok }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/workflow-generator.lock.yml b/.github/workflows/workflow-generator.lock.yml
index b672bc117d6..6469486f90d 100644
--- a/.github/workflows/workflow-generator.lock.yml
+++ b/.github/workflows/workflow-generator.lock.yml
@@ -1183,6 +1183,21 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_rate_limit.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ GH_AW_RATE_LIMIT_OK: ${{ steps.check_rate_limit.outputs.rate_limit_ok }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
safe_outputs:
needs:
diff --git a/.github/workflows/workflow-health-manager.lock.yml b/.github/workflows/workflow-health-manager.lock.yml
index 957d78cc70b..12d0debcb90 100644
--- a/.github/workflows/workflow-health-manager.lock.yml
+++ b/.github/workflows/workflow-health-manager.lock.yml
@@ -1198,6 +1198,20 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
push_repo_memory:
needs:
diff --git a/actions/setup/js/report_pre_activation_skip.cjs b/actions/setup/js/report_pre_activation_skip.cjs
new file mode 100644
index 00000000000..9ea48179a43
--- /dev/null
+++ b/actions/setup/js/report_pre_activation_skip.cjs
@@ -0,0 +1,207 @@
+// @ts-check
+///
+
+/**
+ * Reports why the workflow was not activated (skipped by pre-activation gate).
+ * Called from the pre_activation job with `if: always()` condition.
+ * Only writes to job summary when activation was denied by one or more checks.
+ *
+ * Environment variables (all optional — empty means "check was not configured"):
+ * GH_AW_IS_TEAM_MEMBER - "true"/"false" from check_membership step
+ * GH_AW_MEMBERSHIP_RESULT - result code from check_membership step
+ * GH_AW_MEMBERSHIP_ERROR_MESSAGE - human-readable error from check_membership step
+ * GH_AW_STOP_TIME_OK - "true"/"false" from check_stop_time step
+ * GH_AW_RATE_LIMIT_OK - "true"/"false" from check_rate_limit step
+ * GH_AW_SKIP_CHECK_OK - "true"/"false" from check_skip_if_match step
+ * GH_AW_SKIP_NO_MATCH_OK - "true"/"false" from check_skip_if_no_match step
+ * GH_AW_SKIP_IF_CHECK_FAILING_OK - "true"/"false" from check_skip_if_check_failing step
+ * GH_AW_SKIP_ROLES_OK - "true"/"false" from check_skip_roles step
+ * GH_AW_SKIP_ROLES_ERROR_MESSAGE - human-readable error from check_skip_roles step
+ * GH_AW_SKIP_BOTS_OK - "true"/"false" from check_skip_bots step
+ * GH_AW_SKIP_BOTS_ERROR_MESSAGE - human-readable error from check_skip_bots step
+ * GH_AW_COMMAND_POSITION_OK - "true"/"false" from check_command_position step
+ */
+
+/**
+ * @typedef {{ check: string, message: string, result: string, remediation: string }} SkipReason
+ */
+
+async function main() {
+ const reasons = collectSkipReasons();
+
+ if (reasons.length === 0) {
+ // All checks passed (or no checks were configured) — nothing to report.
+ core.info("✅ All pre-activation checks passed, no skip reason to report.");
+ return;
+ }
+
+ core.info(`⏭️ Workflow activation denied by ${reasons.length} check(s). Writing skip reason to job summary...`);
+ await writeSkipSummary(reasons);
+}
+
+/**
+ * Collects skip reasons from the environment variables set by each check step.
+ * A check is considered failing when its ok-output is exactly "false".
+ * An empty / undefined value means the check was not configured — skip it.
+ *
+ * @returns {SkipReason[]}
+ */
+function collectSkipReasons() {
+ /** @type {SkipReason[]} */
+ const reasons = [];
+
+ // Role / bot check (check_membership step)
+ const isTeamMember = process.env.GH_AW_IS_TEAM_MEMBER;
+ if (isTeamMember === "false") {
+ const result = process.env.GH_AW_MEMBERSHIP_RESULT || "insufficient_permissions";
+ const errorMsg = process.env.GH_AW_MEMBERSHIP_ERROR_MESSAGE || "Actor does not have the required repository permissions.";
+ reasons.push({
+ check: "Role / bot check",
+ message: errorMsg,
+ result,
+ remediation: buildMembershipRemediation(result),
+ });
+ }
+
+ // Stop-time check (check_stop_time step)
+ const stopTimeOk = process.env.GH_AW_STOP_TIME_OK;
+ if (stopTimeOk === "false") {
+ reasons.push({
+ check: "Stop-time limit",
+ message: "The workflow is past its configured stop-time limit.",
+ result: "stop_time_exceeded",
+ remediation: "Update or remove `on.stop-time:` in the workflow frontmatter to extend the active window.",
+ });
+ }
+
+ // Rate-limit check (check_rate_limit step)
+ const rateLimitOk = process.env.GH_AW_RATE_LIMIT_OK;
+ if (rateLimitOk === "false") {
+ reasons.push({
+ check: "Rate-limit check",
+ message: "The actor has exceeded the configured rate limit for this workflow.",
+ result: "rate_limit_exceeded",
+ remediation: "Adjust `on.rate-limit:` in the workflow frontmatter, or wait for the time window to expire.",
+ });
+ }
+
+ // Skip-if-match check (check_skip_if_match step)
+ const skipCheckOk = process.env.GH_AW_SKIP_CHECK_OK;
+ if (skipCheckOk === "false") {
+ reasons.push({
+ check: "Skip-if-match check",
+ message: "The skip-if-match query matched, so the workflow was intentionally skipped.",
+ result: "skip_if_match",
+ remediation: "Update `on.skip-if-match:` in the workflow frontmatter if this skip was unexpected.",
+ });
+ }
+
+ // Skip-if-no-match check (check_skip_if_no_match step)
+ const skipNoMatchOk = process.env.GH_AW_SKIP_NO_MATCH_OK;
+ if (skipNoMatchOk === "false") {
+ reasons.push({
+ check: "Skip-if-no-match check",
+ message: "The skip-if-no-match query returned no results, so the workflow was intentionally skipped.",
+ result: "skip_if_no_match",
+ remediation: "Update `on.skip-if-no-match:` in the workflow frontmatter if this skip was unexpected.",
+ });
+ }
+
+ // Skip-if-check-failing check (check_skip_if_check_failing step)
+ const skipIfCheckFailingOk = process.env.GH_AW_SKIP_IF_CHECK_FAILING_OK;
+ if (skipIfCheckFailingOk === "false") {
+ reasons.push({
+ check: "Skip-if-check-failing",
+ message: "A required check is currently failing, so the workflow was intentionally skipped.",
+ result: "skip_if_check_failing",
+ remediation: "Fix the failing check referenced in `on.skip-if-check-failing:`, or update the frontmatter configuration.",
+ });
+ }
+
+ // Skip-roles check (check_skip_roles step)
+ const skipRolesOk = process.env.GH_AW_SKIP_ROLES_OK;
+ if (skipRolesOk === "false") {
+ const errorMsg = process.env.GH_AW_SKIP_ROLES_ERROR_MESSAGE || "Actor has a role that is configured to skip this workflow.";
+ reasons.push({
+ check: "Skip-roles check",
+ message: errorMsg,
+ result: "skip_roles",
+ remediation: "Update `on.skip-roles:` in the workflow frontmatter to change which roles are excluded.",
+ });
+ }
+
+ // Skip-bots check (check_skip_bots step)
+ const skipBotsOk = process.env.GH_AW_SKIP_BOTS_OK;
+ if (skipBotsOk === "false") {
+ const errorMsg = process.env.GH_AW_SKIP_BOTS_ERROR_MESSAGE || "Actor is in the skip-bots list for this workflow.";
+ reasons.push({
+ check: "Skip-bots check",
+ message: errorMsg,
+ result: "skip_bots",
+ remediation: "Update `on.skip-bots:` in the workflow frontmatter to change which bots are excluded.",
+ });
+ }
+
+ // Command-position check (check_command_position step)
+ const commandPositionOk = process.env.GH_AW_COMMAND_POSITION_OK;
+ if (commandPositionOk === "false") {
+ reasons.push({
+ check: "Command check",
+ message: "The required trigger command was not found in the expected position.",
+ result: "command_not_found",
+ remediation: "Make sure the trigger comment starts with the required command defined in `on.command:` in the workflow frontmatter.",
+ });
+ }
+
+ return reasons;
+}
+
+/**
+ * Returns a remediation hint tailored to the membership check result code.
+ *
+ * @param {string} result - The result code from check_membership.cjs
+ * @returns {string}
+ */
+function buildMembershipRemediation(result) {
+ switch (result) {
+ case "insufficient_permissions":
+ return (
+ "The actor does not have the required repository permission. " +
+ "To allow a bot or GitHub App, add it to `on.bots:` in the workflow frontmatter. " +
+ "To change the required human-actor roles, update `on.roles:` in the workflow frontmatter."
+ );
+ case "bot_not_active":
+ return "The bot is in the allowed list but is not installed or active on this repository. Install the GitHub App and try again.";
+ case "api_error":
+ return "The permission check failed with a GitHub API error. Check the pre_activation job log for details.";
+ case "config_error":
+ return "The workflow has a permission configuration error. Contact the repository administrator.";
+ default:
+ return "To allow a bot or GitHub App actor, add it to `on.bots:` in the workflow frontmatter. " + "To change the required roles for human actors, update `on.roles:` in the workflow frontmatter.";
+ }
+}
+
+/**
+ * Writes the skip reasons to the GitHub Actions job summary.
+ *
+ * @param {SkipReason[]} reasons
+ */
+async function writeSkipSummary(reasons) {
+ const lines = [];
+ lines.push("## ⏭️ Workflow Activation Skipped\n");
+ lines.push("This workflow run was not activated because one or more pre-activation checks denied execution.\n");
+
+ for (const reason of reasons) {
+ lines.push(`### ${reason.check}`);
+ lines.push(`> ${reason.message}\n`);
+ lines.push(`**Remediation:** ${reason.remediation}\n`);
+ }
+
+ lines.push("---");
+ lines.push("_This summary is generated by [gh-aw](https://github.com/github/gh-aw). See the `pre_activation` job log for full details._");
+
+ await core.summary.addRaw(lines.join("\n")).write();
+ core.info("📝 Skip reason written to job summary.");
+}
+
+module.exports = { main, collectSkipReasons, buildMembershipRemediation };
diff --git a/actions/setup/js/report_pre_activation_skip.test.cjs b/actions/setup/js/report_pre_activation_skip.test.cjs
new file mode 100644
index 00000000000..fa1911b06c4
--- /dev/null
+++ b/actions/setup/js/report_pre_activation_skip.test.cjs
@@ -0,0 +1,261 @@
+import { describe, it, expect, beforeEach, afterEach, vi } from "vitest";
+
+describe("report_pre_activation_skip.cjs", () => {
+ let mockCore;
+
+ beforeEach(() => {
+ mockCore = {
+ info: vi.fn(),
+ warning: vi.fn(),
+ error: vi.fn(),
+ setFailed: vi.fn(),
+ setOutput: vi.fn(),
+ summary: {
+ addRaw: vi.fn().mockReturnThis(),
+ write: vi.fn().mockResolvedValue(undefined),
+ },
+ };
+
+ global.core = mockCore;
+
+ // Clear all relevant env vars
+ const vars = [
+ "GH_AW_IS_TEAM_MEMBER",
+ "GH_AW_MEMBERSHIP_RESULT",
+ "GH_AW_MEMBERSHIP_ERROR_MESSAGE",
+ "GH_AW_STOP_TIME_OK",
+ "GH_AW_RATE_LIMIT_OK",
+ "GH_AW_SKIP_CHECK_OK",
+ "GH_AW_SKIP_NO_MATCH_OK",
+ "GH_AW_SKIP_IF_CHECK_FAILING_OK",
+ "GH_AW_SKIP_ROLES_OK",
+ "GH_AW_SKIP_ROLES_ERROR_MESSAGE",
+ "GH_AW_SKIP_BOTS_OK",
+ "GH_AW_SKIP_BOTS_ERROR_MESSAGE",
+ "GH_AW_COMMAND_POSITION_OK",
+ ];
+ for (const v of vars) {
+ delete process.env[v];
+ }
+
+ vi.resetModules();
+ });
+
+ afterEach(() => {
+ vi.clearAllMocks();
+ delete global.core;
+ });
+
+ // ---- main() ----
+
+ it("should not write summary when all checks pass", async () => {
+ process.env.GH_AW_IS_TEAM_MEMBER = "true";
+ process.env.GH_AW_STOP_TIME_OK = "true";
+ process.env.GH_AW_RATE_LIMIT_OK = "true";
+
+ const { main } = await import("./report_pre_activation_skip.cjs");
+ await main();
+
+ expect(mockCore.summary.addRaw).not.toHaveBeenCalled();
+ expect(mockCore.summary.write).not.toHaveBeenCalled();
+ expect(mockCore.info).toHaveBeenCalledWith(expect.stringContaining("All pre-activation checks passed"));
+ });
+
+ it("should not write summary when no check env vars are set (checks not configured)", async () => {
+ const { main } = await import("./report_pre_activation_skip.cjs");
+ await main();
+
+ expect(mockCore.summary.addRaw).not.toHaveBeenCalled();
+ });
+
+ it("should write summary when membership check fails", async () => {
+ process.env.GH_AW_IS_TEAM_MEMBER = "false";
+ process.env.GH_AW_MEMBERSHIP_RESULT = "insufficient_permissions";
+ process.env.GH_AW_MEMBERSHIP_ERROR_MESSAGE = "Access denied: User 'prd-to-prod-pipeline[bot]' is not authorized.";
+
+ const { main } = await import("./report_pre_activation_skip.cjs");
+ await main();
+
+ expect(mockCore.summary.addRaw).toHaveBeenCalledTimes(1);
+ expect(mockCore.summary.write).toHaveBeenCalledTimes(1);
+
+ const summaryText = mockCore.summary.addRaw.mock.calls[0][0];
+ expect(summaryText).toContain("⏭️ Workflow Activation Skipped");
+ expect(summaryText).toContain("Role / bot check");
+ expect(summaryText).toContain("prd-to-prod-pipeline[bot]");
+ expect(summaryText).toContain("on.bots:");
+ expect(summaryText).toContain("on.roles:");
+ });
+
+ it("should write summary when stop-time check fails", async () => {
+ process.env.GH_AW_STOP_TIME_OK = "false";
+
+ const { main } = await import("./report_pre_activation_skip.cjs");
+ await main();
+
+ expect(mockCore.summary.addRaw).toHaveBeenCalledTimes(1);
+ const summaryText = mockCore.summary.addRaw.mock.calls[0][0];
+ expect(summaryText).toContain("Stop-time limit");
+ expect(summaryText).toContain("on.stop-time:");
+ });
+
+ it("should write summary when rate-limit check fails", async () => {
+ process.env.GH_AW_RATE_LIMIT_OK = "false";
+
+ const { main } = await import("./report_pre_activation_skip.cjs");
+ await main();
+
+ const summaryText = mockCore.summary.addRaw.mock.calls[0][0];
+ expect(summaryText).toContain("Rate-limit check");
+ expect(summaryText).toContain("on.rate-limit:");
+ });
+
+ it("should write summary when skip-if-match check fails", async () => {
+ process.env.GH_AW_SKIP_CHECK_OK = "false";
+
+ const { main } = await import("./report_pre_activation_skip.cjs");
+ await main();
+
+ const summaryText = mockCore.summary.addRaw.mock.calls[0][0];
+ expect(summaryText).toContain("Skip-if-match check");
+ expect(summaryText).toContain("on.skip-if-match:");
+ });
+
+ it("should write summary when skip-if-no-match check fails", async () => {
+ process.env.GH_AW_SKIP_NO_MATCH_OK = "false";
+
+ const { main } = await import("./report_pre_activation_skip.cjs");
+ await main();
+
+ const summaryText = mockCore.summary.addRaw.mock.calls[0][0];
+ expect(summaryText).toContain("Skip-if-no-match check");
+ expect(summaryText).toContain("on.skip-if-no-match:");
+ });
+
+ it("should write summary when skip-if-check-failing check fails", async () => {
+ process.env.GH_AW_SKIP_IF_CHECK_FAILING_OK = "false";
+
+ const { main } = await import("./report_pre_activation_skip.cjs");
+ await main();
+
+ const summaryText = mockCore.summary.addRaw.mock.calls[0][0];
+ expect(summaryText).toContain("Skip-if-check-failing");
+ expect(summaryText).toContain("on.skip-if-check-failing:");
+ });
+
+ it("should write summary when skip-roles check fails with error message", async () => {
+ process.env.GH_AW_SKIP_ROLES_OK = "false";
+ process.env.GH_AW_SKIP_ROLES_ERROR_MESSAGE = "Workflow skipped: User 'admin-user' has role 'admin'";
+
+ const { main } = await import("./report_pre_activation_skip.cjs");
+ await main();
+
+ const summaryText = mockCore.summary.addRaw.mock.calls[0][0];
+ expect(summaryText).toContain("Skip-roles check");
+ expect(summaryText).toContain("admin-user");
+ expect(summaryText).toContain("on.skip-roles:");
+ });
+
+ it("should write summary when skip-bots check fails with error message", async () => {
+ process.env.GH_AW_SKIP_BOTS_OK = "false";
+ process.env.GH_AW_SKIP_BOTS_ERROR_MESSAGE = "Workflow skipped: User 'renovate[bot]' is in skip-bots";
+
+ const { main } = await import("./report_pre_activation_skip.cjs");
+ await main();
+
+ const summaryText = mockCore.summary.addRaw.mock.calls[0][0];
+ expect(summaryText).toContain("Skip-bots check");
+ expect(summaryText).toContain("renovate[bot]");
+ expect(summaryText).toContain("on.skip-bots:");
+ });
+
+ it("should write summary when command-position check fails", async () => {
+ process.env.GH_AW_COMMAND_POSITION_OK = "false";
+
+ const { main } = await import("./report_pre_activation_skip.cjs");
+ await main();
+
+ const summaryText = mockCore.summary.addRaw.mock.calls[0][0];
+ expect(summaryText).toContain("Command check");
+ expect(summaryText).toContain("on.command:");
+ });
+
+ it("should write summary with multiple failures", async () => {
+ process.env.GH_AW_IS_TEAM_MEMBER = "false";
+ process.env.GH_AW_MEMBERSHIP_RESULT = "insufficient_permissions";
+ process.env.GH_AW_STOP_TIME_OK = "false";
+
+ const { main } = await import("./report_pre_activation_skip.cjs");
+ await main();
+
+ const summaryText = mockCore.summary.addRaw.mock.calls[0][0];
+ expect(summaryText).toContain("Role / bot check");
+ expect(summaryText).toContain("Stop-time limit");
+ });
+
+ it("should include a link to gh-aw in the summary footer", async () => {
+ process.env.GH_AW_IS_TEAM_MEMBER = "false";
+
+ const { main } = await import("./report_pre_activation_skip.cjs");
+ await main();
+
+ const summaryText = mockCore.summary.addRaw.mock.calls[0][0];
+ expect(summaryText).toContain("gh-aw");
+ expect(summaryText).toContain("pre_activation");
+ });
+
+ // ---- collectSkipReasons() ----
+
+ it("should return empty array when no checks failed", async () => {
+ const { collectSkipReasons } = await import("./report_pre_activation_skip.cjs");
+ const reasons = collectSkipReasons();
+ expect(reasons).toHaveLength(0);
+ });
+
+ it("should return one reason when membership check fails", async () => {
+ process.env.GH_AW_IS_TEAM_MEMBER = "false";
+ process.env.GH_AW_MEMBERSHIP_RESULT = "bot_not_active";
+ process.env.GH_AW_MEMBERSHIP_ERROR_MESSAGE = "Bot is not active";
+
+ const { collectSkipReasons } = await import("./report_pre_activation_skip.cjs");
+ const reasons = collectSkipReasons();
+
+ expect(reasons).toHaveLength(1);
+ expect(reasons[0].check).toBe("Role / bot check");
+ expect(reasons[0].result).toBe("bot_not_active");
+ expect(reasons[0].message).toBe("Bot is not active");
+ });
+
+ // ---- buildMembershipRemediation() ----
+
+ it("should return insufficient_permissions remediation mentioning on.bots and on.roles", async () => {
+ const { buildMembershipRemediation } = await import("./report_pre_activation_skip.cjs");
+ const hint = buildMembershipRemediation("insufficient_permissions");
+ expect(hint).toContain("on.bots:");
+ expect(hint).toContain("on.roles:");
+ });
+
+ it("should return bot_not_active remediation about GitHub App installation", async () => {
+ const { buildMembershipRemediation } = await import("./report_pre_activation_skip.cjs");
+ const hint = buildMembershipRemediation("bot_not_active");
+ expect(hint).toContain("Install the GitHub App");
+ });
+
+ it("should return api_error remediation mentioning the job log", async () => {
+ const { buildMembershipRemediation } = await import("./report_pre_activation_skip.cjs");
+ const hint = buildMembershipRemediation("api_error");
+ expect(hint).toContain("pre_activation");
+ });
+
+ it("should return config_error remediation mentioning the administrator", async () => {
+ const { buildMembershipRemediation } = await import("./report_pre_activation_skip.cjs");
+ const hint = buildMembershipRemediation("config_error");
+ expect(hint).toContain("administrator");
+ });
+
+ it("should return default remediation for unknown result codes", async () => {
+ const { buildMembershipRemediation } = await import("./report_pre_activation_skip.cjs");
+ const hint = buildMembershipRemediation("unknown_result");
+ expect(hint).toContain("on.bots:");
+ });
+});
diff --git a/pkg/constants/job_constants.go b/pkg/constants/job_constants.go
index 352aaa2da72..7d46e88be7e 100644
--- a/pkg/constants/job_constants.go
+++ b/pkg/constants/job_constants.go
@@ -159,6 +159,10 @@ const CheckSkipIfCheckFailingStepID StepID = "check_skip_if_check_failing"
// emitted in the pre-activation job when on.github-app is configured alongside skip-if checks.
const PreActivationAppTokenStepID StepID = "pre-activation-app-token"
+// ReportSkipReasonStepID is the step ID for the report-skip-reason step in the pre-activation job.
+// This step runs with if: always() and writes skip reasons to the job summary when activation is denied.
+const ReportSkipReasonStepID StepID = "report-skip-reason"
+
// ParseMCPGatewayStepID is the step ID for the MCP gateway log parsing step in the agent job.
// Its effective_tokens output is exposed as an agent job output so that the safe_outputs job
// can pass the value as GH_AW_EFFECTIVE_TOKENS to the footer template renderer.
diff --git a/pkg/workflow/compiler_pre_activation_job.go b/pkg/workflow/compiler_pre_activation_job.go
index 80d1cf8fce9..b17527d6291 100644
--- a/pkg/workflow/compiler_pre_activation_job.go
+++ b/pkg/workflow/compiler_pre_activation_job.go
@@ -421,6 +421,13 @@ func (c *Compiler) buildPreActivationJob(data *WorkflowData, needsPermissionChec
jobIfCondition = data.If
}
+ // Add report-skip-reason step to surface denial reasons in the job summary when activation
+ // is denied. Only added when there are actual blocking conditions (not for on.steps-only
+ // pre-activation where activated is unconditionally true).
+ if len(conditions) > 0 {
+ steps = append(steps, c.generateReportSkipStep(needsPermissionCheck, data))
+ }
+
// In script mode, explicitly add a cleanup step (mirrors post.js in dev/release/action mode).
if c.actionMode.IsScript() {
steps = append(steps, c.generateScriptModeCleanupStep())
@@ -439,6 +446,82 @@ func (c *Compiler) buildPreActivationJob(data *WorkflowData, needsPermissionChec
return job, nil
}
+// generateReportSkipStep generates the "Report skip reason" step for the pre-activation job.
+// The step runs with if: always() and writes skip reasons to the GitHub Actions job summary
+// when one or more pre-activation checks deny activation, so operators can see the denial
+// reason directly from the PR / workflow run surface without opening raw job logs.
+//
+// Only env vars for checks that are actually configured are emitted, keeping the YAML minimal
+// and avoiding actionlint warnings about references to unconfigured step outputs.
+func (c *Compiler) generateReportSkipStep(needsPermissionCheck bool, data *WorkflowData) string {
+ var step strings.Builder
+
+ step.WriteString(" - name: Report skip reason\n")
+ step.WriteString(fmt.Sprintf(" id: %s\n", constants.ReportSkipReasonStepID))
+ step.WriteString(" if: always()\n")
+ step.WriteString(fmt.Sprintf(" uses: %s\n", GetActionPin("actions/github-script")))
+ step.WriteString(" env:\n")
+
+ if needsPermissionCheck {
+ step.WriteString(fmt.Sprintf(" GH_AW_IS_TEAM_MEMBER: ${{ steps.%s.outputs.%s }}\n",
+ constants.CheckMembershipStepID, constants.IsTeamMemberOutput))
+ step.WriteString(fmt.Sprintf(" GH_AW_MEMBERSHIP_RESULT: ${{ steps.%s.outputs.result }}\n",
+ constants.CheckMembershipStepID))
+ step.WriteString(fmt.Sprintf(" GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.%s.outputs.error_message }}\n",
+ constants.CheckMembershipStepID))
+ }
+
+ if data.StopTime != "" {
+ step.WriteString(fmt.Sprintf(" GH_AW_STOP_TIME_OK: ${{ steps.%s.outputs.%s }}\n",
+ constants.CheckStopTimeStepID, constants.StopTimeOkOutput))
+ }
+
+ if data.RateLimit != nil {
+ step.WriteString(fmt.Sprintf(" GH_AW_RATE_LIMIT_OK: ${{ steps.%s.outputs.%s }}\n",
+ constants.CheckRateLimitStepID, constants.RateLimitOkOutput))
+ }
+
+ if data.SkipIfMatch != nil {
+ step.WriteString(fmt.Sprintf(" GH_AW_SKIP_CHECK_OK: ${{ steps.%s.outputs.%s }}\n",
+ constants.CheckSkipIfMatchStepID, constants.SkipCheckOkOutput))
+ }
+
+ if data.SkipIfNoMatch != nil {
+ step.WriteString(fmt.Sprintf(" GH_AW_SKIP_NO_MATCH_OK: ${{ steps.%s.outputs.%s }}\n",
+ constants.CheckSkipIfNoMatchStepID, constants.SkipNoMatchCheckOkOutput))
+ }
+
+ if data.SkipIfCheckFailing != nil {
+ step.WriteString(fmt.Sprintf(" GH_AW_SKIP_IF_CHECK_FAILING_OK: ${{ steps.%s.outputs.%s }}\n",
+ constants.CheckSkipIfCheckFailingStepID, constants.SkipIfCheckFailingOkOutput))
+ }
+
+ if len(data.SkipRoles) > 0 {
+ step.WriteString(fmt.Sprintf(" GH_AW_SKIP_ROLES_OK: ${{ steps.%s.outputs.%s }}\n",
+ constants.CheckSkipRolesStepID, constants.SkipRolesOkOutput))
+ step.WriteString(fmt.Sprintf(" GH_AW_SKIP_ROLES_ERROR_MESSAGE: ${{ steps.%s.outputs.error_message }}\n",
+ constants.CheckSkipRolesStepID))
+ }
+
+ if len(data.SkipBots) > 0 {
+ step.WriteString(fmt.Sprintf(" GH_AW_SKIP_BOTS_OK: ${{ steps.%s.outputs.%s }}\n",
+ constants.CheckSkipBotsStepID, constants.SkipBotsOkOutput))
+ step.WriteString(fmt.Sprintf(" GH_AW_SKIP_BOTS_ERROR_MESSAGE: ${{ steps.%s.outputs.error_message }}\n",
+ constants.CheckSkipBotsStepID))
+ }
+
+ if len(data.Command) > 0 {
+ step.WriteString(fmt.Sprintf(" GH_AW_COMMAND_POSITION_OK: ${{ steps.%s.outputs.%s }}\n",
+ constants.CheckCommandPositionStepID, constants.CommandPositionOkOutput))
+ }
+
+ step.WriteString(" with:\n")
+ step.WriteString(" script: |\n")
+ step.WriteString(generateGitHubScriptWithRequire("report_pre_activation_skip.cjs"))
+
+ return step.String()
+}
+
// extractPreActivationCustomFields extracts custom steps and outputs from jobs.pre-activation field in frontmatter.
// It validates that only steps and outputs fields are present, and errors on any other fields.
// If both jobs.pre-activation and jobs.pre_activation are defined, imports from both.
diff --git a/pkg/workflow/report_skip_reason_test.go b/pkg/workflow/report_skip_reason_test.go
new file mode 100644
index 00000000000..543377eb390
--- /dev/null
+++ b/pkg/workflow/report_skip_reason_test.go
@@ -0,0 +1,193 @@
+//go:build !integration
+
+package workflow
+
+import (
+ "os"
+ "path/filepath"
+ "testing"
+
+ "github.com/github/gh-aw/pkg/stringutil"
+ "github.com/github/gh-aw/pkg/testutil"
+ "github.com/stretchr/testify/assert"
+ "github.com/stretchr/testify/require"
+)
+
+// TestReportSkipReasonStep tests that the report-skip-reason step is generated correctly
+// in the pre-activation job whenever blocking conditions are present, so that operators
+// can see the denial reason from the PR / workflow-run surface without opening raw logs.
+func TestReportSkipReasonStep(t *testing.T) {
+ tmpDir := testutil.TempDir(t, "report-skip-reason-test")
+ compiler := NewCompiler()
+
+ t.Run("report_skip_reason_present_with_membership_check", func(t *testing.T) {
+ workflowContent := `---
+on:
+ pull_request:
+ types: [opened]
+ roles: [admin, maintainer, write]
+engine: copilot
+---
+
+# PR Review Workflow
+
+Review pull requests.
+`
+ workflowFile := filepath.Join(tmpDir, "membership-workflow.md")
+ err := os.WriteFile(workflowFile, []byte(workflowContent), 0644)
+ require.NoError(t, err, "Failed to write workflow file")
+
+ err = compiler.CompileWorkflow(workflowFile)
+ require.NoError(t, err, "Compilation failed")
+
+ lockFile := stringutil.MarkdownToLockFile(workflowFile)
+ lockContent, err := os.ReadFile(lockFile)
+ require.NoError(t, err, "Failed to read lock file")
+
+ lockContentStr := string(lockContent)
+
+ // Verify the report-skip-reason step is present
+ assert.Contains(t, lockContentStr, "id: report-skip-reason", "Expected report-skip-reason step ID")
+ assert.Contains(t, lockContentStr, "Report skip reason", "Expected Report skip reason step name")
+
+ // Verify the step has always() condition
+ assert.Contains(t, lockContentStr, "if: always()", "Expected always() condition on report-skip-reason step")
+
+ // Verify membership check env vars are passed
+ assert.Contains(t, lockContentStr, "GH_AW_IS_TEAM_MEMBER:", "Expected GH_AW_IS_TEAM_MEMBER env var")
+ assert.Contains(t, lockContentStr, "GH_AW_MEMBERSHIP_RESULT:", "Expected GH_AW_MEMBERSHIP_RESULT env var")
+ assert.Contains(t, lockContentStr, "GH_AW_MEMBERSHIP_ERROR_MESSAGE:", "Expected GH_AW_MEMBERSHIP_ERROR_MESSAGE env var")
+
+ // Verify the script calls report_pre_activation_skip.cjs
+ assert.Contains(t, lockContentStr, "report_pre_activation_skip.cjs", "Expected report_pre_activation_skip.cjs in script")
+ })
+
+ t.Run("report_skip_reason_present_with_stop_time", func(t *testing.T) {
+ workflowContent := `---
+on:
+ workflow_dispatch: null
+ stop-after: "+48h"
+ roles: [admin, maintainer]
+engine: copilot
+---
+
+# Stop-Time Workflow
+
+This workflow has a stop-after configuration.
+`
+ workflowFile := filepath.Join(tmpDir, "stop-time-workflow.md")
+ err := os.WriteFile(workflowFile, []byte(workflowContent), 0644)
+ require.NoError(t, err, "Failed to write workflow file")
+
+ err = compiler.CompileWorkflow(workflowFile)
+ require.NoError(t, err, "Compilation failed")
+
+ lockFile := stringutil.MarkdownToLockFile(workflowFile)
+ lockContent, err := os.ReadFile(lockFile)
+ require.NoError(t, err, "Failed to read lock file")
+
+ lockContentStr := string(lockContent)
+
+ assert.Contains(t, lockContentStr, "id: report-skip-reason", "Expected report-skip-reason step ID")
+ assert.Contains(t, lockContentStr, "GH_AW_STOP_TIME_OK:", "Expected GH_AW_STOP_TIME_OK env var")
+ })
+
+ t.Run("report_skip_reason_present_with_skip_bots", func(t *testing.T) {
+ workflowContent := `---
+on:
+ issues:
+ types: [opened]
+ skip-bots: [renovate, dependabot]
+engine: copilot
+---
+
+# Skip-Bots Workflow
+
+This workflow skips bot actors.
+`
+ workflowFile := filepath.Join(tmpDir, "skip-bots-workflow.md")
+ err := os.WriteFile(workflowFile, []byte(workflowContent), 0644)
+ require.NoError(t, err, "Failed to write workflow file")
+
+ err = compiler.CompileWorkflow(workflowFile)
+ require.NoError(t, err, "Compilation failed")
+
+ lockFile := stringutil.MarkdownToLockFile(workflowFile)
+ lockContent, err := os.ReadFile(lockFile)
+ require.NoError(t, err, "Failed to read lock file")
+
+ lockContentStr := string(lockContent)
+
+ assert.Contains(t, lockContentStr, "id: report-skip-reason", "Expected report-skip-reason step ID")
+ assert.Contains(t, lockContentStr, "GH_AW_SKIP_BOTS_OK:", "Expected GH_AW_SKIP_BOTS_OK env var")
+ assert.Contains(t, lockContentStr, "GH_AW_SKIP_BOTS_ERROR_MESSAGE:", "Expected GH_AW_SKIP_BOTS_ERROR_MESSAGE env var")
+ })
+
+ t.Run("report_skip_reason_present_with_skip_roles", func(t *testing.T) {
+ workflowContent := `---
+on:
+ pull_request:
+ types: [opened]
+ skip-roles: [admin]
+engine: copilot
+---
+
+# Skip-Roles Workflow
+
+This workflow skips admin actors.
+`
+ workflowFile := filepath.Join(tmpDir, "skip-roles-workflow.md")
+ err := os.WriteFile(workflowFile, []byte(workflowContent), 0644)
+ require.NoError(t, err, "Failed to write workflow file")
+
+ err = compiler.CompileWorkflow(workflowFile)
+ require.NoError(t, err, "Compilation failed")
+
+ lockFile := stringutil.MarkdownToLockFile(workflowFile)
+ lockContent, err := os.ReadFile(lockFile)
+ require.NoError(t, err, "Failed to read lock file")
+
+ lockContentStr := string(lockContent)
+
+ assert.Contains(t, lockContentStr, "id: report-skip-reason", "Expected report-skip-reason step ID")
+ assert.Contains(t, lockContentStr, "GH_AW_SKIP_ROLES_OK:", "Expected GH_AW_SKIP_ROLES_OK env var")
+ assert.Contains(t, lockContentStr, "GH_AW_SKIP_ROLES_ERROR_MESSAGE:", "Expected GH_AW_SKIP_ROLES_ERROR_MESSAGE env var")
+ })
+
+ t.Run("report_skip_reason_not_present_without_conditions", func(t *testing.T) {
+ // When activation is unconditionally true (roles: all + only on.steps), there are no
+ // blocking conditions so the report-skip-reason step should NOT be generated.
+ workflowContent := `---
+on:
+ pull_request:
+ types: [opened]
+ roles: all
+ steps:
+ - name: Custom gate
+ id: custom_gate
+ run: echo "gate_result=ok" >> $GITHUB_OUTPUT
+engine: copilot
+if: needs.pre_activation.outputs.custom_gate_result == 'ok'
+---
+
+# On-Steps-Only Workflow
+
+Uses on.steps to gate activation with no blocking conditions.
+`
+ workflowFile := filepath.Join(tmpDir, "on-steps-only-workflow.md")
+ err := os.WriteFile(workflowFile, []byte(workflowContent), 0644)
+ require.NoError(t, err, "Failed to write workflow file")
+
+ err = compiler.CompileWorkflow(workflowFile)
+ require.NoError(t, err, "Compilation failed")
+
+ lockFile := stringutil.MarkdownToLockFile(workflowFile)
+ lockContent, err := os.ReadFile(lockFile)
+ require.NoError(t, err, "Failed to read lock file")
+
+ lockContentStr := string(lockContent)
+
+ // No blocking conditions → no report-skip-reason step
+ assert.NotContains(t, lockContentStr, "report-skip-reason", "report-skip-reason step should not appear for on.steps-only workflows")
+ })
+}
diff --git a/pkg/workflow/testdata/TestWasmGolden_CompileFixtures/basic-copilot.golden b/pkg/workflow/testdata/TestWasmGolden_CompileFixtures/basic-copilot.golden
index 532e57b74dc..2595a853cbb 100644
--- a/pkg/workflow/testdata/TestWasmGolden_CompileFixtures/basic-copilot.golden
+++ b/pkg/workflow/testdata/TestWasmGolden_CompileFixtures/basic-copilot.golden
@@ -553,4 +553,18 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
diff --git a/pkg/workflow/testdata/TestWasmGolden_CompileFixtures/with-imports.golden b/pkg/workflow/testdata/TestWasmGolden_CompileFixtures/with-imports.golden
index 5ef0558e180..c4f6dd21af7 100644
--- a/pkg/workflow/testdata/TestWasmGolden_CompileFixtures/with-imports.golden
+++ b/pkg/workflow/testdata/TestWasmGolden_CompileFixtures/with-imports.golden
@@ -554,4 +554,18 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
+ - name: Report skip reason
+ id: report-skip-reason
+ if: always()
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
+ env:
+ GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
+ GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
+ GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
+ await main();
From 1c92d23755164d6052c65ea13702cd126d103930 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Mon, 6 Apr 2026 01:32:25 +0000
Subject: [PATCH 3/6] Integrate skip reason summary into existing check scripts
instead of a separate step
Agent-Logs-Url: https://github.com/github/gh-aw/sessions/483d2eeb-3b22-4f64-883c-a0c08a888fc0
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
---
.github/workflows/ace-editor.lock.yml | 15 -
.../agent-performance-analyzer.lock.yml | 14 -
.../workflows/agent-persona-explorer.lock.yml | 14 -
.github/workflows/ai-moderator.lock.yml | 16 --
.github/workflows/archie.lock.yml | 15 -
.github/workflows/auto-triage-issues.lock.yml | 15 -
.github/workflows/brave.lock.yml | 15 -
.../breaking-change-checker.lock.yml | 15 -
.github/workflows/changeset.lock.yml | 14 -
.github/workflows/ci-doctor.lock.yml | 14 -
.github/workflows/cloclo.lock.yml | 15 -
.../workflows/code-scanning-fixer.lock.yml | 15 -
.github/workflows/code-simplifier.lock.yml | 15 -
.github/workflows/craft.lock.yml | 15 -
.../workflows/daily-cli-performance.lock.yml | 14 -
.github/workflows/daily-file-diet.lock.yml | 15 -
.../workflows/daily-issues-report.lock.yml | 14 -
.../daily-observability-report.lock.yml | 14 -
.../daily-rendering-scripts-verifier.lock.yml | 15 -
.../daily-safe-output-optimizer.lock.yml | 15 -
.github/workflows/daily-team-status.lock.yml | 12 -
.../daily-testify-uber-super-expert.lock.yml | 15 -
.github/workflows/dead-code-remover.lock.yml | 15 -
.github/workflows/dependabot-burner.lock.yml | 14 -
.github/workflows/dev-hawk.lock.yml | 14 -
.github/workflows/dev.lock.yml | 14 -
.github/workflows/firewall-escape.lock.yml | 14 -
.github/workflows/grumpy-reviewer.lock.yml | 15 -
.github/workflows/issue-monster.lock.yml | 17 --
.github/workflows/mergefest.lock.yml | 15 -
.github/workflows/metrics-collector.lock.yml | 14 -
.github/workflows/pdf-summary.lock.yml | 15 -
.github/workflows/plan.lock.yml | 15 -
.github/workflows/poem-bot.lock.yml | 15 -
.../workflows/pr-nitpick-reviewer.lock.yml | 15 -
.github/workflows/q.lock.yml | 15 -
.github/workflows/refiner.lock.yml | 14 -
.github/workflows/release.lock.yml | 14 -
.github/workflows/scout.lock.yml | 15 -
.github/workflows/security-review.lock.yml | 15 -
.../workflows/slide-deck-maintainer.lock.yml | 15 -
.../workflows/smoke-agent-all-merged.lock.yml | 14 -
.../workflows/smoke-agent-all-none.lock.yml | 14 -
.../smoke-agent-public-approved.lock.yml | 14 -
.../smoke-agent-public-none.lock.yml | 14 -
.../smoke-agent-scoped-approved.lock.yml | 14 -
.../workflows/smoke-call-workflow.lock.yml | 14 -
.github/workflows/smoke-claude.lock.yml | 14 -
.github/workflows/smoke-codex.lock.yml | 14 -
.github/workflows/smoke-copilot-arm.lock.yml | 14 -
.github/workflows/smoke-copilot.lock.yml | 14 -
.../smoke-create-cross-repo-pr.lock.yml | 14 -
.github/workflows/smoke-gemini.lock.yml | 14 -
.github/workflows/smoke-multi-pr.lock.yml | 14 -
.github/workflows/smoke-project.lock.yml | 14 -
.../workflows/smoke-service-ports.lock.yml | 14 -
.github/workflows/smoke-temporary-id.lock.yml | 14 -
.github/workflows/smoke-test-tools.lock.yml | 14 -
.../smoke-update-cross-repo-pr.lock.yml | 14 -
.../smoke-workflow-call-with-inputs.lock.yml | 14 -
.../workflows/smoke-workflow-call.lock.yml | 14 -
.github/workflows/tidy.lock.yml | 15 -
.../workflows/ubuntu-image-analyzer.lock.yml | 15 -
.github/workflows/unbloat-docs.lock.yml | 15 -
.github/workflows/update-astro.lock.yml | 15 -
.github/workflows/workflow-generator.lock.yml | 15 -
.../workflow-health-manager.lock.yml | 14 -
actions/setup/js/check_command_position.cjs | 11 +
actions/setup/js/check_membership.cjs | 30 +-
actions/setup/js/check_skip_bots.cjs | 14 +-
actions/setup/js/check_skip_bots.test.cjs | 4 +
.../setup/js/check_skip_if_check_failing.cjs | 11 +
.../js/check_skip_if_check_failing.test.cjs | 4 +
actions/setup/js/check_skip_if_match.cjs | 11 +
actions/setup/js/check_skip_if_no_match.cjs | 11 +
.../setup/js/check_skip_if_no_match.test.cjs | 4 +
actions/setup/js/check_skip_roles.cjs | 14 +-
actions/setup/js/check_stop_time.cjs | 11 +
.../setup/js/report_pre_activation_skip.cjs | 207 --------------
.../js/report_pre_activation_skip.test.cjs | 261 ------------------
pkg/constants/job_constants.go | 4 -
pkg/workflow/compiler_pre_activation_job.go | 81 ------
pkg/workflow/report_skip_reason_test.go | 193 -------------
.../basic-copilot.golden | 14 -
.../with-imports.golden | 14 -
85 files changed, 116 insertions(+), 1753 deletions(-)
delete mode 100644 actions/setup/js/report_pre_activation_skip.cjs
delete mode 100644 actions/setup/js/report_pre_activation_skip.test.cjs
delete mode 100644 pkg/workflow/report_skip_reason_test.go
diff --git a/.github/workflows/ace-editor.lock.yml b/.github/workflows/ace-editor.lock.yml
index 630f9160c75..0b7c12bf770 100644
--- a/.github/workflows/ace-editor.lock.yml
+++ b/.github/workflows/ace-editor.lock.yml
@@ -665,19 +665,4 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_command_position.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- GH_AW_COMMAND_POSITION_OK: ${{ steps.check_command_position.outputs.command_position_ok }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
diff --git a/.github/workflows/agent-performance-analyzer.lock.yml b/.github/workflows/agent-performance-analyzer.lock.yml
index d1fb38a8f3a..80bdddd9b15 100644
--- a/.github/workflows/agent-performance-analyzer.lock.yml
+++ b/.github/workflows/agent-performance-analyzer.lock.yml
@@ -1246,20 +1246,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
push_repo_memory:
needs:
diff --git a/.github/workflows/agent-persona-explorer.lock.yml b/.github/workflows/agent-persona-explorer.lock.yml
index 5368804febb..bc83b1d663b 100644
--- a/.github/workflows/agent-persona-explorer.lock.yml
+++ b/.github/workflows/agent-persona-explorer.lock.yml
@@ -1195,20 +1195,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/ai-moderator.lock.yml b/.github/workflows/ai-moderator.lock.yml
index e91a826dddf..dabcbc9fe78 100644
--- a/.github/workflows/ai-moderator.lock.yml
+++ b/.github/workflows/ai-moderator.lock.yml
@@ -1030,22 +1030,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_skip_bots.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_RATE_LIMIT_OK: ${{ steps.check_rate_limit.outputs.rate_limit_ok }}
- GH_AW_SKIP_ROLES_OK: ${{ steps.check_skip_roles.outputs.skip_roles_ok }}
- GH_AW_SKIP_ROLES_ERROR_MESSAGE: ${{ steps.check_skip_roles.outputs.error_message }}
- GH_AW_SKIP_BOTS_OK: ${{ steps.check_skip_bots.outputs.skip_bots_ok }}
- GH_AW_SKIP_BOTS_ERROR_MESSAGE: ${{ steps.check_skip_bots.outputs.error_message }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/archie.lock.yml b/.github/workflows/archie.lock.yml
index c21ab76f97c..bb98e437372 100644
--- a/.github/workflows/archie.lock.yml
+++ b/.github/workflows/archie.lock.yml
@@ -1224,21 +1224,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_command_position.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- GH_AW_COMMAND_POSITION_OK: ${{ steps.check_command_position.outputs.command_position_ok }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/auto-triage-issues.lock.yml b/.github/workflows/auto-triage-issues.lock.yml
index f5acd578f72..c6570b914e2 100644
--- a/.github/workflows/auto-triage-issues.lock.yml
+++ b/.github/workflows/auto-triage-issues.lock.yml
@@ -1143,21 +1143,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_rate_limit.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- GH_AW_RATE_LIMIT_OK: ${{ steps.check_rate_limit.outputs.rate_limit_ok }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/brave.lock.yml b/.github/workflows/brave.lock.yml
index 93e55db7ff0..362dcda6e9b 100644
--- a/.github/workflows/brave.lock.yml
+++ b/.github/workflows/brave.lock.yml
@@ -1171,21 +1171,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_command_position.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- GH_AW_COMMAND_POSITION_OK: ${{ steps.check_command_position.outputs.command_position_ok }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/breaking-change-checker.lock.yml b/.github/workflows/breaking-change-checker.lock.yml
index 82a0f98418d..e9695536987 100644
--- a/.github/workflows/breaking-change-checker.lock.yml
+++ b/.github/workflows/breaking-change-checker.lock.yml
@@ -1123,21 +1123,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_skip_if_match.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- GH_AW_SKIP_CHECK_OK: ${{ steps.check_skip_if_match.outputs.skip_check_ok }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/changeset.lock.yml b/.github/workflows/changeset.lock.yml
index 3d9a5e8ddf3..62395e3ca7d 100644
--- a/.github/workflows/changeset.lock.yml
+++ b/.github/workflows/changeset.lock.yml
@@ -1022,20 +1022,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/ci-doctor.lock.yml b/.github/workflows/ci-doctor.lock.yml
index b0aee2f768c..ecf2549847a 100644
--- a/.github/workflows/ci-doctor.lock.yml
+++ b/.github/workflows/ci-doctor.lock.yml
@@ -1333,20 +1333,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/cloclo.lock.yml b/.github/workflows/cloclo.lock.yml
index bfa818081bd..680bd2e1b78 100644
--- a/.github/workflows/cloclo.lock.yml
+++ b/.github/workflows/cloclo.lock.yml
@@ -1575,21 +1575,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_command_position.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- GH_AW_COMMAND_POSITION_OK: ${{ steps.check_command_position.outputs.command_position_ok }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/code-scanning-fixer.lock.yml b/.github/workflows/code-scanning-fixer.lock.yml
index 83df666f586..7e3fff7253c 100644
--- a/.github/workflows/code-scanning-fixer.lock.yml
+++ b/.github/workflows/code-scanning-fixer.lock.yml
@@ -1182,21 +1182,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_skip_if_match.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- GH_AW_SKIP_CHECK_OK: ${{ steps.check_skip_if_match.outputs.skip_check_ok }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
push_repo_memory:
needs:
diff --git a/.github/workflows/code-simplifier.lock.yml b/.github/workflows/code-simplifier.lock.yml
index 1f38a4a50fe..392624d9f86 100644
--- a/.github/workflows/code-simplifier.lock.yml
+++ b/.github/workflows/code-simplifier.lock.yml
@@ -1114,21 +1114,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_skip_if_match.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- GH_AW_SKIP_CHECK_OK: ${{ steps.check_skip_if_match.outputs.skip_check_ok }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/craft.lock.yml b/.github/workflows/craft.lock.yml
index 1976aa20622..942245a48ee 100644
--- a/.github/workflows/craft.lock.yml
+++ b/.github/workflows/craft.lock.yml
@@ -1177,21 +1177,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_command_position.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- GH_AW_COMMAND_POSITION_OK: ${{ steps.check_command_position.outputs.command_position_ok }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/daily-cli-performance.lock.yml b/.github/workflows/daily-cli-performance.lock.yml
index 69eae7f8012..e929b0954e3 100644
--- a/.github/workflows/daily-cli-performance.lock.yml
+++ b/.github/workflows/daily-cli-performance.lock.yml
@@ -1364,20 +1364,6 @@ jobs:
}
core.info(`has_changes=${hasChanges}`);
core.setOutput('has_changes', hasChanges ? 'true' : 'false');
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
push_repo_memory:
needs:
diff --git a/.github/workflows/daily-file-diet.lock.yml b/.github/workflows/daily-file-diet.lock.yml
index feec34e8975..6ea605d0fe7 100644
--- a/.github/workflows/daily-file-diet.lock.yml
+++ b/.github/workflows/daily-file-diet.lock.yml
@@ -1209,21 +1209,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_skip_if_match.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- GH_AW_SKIP_CHECK_OK: ${{ steps.check_skip_if_match.outputs.skip_check_ok }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/daily-issues-report.lock.yml b/.github/workflows/daily-issues-report.lock.yml
index fbe71a530ef..9e57bbaf849 100644
--- a/.github/workflows/daily-issues-report.lock.yml
+++ b/.github/workflows/daily-issues-report.lock.yml
@@ -1237,20 +1237,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/daily-observability-report.lock.yml b/.github/workflows/daily-observability-report.lock.yml
index d1dec8cbb75..82d6b4787a7 100644
--- a/.github/workflows/daily-observability-report.lock.yml
+++ b/.github/workflows/daily-observability-report.lock.yml
@@ -1207,20 +1207,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/daily-rendering-scripts-verifier.lock.yml b/.github/workflows/daily-rendering-scripts-verifier.lock.yml
index 24db89ddb27..ee64722a9c6 100644
--- a/.github/workflows/daily-rendering-scripts-verifier.lock.yml
+++ b/.github/workflows/daily-rendering-scripts-verifier.lock.yml
@@ -1351,21 +1351,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_skip_if_match.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- GH_AW_SKIP_CHECK_OK: ${{ steps.check_skip_if_match.outputs.skip_check_ok }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/daily-safe-output-optimizer.lock.yml b/.github/workflows/daily-safe-output-optimizer.lock.yml
index c32043f22b6..fc2cc3d77e2 100644
--- a/.github/workflows/daily-safe-output-optimizer.lock.yml
+++ b/.github/workflows/daily-safe-output-optimizer.lock.yml
@@ -1333,21 +1333,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_skip_if_match.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- GH_AW_SKIP_CHECK_OK: ${{ steps.check_skip_if_match.outputs.skip_check_ok }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/daily-team-status.lock.yml b/.github/workflows/daily-team-status.lock.yml
index 3918919c58c..0db5f079d5a 100644
--- a/.github/workflows/daily-team-status.lock.yml
+++ b/.github/workflows/daily-team-status.lock.yml
@@ -1117,18 +1117,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_stop_time.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_STOP_TIME_OK: ${{ steps.check_stop_time.outputs.stop_time_ok }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/daily-testify-uber-super-expert.lock.yml b/.github/workflows/daily-testify-uber-super-expert.lock.yml
index c5b07aa945b..3f651b55549 100644
--- a/.github/workflows/daily-testify-uber-super-expert.lock.yml
+++ b/.github/workflows/daily-testify-uber-super-expert.lock.yml
@@ -1251,21 +1251,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_skip_if_match.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- GH_AW_SKIP_CHECK_OK: ${{ steps.check_skip_if_match.outputs.skip_check_ok }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
push_repo_memory:
needs:
diff --git a/.github/workflows/dead-code-remover.lock.yml b/.github/workflows/dead-code-remover.lock.yml
index 7d56e3c70a6..9759d38c63e 100644
--- a/.github/workflows/dead-code-remover.lock.yml
+++ b/.github/workflows/dead-code-remover.lock.yml
@@ -1155,21 +1155,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_skip_if_match.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- GH_AW_SKIP_CHECK_OK: ${{ steps.check_skip_if_match.outputs.skip_check_ok }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/dependabot-burner.lock.yml b/.github/workflows/dependabot-burner.lock.yml
index 87f09d5d05d..eaf1d28fb2c 100644
--- a/.github/workflows/dependabot-burner.lock.yml
+++ b/.github/workflows/dependabot-burner.lock.yml
@@ -1082,20 +1082,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/dev-hawk.lock.yml b/.github/workflows/dev-hawk.lock.yml
index f7158f532ce..f89534ba151 100644
--- a/.github/workflows/dev-hawk.lock.yml
+++ b/.github/workflows/dev-hawk.lock.yml
@@ -1183,20 +1183,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/dev.lock.yml b/.github/workflows/dev.lock.yml
index dcea0d56ee9..d4e5ca891fd 100644
--- a/.github/workflows/dev.lock.yml
+++ b/.github/workflows/dev.lock.yml
@@ -1306,20 +1306,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/firewall-escape.lock.yml b/.github/workflows/firewall-escape.lock.yml
index 9d963081b67..63879bfbe21 100644
--- a/.github/workflows/firewall-escape.lock.yml
+++ b/.github/workflows/firewall-escape.lock.yml
@@ -1209,20 +1209,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
push_repo_memory:
needs:
diff --git a/.github/workflows/grumpy-reviewer.lock.yml b/.github/workflows/grumpy-reviewer.lock.yml
index d9927e89dbc..6222c6831ca 100644
--- a/.github/workflows/grumpy-reviewer.lock.yml
+++ b/.github/workflows/grumpy-reviewer.lock.yml
@@ -1248,21 +1248,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_command_position.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- GH_AW_COMMAND_POSITION_OK: ${{ steps.check_command_position.outputs.command_position_ok }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/issue-monster.lock.yml b/.github/workflows/issue-monster.lock.yml
index 261bc809479..15cf5785e5f 100644
--- a/.github/workflows/issue-monster.lock.yml
+++ b/.github/workflows/issue-monster.lock.yml
@@ -1868,23 +1868,6 @@ jobs:
core.setOutput('issue_list', '');
core.setOutput('has_issues', 'false');
}
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- GH_AW_SKIP_CHECK_OK: ${{ steps.check_skip_if_match.outputs.skip_check_ok }}
- GH_AW_SKIP_NO_MATCH_OK: ${{ steps.check_skip_if_no_match.outputs.skip_no_match_check_ok }}
- GH_AW_SKIP_IF_CHECK_FAILING_OK: ${{ steps.check_skip_if_check_failing.outputs.skip_if_check_failing_ok }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/mergefest.lock.yml b/.github/workflows/mergefest.lock.yml
index 5385906cf43..ba8fa5e49ad 100644
--- a/.github/workflows/mergefest.lock.yml
+++ b/.github/workflows/mergefest.lock.yml
@@ -1190,21 +1190,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_command_position.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- GH_AW_COMMAND_POSITION_OK: ${{ steps.check_command_position.outputs.command_position_ok }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/metrics-collector.lock.yml b/.github/workflows/metrics-collector.lock.yml
index 9e75bc66383..6f9c52d9f45 100644
--- a/.github/workflows/metrics-collector.lock.yml
+++ b/.github/workflows/metrics-collector.lock.yml
@@ -708,20 +708,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
push_repo_memory:
needs:
diff --git a/.github/workflows/pdf-summary.lock.yml b/.github/workflows/pdf-summary.lock.yml
index b59a89ac4de..9fed2c74da7 100644
--- a/.github/workflows/pdf-summary.lock.yml
+++ b/.github/workflows/pdf-summary.lock.yml
@@ -1265,21 +1265,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_command_position.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- GH_AW_COMMAND_POSITION_OK: ${{ steps.check_command_position.outputs.command_position_ok }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/plan.lock.yml b/.github/workflows/plan.lock.yml
index 9ccb2dfff12..f7fe52a6ef2 100644
--- a/.github/workflows/plan.lock.yml
+++ b/.github/workflows/plan.lock.yml
@@ -1192,21 +1192,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_command_position.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- GH_AW_COMMAND_POSITION_OK: ${{ steps.check_command_position.outputs.command_position_ok }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/poem-bot.lock.yml b/.github/workflows/poem-bot.lock.yml
index 787c59a5600..2ab55c9bed9 100644
--- a/.github/workflows/poem-bot.lock.yml
+++ b/.github/workflows/poem-bot.lock.yml
@@ -1554,21 +1554,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_command_position.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- GH_AW_COMMAND_POSITION_OK: ${{ steps.check_command_position.outputs.command_position_ok }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/pr-nitpick-reviewer.lock.yml b/.github/workflows/pr-nitpick-reviewer.lock.yml
index 76605d950f5..9007284c234 100644
--- a/.github/workflows/pr-nitpick-reviewer.lock.yml
+++ b/.github/workflows/pr-nitpick-reviewer.lock.yml
@@ -1262,21 +1262,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_command_position.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- GH_AW_COMMAND_POSITION_OK: ${{ steps.check_command_position.outputs.command_position_ok }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/q.lock.yml b/.github/workflows/q.lock.yml
index 093263dbbd0..8dedfe725d8 100644
--- a/.github/workflows/q.lock.yml
+++ b/.github/workflows/q.lock.yml
@@ -1426,21 +1426,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_command_position.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- GH_AW_COMMAND_POSITION_OK: ${{ steps.check_command_position.outputs.command_position_ok }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/refiner.lock.yml b/.github/workflows/refiner.lock.yml
index e36e5447450..a2e1c5a6588 100644
--- a/.github/workflows/refiner.lock.yml
+++ b/.github/workflows/refiner.lock.yml
@@ -1145,20 +1145,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/release.lock.yml b/.github/workflows/release.lock.yml
index f4bc0f66b07..a216e5b4a86 100644
--- a/.github/workflows/release.lock.yml
+++ b/.github/workflows/release.lock.yml
@@ -1244,20 +1244,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
push_tag:
needs:
diff --git a/.github/workflows/scout.lock.yml b/.github/workflows/scout.lock.yml
index cbc5becba5c..4fbfd2e9d0e 100644
--- a/.github/workflows/scout.lock.yml
+++ b/.github/workflows/scout.lock.yml
@@ -1460,21 +1460,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_command_position.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- GH_AW_COMMAND_POSITION_OK: ${{ steps.check_command_position.outputs.command_position_ok }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/security-review.lock.yml b/.github/workflows/security-review.lock.yml
index d59bffb3b3d..569476395db 100644
--- a/.github/workflows/security-review.lock.yml
+++ b/.github/workflows/security-review.lock.yml
@@ -1309,21 +1309,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_command_position.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- GH_AW_COMMAND_POSITION_OK: ${{ steps.check_command_position.outputs.command_position_ok }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/slide-deck-maintainer.lock.yml b/.github/workflows/slide-deck-maintainer.lock.yml
index a9cd29acb08..2077d9832cf 100644
--- a/.github/workflows/slide-deck-maintainer.lock.yml
+++ b/.github/workflows/slide-deck-maintainer.lock.yml
@@ -1229,21 +1229,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_skip_if_match.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- GH_AW_SKIP_CHECK_OK: ${{ steps.check_skip_if_match.outputs.skip_check_ok }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/smoke-agent-all-merged.lock.yml b/.github/workflows/smoke-agent-all-merged.lock.yml
index 927e9083ff9..7e3f36fbfac 100644
--- a/.github/workflows/smoke-agent-all-merged.lock.yml
+++ b/.github/workflows/smoke-agent-all-merged.lock.yml
@@ -1157,20 +1157,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/smoke-agent-all-none.lock.yml b/.github/workflows/smoke-agent-all-none.lock.yml
index 8e9f1753cc0..151a5e62986 100644
--- a/.github/workflows/smoke-agent-all-none.lock.yml
+++ b/.github/workflows/smoke-agent-all-none.lock.yml
@@ -1157,20 +1157,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/smoke-agent-public-approved.lock.yml b/.github/workflows/smoke-agent-public-approved.lock.yml
index 0d7051e3a22..31080c20a78 100644
--- a/.github/workflows/smoke-agent-public-approved.lock.yml
+++ b/.github/workflows/smoke-agent-public-approved.lock.yml
@@ -1190,20 +1190,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/smoke-agent-public-none.lock.yml b/.github/workflows/smoke-agent-public-none.lock.yml
index 2f77a301ee7..bcd34d3f38a 100644
--- a/.github/workflows/smoke-agent-public-none.lock.yml
+++ b/.github/workflows/smoke-agent-public-none.lock.yml
@@ -1157,20 +1157,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/smoke-agent-scoped-approved.lock.yml b/.github/workflows/smoke-agent-scoped-approved.lock.yml
index 921485e5bc0..a79cdbd2473 100644
--- a/.github/workflows/smoke-agent-scoped-approved.lock.yml
+++ b/.github/workflows/smoke-agent-scoped-approved.lock.yml
@@ -1164,20 +1164,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/smoke-call-workflow.lock.yml b/.github/workflows/smoke-call-workflow.lock.yml
index 9d99160f58b..8782b886e37 100644
--- a/.github/workflows/smoke-call-workflow.lock.yml
+++ b/.github/workflows/smoke-call-workflow.lock.yml
@@ -1130,20 +1130,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/smoke-claude.lock.yml b/.github/workflows/smoke-claude.lock.yml
index 731e0138f27..b6eb329bc79 100644
--- a/.github/workflows/smoke-claude.lock.yml
+++ b/.github/workflows/smoke-claude.lock.yml
@@ -2787,20 +2787,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/smoke-codex.lock.yml b/.github/workflows/smoke-codex.lock.yml
index a7cba19cc02..c71c051c9e2 100644
--- a/.github/workflows/smoke-codex.lock.yml
+++ b/.github/workflows/smoke-codex.lock.yml
@@ -1798,20 +1798,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/smoke-copilot-arm.lock.yml b/.github/workflows/smoke-copilot-arm.lock.yml
index e5f545e03cb..187fc9c6e2b 100644
--- a/.github/workflows/smoke-copilot-arm.lock.yml
+++ b/.github/workflows/smoke-copilot-arm.lock.yml
@@ -2100,20 +2100,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/smoke-copilot.lock.yml b/.github/workflows/smoke-copilot.lock.yml
index c426980d750..e51a00e1d99 100644
--- a/.github/workflows/smoke-copilot.lock.yml
+++ b/.github/workflows/smoke-copilot.lock.yml
@@ -2150,20 +2150,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/smoke-create-cross-repo-pr.lock.yml b/.github/workflows/smoke-create-cross-repo-pr.lock.yml
index dedcf22cccd..5a01ce2c721 100644
--- a/.github/workflows/smoke-create-cross-repo-pr.lock.yml
+++ b/.github/workflows/smoke-create-cross-repo-pr.lock.yml
@@ -1243,20 +1243,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/smoke-gemini.lock.yml b/.github/workflows/smoke-gemini.lock.yml
index 6c6081c5788..3984af1491f 100644
--- a/.github/workflows/smoke-gemini.lock.yml
+++ b/.github/workflows/smoke-gemini.lock.yml
@@ -1394,20 +1394,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/smoke-multi-pr.lock.yml b/.github/workflows/smoke-multi-pr.lock.yml
index 214ae14f38c..4df115196d9 100644
--- a/.github/workflows/smoke-multi-pr.lock.yml
+++ b/.github/workflows/smoke-multi-pr.lock.yml
@@ -1224,20 +1224,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/smoke-project.lock.yml b/.github/workflows/smoke-project.lock.yml
index d29845f3778..f15e2db61a2 100644
--- a/.github/workflows/smoke-project.lock.yml
+++ b/.github/workflows/smoke-project.lock.yml
@@ -1360,20 +1360,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/smoke-service-ports.lock.yml b/.github/workflows/smoke-service-ports.lock.yml
index 232fb204930..65a60bf3772 100644
--- a/.github/workflows/smoke-service-ports.lock.yml
+++ b/.github/workflows/smoke-service-ports.lock.yml
@@ -1128,20 +1128,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/smoke-temporary-id.lock.yml b/.github/workflows/smoke-temporary-id.lock.yml
index 0a36b08697f..9244a29f04a 100644
--- a/.github/workflows/smoke-temporary-id.lock.yml
+++ b/.github/workflows/smoke-temporary-id.lock.yml
@@ -1207,20 +1207,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/smoke-test-tools.lock.yml b/.github/workflows/smoke-test-tools.lock.yml
index 41032eb12e7..2e7fa86810d 100644
--- a/.github/workflows/smoke-test-tools.lock.yml
+++ b/.github/workflows/smoke-test-tools.lock.yml
@@ -1173,20 +1173,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/smoke-update-cross-repo-pr.lock.yml b/.github/workflows/smoke-update-cross-repo-pr.lock.yml
index c7a7108272d..0554980f743 100644
--- a/.github/workflows/smoke-update-cross-repo-pr.lock.yml
+++ b/.github/workflows/smoke-update-cross-repo-pr.lock.yml
@@ -1269,20 +1269,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/smoke-workflow-call-with-inputs.lock.yml b/.github/workflows/smoke-workflow-call-with-inputs.lock.yml
index bb7ecb82654..d917e7a3e51 100644
--- a/.github/workflows/smoke-workflow-call-with-inputs.lock.yml
+++ b/.github/workflows/smoke-workflow-call-with-inputs.lock.yml
@@ -1143,20 +1143,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/smoke-workflow-call.lock.yml b/.github/workflows/smoke-workflow-call.lock.yml
index 782e7a3a6bf..7577b542e74 100644
--- a/.github/workflows/smoke-workflow-call.lock.yml
+++ b/.github/workflows/smoke-workflow-call.lock.yml
@@ -1134,20 +1134,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/tidy.lock.yml b/.github/workflows/tidy.lock.yml
index bf2a4f5d8c9..7ce28142b40 100644
--- a/.github/workflows/tidy.lock.yml
+++ b/.github/workflows/tidy.lock.yml
@@ -1245,21 +1245,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_command_position.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- GH_AW_COMMAND_POSITION_OK: ${{ steps.check_command_position.outputs.command_position_ok }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/ubuntu-image-analyzer.lock.yml b/.github/workflows/ubuntu-image-analyzer.lock.yml
index 303ce4387e5..b27e51ce437 100644
--- a/.github/workflows/ubuntu-image-analyzer.lock.yml
+++ b/.github/workflows/ubuntu-image-analyzer.lock.yml
@@ -1138,21 +1138,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_skip_if_match.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- GH_AW_SKIP_CHECK_OK: ${{ steps.check_skip_if_match.outputs.skip_check_ok }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/unbloat-docs.lock.yml b/.github/workflows/unbloat-docs.lock.yml
index bc35c0b79ba..744e29f31c8 100644
--- a/.github/workflows/unbloat-docs.lock.yml
+++ b/.github/workflows/unbloat-docs.lock.yml
@@ -1589,21 +1589,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_command_position.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- GH_AW_COMMAND_POSITION_OK: ${{ steps.check_command_position.outputs.command_position_ok }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/update-astro.lock.yml b/.github/workflows/update-astro.lock.yml
index a817ce81a00..bf3bf3e85d9 100644
--- a/.github/workflows/update-astro.lock.yml
+++ b/.github/workflows/update-astro.lock.yml
@@ -1164,21 +1164,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_skip_if_no_match.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- GH_AW_SKIP_NO_MATCH_OK: ${{ steps.check_skip_if_no_match.outputs.skip_no_match_check_ok }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/workflow-generator.lock.yml b/.github/workflows/workflow-generator.lock.yml
index 6469486f90d..b672bc117d6 100644
--- a/.github/workflows/workflow-generator.lock.yml
+++ b/.github/workflows/workflow-generator.lock.yml
@@ -1183,21 +1183,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_rate_limit.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- GH_AW_RATE_LIMIT_OK: ${{ steps.check_rate_limit.outputs.rate_limit_ok }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
safe_outputs:
needs:
diff --git a/.github/workflows/workflow-health-manager.lock.yml b/.github/workflows/workflow-health-manager.lock.yml
index 12d0debcb90..957d78cc70b 100644
--- a/.github/workflows/workflow-health-manager.lock.yml
+++ b/.github/workflows/workflow-health-manager.lock.yml
@@ -1198,20 +1198,6 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
push_repo_memory:
needs:
diff --git a/actions/setup/js/check_command_position.cjs b/actions/setup/js/check_command_position.cjs
index 5c8b6ef04a1..9808564194d 100644
--- a/actions/setup/js/check_command_position.cjs
+++ b/actions/setup/js/check_command_position.cjs
@@ -100,6 +100,17 @@ async function main() {
core.warning(`⚠️ None of the commands [${expectedCommands}] matched the first word (found: '${firstWord}'). Workflow will be skipped.`);
core.setOutput("command_position_ok", "false");
core.setOutput("matched_command", "");
+ await core.summary
+ .addRaw(
+ [
+ "## ⏭️ Workflow Activation Skipped\n",
+ `> The trigger comment did not start with a required command. Expected one of: ${expectedCommands}. Found: \`${firstWord}\`.\n`,
+ "**Remediation:** Make sure the trigger comment starts with the required command defined in `on.command:` in the workflow frontmatter.\n",
+ "---",
+ "_See the `pre_activation` job log for full details._",
+ ].join("\n")
+ )
+ .write();
}
} catch (error) {
core.setFailed(`${ERR_API}: ${getErrorMessage(error)}`);
diff --git a/actions/setup/js/check_membership.cjs b/actions/setup/js/check_membership.cjs
index 85427cf7082..e922f2c58fb 100644
--- a/actions/setup/js/check_membership.cjs
+++ b/actions/setup/js/check_membership.cjs
@@ -3,6 +3,17 @@
const { parseRequiredPermissions, parseAllowedBots, checkRepositoryPermission, checkBotStatus, isAllowedBot } = require("./check_permissions_utils.cjs");
+/**
+ * Writes a denial reason to the GitHub Actions job summary.
+ *
+ * @param {string} message - The denial message from the check
+ * @param {string} remediation - Remediation hint for the operator
+ */
+async function writeDenialSummary(message, remediation) {
+ const lines = ["## ⏭️ Workflow Activation Skipped\n", "> " + message + "\n", "**Remediation:** " + remediation + "\n", "---", "_See the `pre_activation` job log for full details._"];
+ await core.summary.addRaw(lines.join("\n")).write();
+}
+
async function main() {
const { eventName } = context;
const actor = context.actor;
@@ -46,6 +57,7 @@ async function main() {
core.setOutput("is_team_member", "false");
core.setOutput("result", "config_error");
core.setOutput("error_message", "Configuration error: Required permissions not specified");
+ await writeDenialSummary("Configuration error: Required permissions not specified.", "Contact the repository administrator to fix the workflow frontmatter configuration.");
return;
}
@@ -76,11 +88,13 @@ async function main() {
core.setOutput("user_permission", "bot");
return;
} else if (botStatus.isBot && !botStatus.isActive) {
+ const errorMessage = `Access denied: Bot '${actor}' is not active/installed on this repository`;
core.warning(`Bot '${actor}' is in the allowed list but not active/installed on ${owner}/${repo}`);
core.setOutput("is_team_member", "false");
core.setOutput("result", "bot_not_active");
core.setOutput("user_permission", result.permission ?? "bot");
- core.setOutput("error_message", `Access denied: Bot '${actor}' is not active/installed on this repository`);
+ core.setOutput("error_message", errorMessage);
+ await writeDenialSummary(errorMessage, "The bot is in the allowed list but is not installed or active on this repository. Install the GitHub App and try again.");
return;
} else {
core.info(`Actor '${actor}' is in allowed bots list but bot status check failed`);
@@ -90,18 +104,20 @@ async function main() {
// Not authorized by role or bot
if (result.error) {
+ const errorMessage = `Repository permission check failed: ${result.error}`;
core.setOutput("is_team_member", "false");
core.setOutput("result", "api_error");
- core.setOutput("error_message", `Repository permission check failed: ${result.error}`);
+ core.setOutput("error_message", errorMessage);
+ await writeDenialSummary(errorMessage, "The permission check failed with a GitHub API error. Check the `pre_activation` job log for details.");
} else {
+ const errorMessage =
+ `Access denied: User '${actor}' is not authorized. Required permissions: ${requiredPermissions.join(", ")}. ` +
+ `To allow this user to run the workflow, add their role to the frontmatter. Example: roles: [${requiredPermissions.join(", ")}, ${result.permission}]`;
core.setOutput("is_team_member", "false");
core.setOutput("result", "insufficient_permissions");
core.setOutput("user_permission", result.permission);
- core.setOutput(
- "error_message",
- `Access denied: User '${actor}' is not authorized. Required permissions: ${requiredPermissions.join(", ")}. ` +
- `To allow this user to run the workflow, add their role to the frontmatter. Example: roles: [${requiredPermissions.join(", ")}, ${result.permission}]`
- );
+ core.setOutput("error_message", errorMessage);
+ await writeDenialSummary(errorMessage, `To allow a bot or GitHub App actor, add it to \`on.bots:\` in the workflow frontmatter. ` + `To change the required roles for human actors, update \`on.roles:\` in the workflow frontmatter.`);
}
}
}
diff --git a/actions/setup/js/check_skip_bots.cjs b/actions/setup/js/check_skip_bots.cjs
index 3dc528beb5c..875267d879e 100644
--- a/actions/setup/js/check_skip_bots.cjs
+++ b/actions/setup/js/check_skip_bots.cjs
@@ -48,10 +48,22 @@ async function main() {
if (isSkipped) {
// User is in skip-bots, skip the workflow
+ const errorMessage = `Workflow skipped: User '${actor}' is in skip-bots: [${skipBots.join(", ")}]`;
core.info(`❌ User '${actor}' is in skip-bots [${skipBots.join(", ")}]. Workflow will be skipped.`);
core.setOutput("skip_bots_ok", "false");
core.setOutput("result", "skipped");
- core.setOutput("error_message", `Workflow skipped: User '${actor}' is in skip-bots: [${skipBots.join(", ")}]`);
+ core.setOutput("error_message", errorMessage);
+ await core.summary
+ .addRaw(
+ [
+ "## ⏭️ Workflow Activation Skipped\n",
+ "> " + errorMessage + "\n",
+ "**Remediation:** Update `on.skip-bots:` in the workflow frontmatter to change which bots are excluded.\n",
+ "---",
+ "_See the `pre_activation` job log for full details._",
+ ].join("\n")
+ )
+ .write();
} else {
// User is NOT in skip-bots, allow workflow to proceed
core.info(`✅ User '${actor}' is NOT in skip-bots [${skipBots.join(", ")}]. Workflow will proceed.`);
diff --git a/actions/setup/js/check_skip_bots.test.cjs b/actions/setup/js/check_skip_bots.test.cjs
index 765e07279f1..151392f5bd3 100644
--- a/actions/setup/js/check_skip_bots.test.cjs
+++ b/actions/setup/js/check_skip_bots.test.cjs
@@ -12,6 +12,10 @@ describe("check_skip_bots.cjs", () => {
error: vi.fn(),
setFailed: vi.fn(),
setOutput: vi.fn(),
+ summary: {
+ addRaw: vi.fn().mockReturnThis(),
+ write: vi.fn().mockResolvedValue(undefined),
+ },
};
mockContext = {
diff --git a/actions/setup/js/check_skip_if_check_failing.cjs b/actions/setup/js/check_skip_if_check_failing.cjs
index fff1ebd93b7..12d0174b4e2 100644
--- a/actions/setup/js/check_skip_if_check_failing.cjs
+++ b/actions/setup/js/check_skip_if_check_failing.cjs
@@ -206,6 +206,17 @@ async function main() {
const names = failingChecks.map(r => (r.status === "completed" ? `${r.name} (${r.conclusion})` : `${r.name} (${r.status})`)).join(", ");
core.warning(`⚠️ Failing CI checks detected on "${ref}": ${names}. Workflow execution will be prevented by activation job.`);
core.setOutput("skip_if_check_failing_ok", "false");
+ await core.summary
+ .addRaw(
+ [
+ "## ⏭️ Workflow Activation Skipped\n",
+ `> Failing CI checks detected on \`${ref}\`: ${names}.\n`,
+ "**Remediation:** Fix the failing check(s) referenced in `on.skip-if-check-failing:`, or update the frontmatter configuration.\n",
+ "---",
+ "_See the `pre_activation` job log for full details._",
+ ].join("\n")
+ )
+ .write();
return;
}
diff --git a/actions/setup/js/check_skip_if_check_failing.test.cjs b/actions/setup/js/check_skip_if_check_failing.test.cjs
index a1e8e303115..e60ca5fe0e7 100644
--- a/actions/setup/js/check_skip_if_check_failing.test.cjs
+++ b/actions/setup/js/check_skip_if_check_failing.test.cjs
@@ -12,6 +12,10 @@ describe("check_skip_if_check_failing.cjs", () => {
error: vi.fn(),
setFailed: vi.fn(),
setOutput: vi.fn(),
+ summary: {
+ addRaw: vi.fn().mockReturnThis(),
+ write: vi.fn().mockResolvedValue(undefined),
+ },
};
mockGithub = {
diff --git a/actions/setup/js/check_skip_if_match.cjs b/actions/setup/js/check_skip_if_match.cjs
index 074605cfca7..fc633e6d8cb 100644
--- a/actions/setup/js/check_skip_if_match.cjs
+++ b/actions/setup/js/check_skip_if_match.cjs
@@ -42,6 +42,17 @@ async function main() {
if (totalCount >= maxMatches) {
core.warning(`🔍 Skip condition matched (${totalCount} items found, threshold: ${maxMatches}). Workflow execution will be prevented by activation job.`);
core.setOutput("skip_check_ok", "false");
+ await core.summary
+ .addRaw(
+ [
+ "## ⏭️ Workflow Activation Skipped\n",
+ `> Skip-if-match query matched: ${totalCount} item(s) found (threshold: ${maxMatches}).\n`,
+ "**Remediation:** Update `on.skip-if-match:` in the workflow frontmatter if this skip was unexpected.\n",
+ "---",
+ "_See the `pre_activation` job log for full details._",
+ ].join("\n")
+ )
+ .write();
return;
}
diff --git a/actions/setup/js/check_skip_if_no_match.cjs b/actions/setup/js/check_skip_if_no_match.cjs
index 8d089068322..0fef0aee65b 100644
--- a/actions/setup/js/check_skip_if_no_match.cjs
+++ b/actions/setup/js/check_skip_if_no_match.cjs
@@ -42,6 +42,17 @@ async function main() {
if (totalCount < minMatches) {
core.warning(`🔍 Skip condition matched (${totalCount} items found, minimum required: ${minMatches}). Workflow execution will be prevented by activation job.`);
core.setOutput("skip_no_match_check_ok", "false");
+ await core.summary
+ .addRaw(
+ [
+ "## ⏭️ Workflow Activation Skipped\n",
+ `> Skip-if-no-match query returned too few results: ${totalCount} item(s) found (minimum required: ${minMatches}).\n`,
+ "**Remediation:** Update `on.skip-if-no-match:` in the workflow frontmatter if this skip was unexpected.\n",
+ "---",
+ "_See the `pre_activation` job log for full details._",
+ ].join("\n")
+ )
+ .write();
return;
}
diff --git a/actions/setup/js/check_skip_if_no_match.test.cjs b/actions/setup/js/check_skip_if_no_match.test.cjs
index 8d89d7bfbe6..5642a48f17a 100644
--- a/actions/setup/js/check_skip_if_no_match.test.cjs
+++ b/actions/setup/js/check_skip_if_no_match.test.cjs
@@ -19,6 +19,10 @@ describe("check_skip_if_no_match", () => {
warnings: [],
errors: [],
outputs: {},
+ summary: {
+ addRaw: () => mockCore.summary,
+ write: async () => {},
+ },
};
mockCore.info = msg => {
diff --git a/actions/setup/js/check_skip_roles.cjs b/actions/setup/js/check_skip_roles.cjs
index d62c8b2377a..42e0feaebb3 100644
--- a/actions/setup/js/check_skip_roles.cjs
+++ b/actions/setup/js/check_skip_roles.cjs
@@ -44,11 +44,23 @@ async function main() {
if (result.authorized) {
// User has one of the skip-roles, skip the workflow
+ const errorMessage = `Workflow skipped: User '${actor}' has role '${result.permission}' which is in skip-roles: [${skipRoles.join(", ")}]`;
core.info(`❌ User '${actor}' has role '${result.permission}' which is in skip-roles [${skipRoles.join(", ")}]. Workflow will be skipped.`);
core.setOutput("skip_roles_ok", "false");
core.setOutput("result", "skipped");
core.setOutput("user_permission", result.permission);
- core.setOutput("error_message", `Workflow skipped: User '${actor}' has role '${result.permission}' which is in skip-roles: [${skipRoles.join(", ")}]`);
+ core.setOutput("error_message", errorMessage);
+ await core.summary
+ .addRaw(
+ [
+ "## ⏭️ Workflow Activation Skipped\n",
+ "> " + errorMessage + "\n",
+ "**Remediation:** Update `on.skip-roles:` in the workflow frontmatter to change which roles are excluded.\n",
+ "---",
+ "_See the `pre_activation` job log for full details._",
+ ].join("\n")
+ )
+ .write();
} else {
// User does NOT have any of the skip-roles, allow workflow to proceed
core.info(`✅ User '${actor}' has role '${result.permission}' which is NOT in skip-roles [${skipRoles.join(", ")}]. Workflow will proceed.`);
diff --git a/actions/setup/js/check_stop_time.cjs b/actions/setup/js/check_stop_time.cjs
index 6addb4c2162..726c24f2b6e 100644
--- a/actions/setup/js/check_stop_time.cjs
+++ b/actions/setup/js/check_stop_time.cjs
@@ -33,6 +33,17 @@ async function main() {
if (currentTime >= stopTimeDate) {
core.warning(`⏰ Stop time reached. Workflow execution will be prevented by activation job.`);
core.setOutput("stop_time_ok", "false");
+ await core.summary
+ .addRaw(
+ [
+ "## ⏭️ Workflow Activation Skipped\n",
+ `> Workflow '${workflowName}' has passed its configured stop-time (${stopTimeDate.toISOString()}).\n`,
+ "**Remediation:** Update or remove `on.stop-after:` in the workflow frontmatter to extend the active window.\n",
+ "---",
+ "_See the `pre_activation` job log for full details._",
+ ].join("\n")
+ )
+ .write();
return;
}
diff --git a/actions/setup/js/report_pre_activation_skip.cjs b/actions/setup/js/report_pre_activation_skip.cjs
deleted file mode 100644
index 9ea48179a43..00000000000
--- a/actions/setup/js/report_pre_activation_skip.cjs
+++ /dev/null
@@ -1,207 +0,0 @@
-// @ts-check
-///
-
-/**
- * Reports why the workflow was not activated (skipped by pre-activation gate).
- * Called from the pre_activation job with `if: always()` condition.
- * Only writes to job summary when activation was denied by one or more checks.
- *
- * Environment variables (all optional — empty means "check was not configured"):
- * GH_AW_IS_TEAM_MEMBER - "true"/"false" from check_membership step
- * GH_AW_MEMBERSHIP_RESULT - result code from check_membership step
- * GH_AW_MEMBERSHIP_ERROR_MESSAGE - human-readable error from check_membership step
- * GH_AW_STOP_TIME_OK - "true"/"false" from check_stop_time step
- * GH_AW_RATE_LIMIT_OK - "true"/"false" from check_rate_limit step
- * GH_AW_SKIP_CHECK_OK - "true"/"false" from check_skip_if_match step
- * GH_AW_SKIP_NO_MATCH_OK - "true"/"false" from check_skip_if_no_match step
- * GH_AW_SKIP_IF_CHECK_FAILING_OK - "true"/"false" from check_skip_if_check_failing step
- * GH_AW_SKIP_ROLES_OK - "true"/"false" from check_skip_roles step
- * GH_AW_SKIP_ROLES_ERROR_MESSAGE - human-readable error from check_skip_roles step
- * GH_AW_SKIP_BOTS_OK - "true"/"false" from check_skip_bots step
- * GH_AW_SKIP_BOTS_ERROR_MESSAGE - human-readable error from check_skip_bots step
- * GH_AW_COMMAND_POSITION_OK - "true"/"false" from check_command_position step
- */
-
-/**
- * @typedef {{ check: string, message: string, result: string, remediation: string }} SkipReason
- */
-
-async function main() {
- const reasons = collectSkipReasons();
-
- if (reasons.length === 0) {
- // All checks passed (or no checks were configured) — nothing to report.
- core.info("✅ All pre-activation checks passed, no skip reason to report.");
- return;
- }
-
- core.info(`⏭️ Workflow activation denied by ${reasons.length} check(s). Writing skip reason to job summary...`);
- await writeSkipSummary(reasons);
-}
-
-/**
- * Collects skip reasons from the environment variables set by each check step.
- * A check is considered failing when its ok-output is exactly "false".
- * An empty / undefined value means the check was not configured — skip it.
- *
- * @returns {SkipReason[]}
- */
-function collectSkipReasons() {
- /** @type {SkipReason[]} */
- const reasons = [];
-
- // Role / bot check (check_membership step)
- const isTeamMember = process.env.GH_AW_IS_TEAM_MEMBER;
- if (isTeamMember === "false") {
- const result = process.env.GH_AW_MEMBERSHIP_RESULT || "insufficient_permissions";
- const errorMsg = process.env.GH_AW_MEMBERSHIP_ERROR_MESSAGE || "Actor does not have the required repository permissions.";
- reasons.push({
- check: "Role / bot check",
- message: errorMsg,
- result,
- remediation: buildMembershipRemediation(result),
- });
- }
-
- // Stop-time check (check_stop_time step)
- const stopTimeOk = process.env.GH_AW_STOP_TIME_OK;
- if (stopTimeOk === "false") {
- reasons.push({
- check: "Stop-time limit",
- message: "The workflow is past its configured stop-time limit.",
- result: "stop_time_exceeded",
- remediation: "Update or remove `on.stop-time:` in the workflow frontmatter to extend the active window.",
- });
- }
-
- // Rate-limit check (check_rate_limit step)
- const rateLimitOk = process.env.GH_AW_RATE_LIMIT_OK;
- if (rateLimitOk === "false") {
- reasons.push({
- check: "Rate-limit check",
- message: "The actor has exceeded the configured rate limit for this workflow.",
- result: "rate_limit_exceeded",
- remediation: "Adjust `on.rate-limit:` in the workflow frontmatter, or wait for the time window to expire.",
- });
- }
-
- // Skip-if-match check (check_skip_if_match step)
- const skipCheckOk = process.env.GH_AW_SKIP_CHECK_OK;
- if (skipCheckOk === "false") {
- reasons.push({
- check: "Skip-if-match check",
- message: "The skip-if-match query matched, so the workflow was intentionally skipped.",
- result: "skip_if_match",
- remediation: "Update `on.skip-if-match:` in the workflow frontmatter if this skip was unexpected.",
- });
- }
-
- // Skip-if-no-match check (check_skip_if_no_match step)
- const skipNoMatchOk = process.env.GH_AW_SKIP_NO_MATCH_OK;
- if (skipNoMatchOk === "false") {
- reasons.push({
- check: "Skip-if-no-match check",
- message: "The skip-if-no-match query returned no results, so the workflow was intentionally skipped.",
- result: "skip_if_no_match",
- remediation: "Update `on.skip-if-no-match:` in the workflow frontmatter if this skip was unexpected.",
- });
- }
-
- // Skip-if-check-failing check (check_skip_if_check_failing step)
- const skipIfCheckFailingOk = process.env.GH_AW_SKIP_IF_CHECK_FAILING_OK;
- if (skipIfCheckFailingOk === "false") {
- reasons.push({
- check: "Skip-if-check-failing",
- message: "A required check is currently failing, so the workflow was intentionally skipped.",
- result: "skip_if_check_failing",
- remediation: "Fix the failing check referenced in `on.skip-if-check-failing:`, or update the frontmatter configuration.",
- });
- }
-
- // Skip-roles check (check_skip_roles step)
- const skipRolesOk = process.env.GH_AW_SKIP_ROLES_OK;
- if (skipRolesOk === "false") {
- const errorMsg = process.env.GH_AW_SKIP_ROLES_ERROR_MESSAGE || "Actor has a role that is configured to skip this workflow.";
- reasons.push({
- check: "Skip-roles check",
- message: errorMsg,
- result: "skip_roles",
- remediation: "Update `on.skip-roles:` in the workflow frontmatter to change which roles are excluded.",
- });
- }
-
- // Skip-bots check (check_skip_bots step)
- const skipBotsOk = process.env.GH_AW_SKIP_BOTS_OK;
- if (skipBotsOk === "false") {
- const errorMsg = process.env.GH_AW_SKIP_BOTS_ERROR_MESSAGE || "Actor is in the skip-bots list for this workflow.";
- reasons.push({
- check: "Skip-bots check",
- message: errorMsg,
- result: "skip_bots",
- remediation: "Update `on.skip-bots:` in the workflow frontmatter to change which bots are excluded.",
- });
- }
-
- // Command-position check (check_command_position step)
- const commandPositionOk = process.env.GH_AW_COMMAND_POSITION_OK;
- if (commandPositionOk === "false") {
- reasons.push({
- check: "Command check",
- message: "The required trigger command was not found in the expected position.",
- result: "command_not_found",
- remediation: "Make sure the trigger comment starts with the required command defined in `on.command:` in the workflow frontmatter.",
- });
- }
-
- return reasons;
-}
-
-/**
- * Returns a remediation hint tailored to the membership check result code.
- *
- * @param {string} result - The result code from check_membership.cjs
- * @returns {string}
- */
-function buildMembershipRemediation(result) {
- switch (result) {
- case "insufficient_permissions":
- return (
- "The actor does not have the required repository permission. " +
- "To allow a bot or GitHub App, add it to `on.bots:` in the workflow frontmatter. " +
- "To change the required human-actor roles, update `on.roles:` in the workflow frontmatter."
- );
- case "bot_not_active":
- return "The bot is in the allowed list but is not installed or active on this repository. Install the GitHub App and try again.";
- case "api_error":
- return "The permission check failed with a GitHub API error. Check the pre_activation job log for details.";
- case "config_error":
- return "The workflow has a permission configuration error. Contact the repository administrator.";
- default:
- return "To allow a bot or GitHub App actor, add it to `on.bots:` in the workflow frontmatter. " + "To change the required roles for human actors, update `on.roles:` in the workflow frontmatter.";
- }
-}
-
-/**
- * Writes the skip reasons to the GitHub Actions job summary.
- *
- * @param {SkipReason[]} reasons
- */
-async function writeSkipSummary(reasons) {
- const lines = [];
- lines.push("## ⏭️ Workflow Activation Skipped\n");
- lines.push("This workflow run was not activated because one or more pre-activation checks denied execution.\n");
-
- for (const reason of reasons) {
- lines.push(`### ${reason.check}`);
- lines.push(`> ${reason.message}\n`);
- lines.push(`**Remediation:** ${reason.remediation}\n`);
- }
-
- lines.push("---");
- lines.push("_This summary is generated by [gh-aw](https://github.com/github/gh-aw). See the `pre_activation` job log for full details._");
-
- await core.summary.addRaw(lines.join("\n")).write();
- core.info("📝 Skip reason written to job summary.");
-}
-
-module.exports = { main, collectSkipReasons, buildMembershipRemediation };
diff --git a/actions/setup/js/report_pre_activation_skip.test.cjs b/actions/setup/js/report_pre_activation_skip.test.cjs
deleted file mode 100644
index fa1911b06c4..00000000000
--- a/actions/setup/js/report_pre_activation_skip.test.cjs
+++ /dev/null
@@ -1,261 +0,0 @@
-import { describe, it, expect, beforeEach, afterEach, vi } from "vitest";
-
-describe("report_pre_activation_skip.cjs", () => {
- let mockCore;
-
- beforeEach(() => {
- mockCore = {
- info: vi.fn(),
- warning: vi.fn(),
- error: vi.fn(),
- setFailed: vi.fn(),
- setOutput: vi.fn(),
- summary: {
- addRaw: vi.fn().mockReturnThis(),
- write: vi.fn().mockResolvedValue(undefined),
- },
- };
-
- global.core = mockCore;
-
- // Clear all relevant env vars
- const vars = [
- "GH_AW_IS_TEAM_MEMBER",
- "GH_AW_MEMBERSHIP_RESULT",
- "GH_AW_MEMBERSHIP_ERROR_MESSAGE",
- "GH_AW_STOP_TIME_OK",
- "GH_AW_RATE_LIMIT_OK",
- "GH_AW_SKIP_CHECK_OK",
- "GH_AW_SKIP_NO_MATCH_OK",
- "GH_AW_SKIP_IF_CHECK_FAILING_OK",
- "GH_AW_SKIP_ROLES_OK",
- "GH_AW_SKIP_ROLES_ERROR_MESSAGE",
- "GH_AW_SKIP_BOTS_OK",
- "GH_AW_SKIP_BOTS_ERROR_MESSAGE",
- "GH_AW_COMMAND_POSITION_OK",
- ];
- for (const v of vars) {
- delete process.env[v];
- }
-
- vi.resetModules();
- });
-
- afterEach(() => {
- vi.clearAllMocks();
- delete global.core;
- });
-
- // ---- main() ----
-
- it("should not write summary when all checks pass", async () => {
- process.env.GH_AW_IS_TEAM_MEMBER = "true";
- process.env.GH_AW_STOP_TIME_OK = "true";
- process.env.GH_AW_RATE_LIMIT_OK = "true";
-
- const { main } = await import("./report_pre_activation_skip.cjs");
- await main();
-
- expect(mockCore.summary.addRaw).not.toHaveBeenCalled();
- expect(mockCore.summary.write).not.toHaveBeenCalled();
- expect(mockCore.info).toHaveBeenCalledWith(expect.stringContaining("All pre-activation checks passed"));
- });
-
- it("should not write summary when no check env vars are set (checks not configured)", async () => {
- const { main } = await import("./report_pre_activation_skip.cjs");
- await main();
-
- expect(mockCore.summary.addRaw).not.toHaveBeenCalled();
- });
-
- it("should write summary when membership check fails", async () => {
- process.env.GH_AW_IS_TEAM_MEMBER = "false";
- process.env.GH_AW_MEMBERSHIP_RESULT = "insufficient_permissions";
- process.env.GH_AW_MEMBERSHIP_ERROR_MESSAGE = "Access denied: User 'prd-to-prod-pipeline[bot]' is not authorized.";
-
- const { main } = await import("./report_pre_activation_skip.cjs");
- await main();
-
- expect(mockCore.summary.addRaw).toHaveBeenCalledTimes(1);
- expect(mockCore.summary.write).toHaveBeenCalledTimes(1);
-
- const summaryText = mockCore.summary.addRaw.mock.calls[0][0];
- expect(summaryText).toContain("⏭️ Workflow Activation Skipped");
- expect(summaryText).toContain("Role / bot check");
- expect(summaryText).toContain("prd-to-prod-pipeline[bot]");
- expect(summaryText).toContain("on.bots:");
- expect(summaryText).toContain("on.roles:");
- });
-
- it("should write summary when stop-time check fails", async () => {
- process.env.GH_AW_STOP_TIME_OK = "false";
-
- const { main } = await import("./report_pre_activation_skip.cjs");
- await main();
-
- expect(mockCore.summary.addRaw).toHaveBeenCalledTimes(1);
- const summaryText = mockCore.summary.addRaw.mock.calls[0][0];
- expect(summaryText).toContain("Stop-time limit");
- expect(summaryText).toContain("on.stop-time:");
- });
-
- it("should write summary when rate-limit check fails", async () => {
- process.env.GH_AW_RATE_LIMIT_OK = "false";
-
- const { main } = await import("./report_pre_activation_skip.cjs");
- await main();
-
- const summaryText = mockCore.summary.addRaw.mock.calls[0][0];
- expect(summaryText).toContain("Rate-limit check");
- expect(summaryText).toContain("on.rate-limit:");
- });
-
- it("should write summary when skip-if-match check fails", async () => {
- process.env.GH_AW_SKIP_CHECK_OK = "false";
-
- const { main } = await import("./report_pre_activation_skip.cjs");
- await main();
-
- const summaryText = mockCore.summary.addRaw.mock.calls[0][0];
- expect(summaryText).toContain("Skip-if-match check");
- expect(summaryText).toContain("on.skip-if-match:");
- });
-
- it("should write summary when skip-if-no-match check fails", async () => {
- process.env.GH_AW_SKIP_NO_MATCH_OK = "false";
-
- const { main } = await import("./report_pre_activation_skip.cjs");
- await main();
-
- const summaryText = mockCore.summary.addRaw.mock.calls[0][0];
- expect(summaryText).toContain("Skip-if-no-match check");
- expect(summaryText).toContain("on.skip-if-no-match:");
- });
-
- it("should write summary when skip-if-check-failing check fails", async () => {
- process.env.GH_AW_SKIP_IF_CHECK_FAILING_OK = "false";
-
- const { main } = await import("./report_pre_activation_skip.cjs");
- await main();
-
- const summaryText = mockCore.summary.addRaw.mock.calls[0][0];
- expect(summaryText).toContain("Skip-if-check-failing");
- expect(summaryText).toContain("on.skip-if-check-failing:");
- });
-
- it("should write summary when skip-roles check fails with error message", async () => {
- process.env.GH_AW_SKIP_ROLES_OK = "false";
- process.env.GH_AW_SKIP_ROLES_ERROR_MESSAGE = "Workflow skipped: User 'admin-user' has role 'admin'";
-
- const { main } = await import("./report_pre_activation_skip.cjs");
- await main();
-
- const summaryText = mockCore.summary.addRaw.mock.calls[0][0];
- expect(summaryText).toContain("Skip-roles check");
- expect(summaryText).toContain("admin-user");
- expect(summaryText).toContain("on.skip-roles:");
- });
-
- it("should write summary when skip-bots check fails with error message", async () => {
- process.env.GH_AW_SKIP_BOTS_OK = "false";
- process.env.GH_AW_SKIP_BOTS_ERROR_MESSAGE = "Workflow skipped: User 'renovate[bot]' is in skip-bots";
-
- const { main } = await import("./report_pre_activation_skip.cjs");
- await main();
-
- const summaryText = mockCore.summary.addRaw.mock.calls[0][0];
- expect(summaryText).toContain("Skip-bots check");
- expect(summaryText).toContain("renovate[bot]");
- expect(summaryText).toContain("on.skip-bots:");
- });
-
- it("should write summary when command-position check fails", async () => {
- process.env.GH_AW_COMMAND_POSITION_OK = "false";
-
- const { main } = await import("./report_pre_activation_skip.cjs");
- await main();
-
- const summaryText = mockCore.summary.addRaw.mock.calls[0][0];
- expect(summaryText).toContain("Command check");
- expect(summaryText).toContain("on.command:");
- });
-
- it("should write summary with multiple failures", async () => {
- process.env.GH_AW_IS_TEAM_MEMBER = "false";
- process.env.GH_AW_MEMBERSHIP_RESULT = "insufficient_permissions";
- process.env.GH_AW_STOP_TIME_OK = "false";
-
- const { main } = await import("./report_pre_activation_skip.cjs");
- await main();
-
- const summaryText = mockCore.summary.addRaw.mock.calls[0][0];
- expect(summaryText).toContain("Role / bot check");
- expect(summaryText).toContain("Stop-time limit");
- });
-
- it("should include a link to gh-aw in the summary footer", async () => {
- process.env.GH_AW_IS_TEAM_MEMBER = "false";
-
- const { main } = await import("./report_pre_activation_skip.cjs");
- await main();
-
- const summaryText = mockCore.summary.addRaw.mock.calls[0][0];
- expect(summaryText).toContain("gh-aw");
- expect(summaryText).toContain("pre_activation");
- });
-
- // ---- collectSkipReasons() ----
-
- it("should return empty array when no checks failed", async () => {
- const { collectSkipReasons } = await import("./report_pre_activation_skip.cjs");
- const reasons = collectSkipReasons();
- expect(reasons).toHaveLength(0);
- });
-
- it("should return one reason when membership check fails", async () => {
- process.env.GH_AW_IS_TEAM_MEMBER = "false";
- process.env.GH_AW_MEMBERSHIP_RESULT = "bot_not_active";
- process.env.GH_AW_MEMBERSHIP_ERROR_MESSAGE = "Bot is not active";
-
- const { collectSkipReasons } = await import("./report_pre_activation_skip.cjs");
- const reasons = collectSkipReasons();
-
- expect(reasons).toHaveLength(1);
- expect(reasons[0].check).toBe("Role / bot check");
- expect(reasons[0].result).toBe("bot_not_active");
- expect(reasons[0].message).toBe("Bot is not active");
- });
-
- // ---- buildMembershipRemediation() ----
-
- it("should return insufficient_permissions remediation mentioning on.bots and on.roles", async () => {
- const { buildMembershipRemediation } = await import("./report_pre_activation_skip.cjs");
- const hint = buildMembershipRemediation("insufficient_permissions");
- expect(hint).toContain("on.bots:");
- expect(hint).toContain("on.roles:");
- });
-
- it("should return bot_not_active remediation about GitHub App installation", async () => {
- const { buildMembershipRemediation } = await import("./report_pre_activation_skip.cjs");
- const hint = buildMembershipRemediation("bot_not_active");
- expect(hint).toContain("Install the GitHub App");
- });
-
- it("should return api_error remediation mentioning the job log", async () => {
- const { buildMembershipRemediation } = await import("./report_pre_activation_skip.cjs");
- const hint = buildMembershipRemediation("api_error");
- expect(hint).toContain("pre_activation");
- });
-
- it("should return config_error remediation mentioning the administrator", async () => {
- const { buildMembershipRemediation } = await import("./report_pre_activation_skip.cjs");
- const hint = buildMembershipRemediation("config_error");
- expect(hint).toContain("administrator");
- });
-
- it("should return default remediation for unknown result codes", async () => {
- const { buildMembershipRemediation } = await import("./report_pre_activation_skip.cjs");
- const hint = buildMembershipRemediation("unknown_result");
- expect(hint).toContain("on.bots:");
- });
-});
diff --git a/pkg/constants/job_constants.go b/pkg/constants/job_constants.go
index 7d46e88be7e..352aaa2da72 100644
--- a/pkg/constants/job_constants.go
+++ b/pkg/constants/job_constants.go
@@ -159,10 +159,6 @@ const CheckSkipIfCheckFailingStepID StepID = "check_skip_if_check_failing"
// emitted in the pre-activation job when on.github-app is configured alongside skip-if checks.
const PreActivationAppTokenStepID StepID = "pre-activation-app-token"
-// ReportSkipReasonStepID is the step ID for the report-skip-reason step in the pre-activation job.
-// This step runs with if: always() and writes skip reasons to the job summary when activation is denied.
-const ReportSkipReasonStepID StepID = "report-skip-reason"
-
// ParseMCPGatewayStepID is the step ID for the MCP gateway log parsing step in the agent job.
// Its effective_tokens output is exposed as an agent job output so that the safe_outputs job
// can pass the value as GH_AW_EFFECTIVE_TOKENS to the footer template renderer.
diff --git a/pkg/workflow/compiler_pre_activation_job.go b/pkg/workflow/compiler_pre_activation_job.go
index b17527d6291..51069ef63bb 100644
--- a/pkg/workflow/compiler_pre_activation_job.go
+++ b/pkg/workflow/compiler_pre_activation_job.go
@@ -421,13 +421,6 @@ func (c *Compiler) buildPreActivationJob(data *WorkflowData, needsPermissionChec
jobIfCondition = data.If
}
- // Add report-skip-reason step to surface denial reasons in the job summary when activation
- // is denied. Only added when there are actual blocking conditions (not for on.steps-only
- // pre-activation where activated is unconditionally true).
- if len(conditions) > 0 {
- steps = append(steps, c.generateReportSkipStep(needsPermissionCheck, data))
- }
-
// In script mode, explicitly add a cleanup step (mirrors post.js in dev/release/action mode).
if c.actionMode.IsScript() {
steps = append(steps, c.generateScriptModeCleanupStep())
@@ -448,80 +441,6 @@ func (c *Compiler) buildPreActivationJob(data *WorkflowData, needsPermissionChec
// generateReportSkipStep generates the "Report skip reason" step for the pre-activation job.
// The step runs with if: always() and writes skip reasons to the GitHub Actions job summary
-// when one or more pre-activation checks deny activation, so operators can see the denial
-// reason directly from the PR / workflow run surface without opening raw job logs.
-//
-// Only env vars for checks that are actually configured are emitted, keeping the YAML minimal
-// and avoiding actionlint warnings about references to unconfigured step outputs.
-func (c *Compiler) generateReportSkipStep(needsPermissionCheck bool, data *WorkflowData) string {
- var step strings.Builder
-
- step.WriteString(" - name: Report skip reason\n")
- step.WriteString(fmt.Sprintf(" id: %s\n", constants.ReportSkipReasonStepID))
- step.WriteString(" if: always()\n")
- step.WriteString(fmt.Sprintf(" uses: %s\n", GetActionPin("actions/github-script")))
- step.WriteString(" env:\n")
-
- if needsPermissionCheck {
- step.WriteString(fmt.Sprintf(" GH_AW_IS_TEAM_MEMBER: ${{ steps.%s.outputs.%s }}\n",
- constants.CheckMembershipStepID, constants.IsTeamMemberOutput))
- step.WriteString(fmt.Sprintf(" GH_AW_MEMBERSHIP_RESULT: ${{ steps.%s.outputs.result }}\n",
- constants.CheckMembershipStepID))
- step.WriteString(fmt.Sprintf(" GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.%s.outputs.error_message }}\n",
- constants.CheckMembershipStepID))
- }
-
- if data.StopTime != "" {
- step.WriteString(fmt.Sprintf(" GH_AW_STOP_TIME_OK: ${{ steps.%s.outputs.%s }}\n",
- constants.CheckStopTimeStepID, constants.StopTimeOkOutput))
- }
-
- if data.RateLimit != nil {
- step.WriteString(fmt.Sprintf(" GH_AW_RATE_LIMIT_OK: ${{ steps.%s.outputs.%s }}\n",
- constants.CheckRateLimitStepID, constants.RateLimitOkOutput))
- }
-
- if data.SkipIfMatch != nil {
- step.WriteString(fmt.Sprintf(" GH_AW_SKIP_CHECK_OK: ${{ steps.%s.outputs.%s }}\n",
- constants.CheckSkipIfMatchStepID, constants.SkipCheckOkOutput))
- }
-
- if data.SkipIfNoMatch != nil {
- step.WriteString(fmt.Sprintf(" GH_AW_SKIP_NO_MATCH_OK: ${{ steps.%s.outputs.%s }}\n",
- constants.CheckSkipIfNoMatchStepID, constants.SkipNoMatchCheckOkOutput))
- }
-
- if data.SkipIfCheckFailing != nil {
- step.WriteString(fmt.Sprintf(" GH_AW_SKIP_IF_CHECK_FAILING_OK: ${{ steps.%s.outputs.%s }}\n",
- constants.CheckSkipIfCheckFailingStepID, constants.SkipIfCheckFailingOkOutput))
- }
-
- if len(data.SkipRoles) > 0 {
- step.WriteString(fmt.Sprintf(" GH_AW_SKIP_ROLES_OK: ${{ steps.%s.outputs.%s }}\n",
- constants.CheckSkipRolesStepID, constants.SkipRolesOkOutput))
- step.WriteString(fmt.Sprintf(" GH_AW_SKIP_ROLES_ERROR_MESSAGE: ${{ steps.%s.outputs.error_message }}\n",
- constants.CheckSkipRolesStepID))
- }
-
- if len(data.SkipBots) > 0 {
- step.WriteString(fmt.Sprintf(" GH_AW_SKIP_BOTS_OK: ${{ steps.%s.outputs.%s }}\n",
- constants.CheckSkipBotsStepID, constants.SkipBotsOkOutput))
- step.WriteString(fmt.Sprintf(" GH_AW_SKIP_BOTS_ERROR_MESSAGE: ${{ steps.%s.outputs.error_message }}\n",
- constants.CheckSkipBotsStepID))
- }
-
- if len(data.Command) > 0 {
- step.WriteString(fmt.Sprintf(" GH_AW_COMMAND_POSITION_OK: ${{ steps.%s.outputs.%s }}\n",
- constants.CheckCommandPositionStepID, constants.CommandPositionOkOutput))
- }
-
- step.WriteString(" with:\n")
- step.WriteString(" script: |\n")
- step.WriteString(generateGitHubScriptWithRequire("report_pre_activation_skip.cjs"))
-
- return step.String()
-}
-
// extractPreActivationCustomFields extracts custom steps and outputs from jobs.pre-activation field in frontmatter.
// It validates that only steps and outputs fields are present, and errors on any other fields.
// If both jobs.pre-activation and jobs.pre_activation are defined, imports from both.
diff --git a/pkg/workflow/report_skip_reason_test.go b/pkg/workflow/report_skip_reason_test.go
deleted file mode 100644
index 543377eb390..00000000000
--- a/pkg/workflow/report_skip_reason_test.go
+++ /dev/null
@@ -1,193 +0,0 @@
-//go:build !integration
-
-package workflow
-
-import (
- "os"
- "path/filepath"
- "testing"
-
- "github.com/github/gh-aw/pkg/stringutil"
- "github.com/github/gh-aw/pkg/testutil"
- "github.com/stretchr/testify/assert"
- "github.com/stretchr/testify/require"
-)
-
-// TestReportSkipReasonStep tests that the report-skip-reason step is generated correctly
-// in the pre-activation job whenever blocking conditions are present, so that operators
-// can see the denial reason from the PR / workflow-run surface without opening raw logs.
-func TestReportSkipReasonStep(t *testing.T) {
- tmpDir := testutil.TempDir(t, "report-skip-reason-test")
- compiler := NewCompiler()
-
- t.Run("report_skip_reason_present_with_membership_check", func(t *testing.T) {
- workflowContent := `---
-on:
- pull_request:
- types: [opened]
- roles: [admin, maintainer, write]
-engine: copilot
----
-
-# PR Review Workflow
-
-Review pull requests.
-`
- workflowFile := filepath.Join(tmpDir, "membership-workflow.md")
- err := os.WriteFile(workflowFile, []byte(workflowContent), 0644)
- require.NoError(t, err, "Failed to write workflow file")
-
- err = compiler.CompileWorkflow(workflowFile)
- require.NoError(t, err, "Compilation failed")
-
- lockFile := stringutil.MarkdownToLockFile(workflowFile)
- lockContent, err := os.ReadFile(lockFile)
- require.NoError(t, err, "Failed to read lock file")
-
- lockContentStr := string(lockContent)
-
- // Verify the report-skip-reason step is present
- assert.Contains(t, lockContentStr, "id: report-skip-reason", "Expected report-skip-reason step ID")
- assert.Contains(t, lockContentStr, "Report skip reason", "Expected Report skip reason step name")
-
- // Verify the step has always() condition
- assert.Contains(t, lockContentStr, "if: always()", "Expected always() condition on report-skip-reason step")
-
- // Verify membership check env vars are passed
- assert.Contains(t, lockContentStr, "GH_AW_IS_TEAM_MEMBER:", "Expected GH_AW_IS_TEAM_MEMBER env var")
- assert.Contains(t, lockContentStr, "GH_AW_MEMBERSHIP_RESULT:", "Expected GH_AW_MEMBERSHIP_RESULT env var")
- assert.Contains(t, lockContentStr, "GH_AW_MEMBERSHIP_ERROR_MESSAGE:", "Expected GH_AW_MEMBERSHIP_ERROR_MESSAGE env var")
-
- // Verify the script calls report_pre_activation_skip.cjs
- assert.Contains(t, lockContentStr, "report_pre_activation_skip.cjs", "Expected report_pre_activation_skip.cjs in script")
- })
-
- t.Run("report_skip_reason_present_with_stop_time", func(t *testing.T) {
- workflowContent := `---
-on:
- workflow_dispatch: null
- stop-after: "+48h"
- roles: [admin, maintainer]
-engine: copilot
----
-
-# Stop-Time Workflow
-
-This workflow has a stop-after configuration.
-`
- workflowFile := filepath.Join(tmpDir, "stop-time-workflow.md")
- err := os.WriteFile(workflowFile, []byte(workflowContent), 0644)
- require.NoError(t, err, "Failed to write workflow file")
-
- err = compiler.CompileWorkflow(workflowFile)
- require.NoError(t, err, "Compilation failed")
-
- lockFile := stringutil.MarkdownToLockFile(workflowFile)
- lockContent, err := os.ReadFile(lockFile)
- require.NoError(t, err, "Failed to read lock file")
-
- lockContentStr := string(lockContent)
-
- assert.Contains(t, lockContentStr, "id: report-skip-reason", "Expected report-skip-reason step ID")
- assert.Contains(t, lockContentStr, "GH_AW_STOP_TIME_OK:", "Expected GH_AW_STOP_TIME_OK env var")
- })
-
- t.Run("report_skip_reason_present_with_skip_bots", func(t *testing.T) {
- workflowContent := `---
-on:
- issues:
- types: [opened]
- skip-bots: [renovate, dependabot]
-engine: copilot
----
-
-# Skip-Bots Workflow
-
-This workflow skips bot actors.
-`
- workflowFile := filepath.Join(tmpDir, "skip-bots-workflow.md")
- err := os.WriteFile(workflowFile, []byte(workflowContent), 0644)
- require.NoError(t, err, "Failed to write workflow file")
-
- err = compiler.CompileWorkflow(workflowFile)
- require.NoError(t, err, "Compilation failed")
-
- lockFile := stringutil.MarkdownToLockFile(workflowFile)
- lockContent, err := os.ReadFile(lockFile)
- require.NoError(t, err, "Failed to read lock file")
-
- lockContentStr := string(lockContent)
-
- assert.Contains(t, lockContentStr, "id: report-skip-reason", "Expected report-skip-reason step ID")
- assert.Contains(t, lockContentStr, "GH_AW_SKIP_BOTS_OK:", "Expected GH_AW_SKIP_BOTS_OK env var")
- assert.Contains(t, lockContentStr, "GH_AW_SKIP_BOTS_ERROR_MESSAGE:", "Expected GH_AW_SKIP_BOTS_ERROR_MESSAGE env var")
- })
-
- t.Run("report_skip_reason_present_with_skip_roles", func(t *testing.T) {
- workflowContent := `---
-on:
- pull_request:
- types: [opened]
- skip-roles: [admin]
-engine: copilot
----
-
-# Skip-Roles Workflow
-
-This workflow skips admin actors.
-`
- workflowFile := filepath.Join(tmpDir, "skip-roles-workflow.md")
- err := os.WriteFile(workflowFile, []byte(workflowContent), 0644)
- require.NoError(t, err, "Failed to write workflow file")
-
- err = compiler.CompileWorkflow(workflowFile)
- require.NoError(t, err, "Compilation failed")
-
- lockFile := stringutil.MarkdownToLockFile(workflowFile)
- lockContent, err := os.ReadFile(lockFile)
- require.NoError(t, err, "Failed to read lock file")
-
- lockContentStr := string(lockContent)
-
- assert.Contains(t, lockContentStr, "id: report-skip-reason", "Expected report-skip-reason step ID")
- assert.Contains(t, lockContentStr, "GH_AW_SKIP_ROLES_OK:", "Expected GH_AW_SKIP_ROLES_OK env var")
- assert.Contains(t, lockContentStr, "GH_AW_SKIP_ROLES_ERROR_MESSAGE:", "Expected GH_AW_SKIP_ROLES_ERROR_MESSAGE env var")
- })
-
- t.Run("report_skip_reason_not_present_without_conditions", func(t *testing.T) {
- // When activation is unconditionally true (roles: all + only on.steps), there are no
- // blocking conditions so the report-skip-reason step should NOT be generated.
- workflowContent := `---
-on:
- pull_request:
- types: [opened]
- roles: all
- steps:
- - name: Custom gate
- id: custom_gate
- run: echo "gate_result=ok" >> $GITHUB_OUTPUT
-engine: copilot
-if: needs.pre_activation.outputs.custom_gate_result == 'ok'
----
-
-# On-Steps-Only Workflow
-
-Uses on.steps to gate activation with no blocking conditions.
-`
- workflowFile := filepath.Join(tmpDir, "on-steps-only-workflow.md")
- err := os.WriteFile(workflowFile, []byte(workflowContent), 0644)
- require.NoError(t, err, "Failed to write workflow file")
-
- err = compiler.CompileWorkflow(workflowFile)
- require.NoError(t, err, "Compilation failed")
-
- lockFile := stringutil.MarkdownToLockFile(workflowFile)
- lockContent, err := os.ReadFile(lockFile)
- require.NoError(t, err, "Failed to read lock file")
-
- lockContentStr := string(lockContent)
-
- // No blocking conditions → no report-skip-reason step
- assert.NotContains(t, lockContentStr, "report-skip-reason", "report-skip-reason step should not appear for on.steps-only workflows")
- })
-}
diff --git a/pkg/workflow/testdata/TestWasmGolden_CompileFixtures/basic-copilot.golden b/pkg/workflow/testdata/TestWasmGolden_CompileFixtures/basic-copilot.golden
index 2595a853cbb..532e57b74dc 100644
--- a/pkg/workflow/testdata/TestWasmGolden_CompileFixtures/basic-copilot.golden
+++ b/pkg/workflow/testdata/TestWasmGolden_CompileFixtures/basic-copilot.golden
@@ -553,18 +553,4 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
diff --git a/pkg/workflow/testdata/TestWasmGolden_CompileFixtures/with-imports.golden b/pkg/workflow/testdata/TestWasmGolden_CompileFixtures/with-imports.golden
index c4f6dd21af7..5ef0558e180 100644
--- a/pkg/workflow/testdata/TestWasmGolden_CompileFixtures/with-imports.golden
+++ b/pkg/workflow/testdata/TestWasmGolden_CompileFixtures/with-imports.golden
@@ -554,18 +554,4 @@ jobs:
setupGlobals(core, github, context, exec, io);
const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
await main();
- - name: Report skip reason
- id: report-skip-reason
- if: always()
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
- env:
- GH_AW_IS_TEAM_MEMBER: ${{ steps.check_membership.outputs.is_team_member }}
- GH_AW_MEMBERSHIP_RESULT: ${{ steps.check_membership.outputs.result }}
- GH_AW_MEMBERSHIP_ERROR_MESSAGE: ${{ steps.check_membership.outputs.error_message }}
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/report_pre_activation_skip.cjs');
- await main();
From 516fff6f95859b85cbd6931bc80670b03221dfce Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Mon, 6 Apr 2026 01:36:35 +0000
Subject: [PATCH 4/6] Use template literals in denial summary helpers (style
fix)
Agent-Logs-Url: https://github.com/github/gh-aw/sessions/483d2eeb-3b22-4f64-883c-a0c08a888fc0
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
---
actions/setup/js/check_membership.cjs | 2 +-
actions/setup/js/check_skip_bots.cjs | 2 +-
actions/setup/js/check_skip_roles.cjs | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/actions/setup/js/check_membership.cjs b/actions/setup/js/check_membership.cjs
index e922f2c58fb..cfeeb4f37fb 100644
--- a/actions/setup/js/check_membership.cjs
+++ b/actions/setup/js/check_membership.cjs
@@ -10,7 +10,7 @@ const { parseRequiredPermissions, parseAllowedBots, checkRepositoryPermission, c
* @param {string} remediation - Remediation hint for the operator
*/
async function writeDenialSummary(message, remediation) {
- const lines = ["## ⏭️ Workflow Activation Skipped\n", "> " + message + "\n", "**Remediation:** " + remediation + "\n", "---", "_See the `pre_activation` job log for full details._"];
+ const lines = ["## ⏭️ Workflow Activation Skipped\n", `> ${message}\n`, `**Remediation:** ${remediation}\n`, "---", "_See the `pre_activation` job log for full details._"];
await core.summary.addRaw(lines.join("\n")).write();
}
diff --git a/actions/setup/js/check_skip_bots.cjs b/actions/setup/js/check_skip_bots.cjs
index 875267d879e..0b575ae7df9 100644
--- a/actions/setup/js/check_skip_bots.cjs
+++ b/actions/setup/js/check_skip_bots.cjs
@@ -57,7 +57,7 @@ async function main() {
.addRaw(
[
"## ⏭️ Workflow Activation Skipped\n",
- "> " + errorMessage + "\n",
+ `> ${errorMessage}\n`,
"**Remediation:** Update `on.skip-bots:` in the workflow frontmatter to change which bots are excluded.\n",
"---",
"_See the `pre_activation` job log for full details._",
diff --git a/actions/setup/js/check_skip_roles.cjs b/actions/setup/js/check_skip_roles.cjs
index 42e0feaebb3..82700fac9a0 100644
--- a/actions/setup/js/check_skip_roles.cjs
+++ b/actions/setup/js/check_skip_roles.cjs
@@ -54,7 +54,7 @@ async function main() {
.addRaw(
[
"## ⏭️ Workflow Activation Skipped\n",
- "> " + errorMessage + "\n",
+ `> ${errorMessage}\n`,
"**Remediation:** Update `on.skip-roles:` in the workflow frontmatter to change which roles are excluded.\n",
"---",
"_See the `pre_activation` job log for full details._",
From 83b808e95780efcf066bfbc498584ed1873cb71d Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Mon, 6 Apr 2026 01:51:40 +0000
Subject: [PATCH 5/6] Use markdown template and renderTemplateFromFile for
denial summaries
Agent-Logs-Url: https://github.com/github/gh-aw/sessions/c1738814-b8e8-4593-88d9-cf889cb728c3
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
---
actions/setup/js/check_command_position.cjs | 16 ++--
actions/setup/js/check_membership.cjs | 12 +--
actions/setup/js/check_membership.test.cjs | 7 ++
actions/setup/js/check_skip_bots.cjs | 14 +--
.../setup/js/check_skip_if_check_failing.cjs | 13 +--
actions/setup/js/check_skip_if_match.cjs | 13 +--
actions/setup/js/check_skip_if_no_match.cjs | 13 +--
actions/setup/js/check_skip_roles.cjs | 13 +--
actions/setup/js/check_skip_roles.test.cjs | 7 ++
actions/setup/js/check_stop_time.cjs | 13 +--
actions/setup/js/pre_activation_summary.cjs | 35 ++++++++
.../setup/js/pre_activation_summary.test.cjs | 85 +++++++++++++++++++
actions/setup/md/pre_activation_skip.md | 9 ++
13 files changed, 162 insertions(+), 88 deletions(-)
create mode 100644 actions/setup/js/pre_activation_summary.cjs
create mode 100644 actions/setup/js/pre_activation_summary.test.cjs
create mode 100644 actions/setup/md/pre_activation_skip.md
diff --git a/actions/setup/js/check_command_position.cjs b/actions/setup/js/check_command_position.cjs
index 9808564194d..349ccf1f114 100644
--- a/actions/setup/js/check_command_position.cjs
+++ b/actions/setup/js/check_command_position.cjs
@@ -2,6 +2,7 @@
///
const { ERR_API, ERR_CONFIG, ERR_VALIDATION } = require("./error_codes.cjs");
+const { writeDenialSummary } = require("./pre_activation_summary.cjs");
/**
* Check if command is the first word in the triggering text
@@ -100,17 +101,10 @@ async function main() {
core.warning(`⚠️ None of the commands [${expectedCommands}] matched the first word (found: '${firstWord}'). Workflow will be skipped.`);
core.setOutput("command_position_ok", "false");
core.setOutput("matched_command", "");
- await core.summary
- .addRaw(
- [
- "## ⏭️ Workflow Activation Skipped\n",
- `> The trigger comment did not start with a required command. Expected one of: ${expectedCommands}. Found: \`${firstWord}\`.\n`,
- "**Remediation:** Make sure the trigger comment starts with the required command defined in `on.command:` in the workflow frontmatter.\n",
- "---",
- "_See the `pre_activation` job log for full details._",
- ].join("\n")
- )
- .write();
+ await writeDenialSummary(
+ `The trigger comment did not start with a required command. Expected one of: ${expectedCommands}. Found: \`${firstWord}\`.`,
+ "Make sure the trigger comment starts with the required command defined in `on.command:` in the workflow frontmatter."
+ );
}
} catch (error) {
core.setFailed(`${ERR_API}: ${getErrorMessage(error)}`);
diff --git a/actions/setup/js/check_membership.cjs b/actions/setup/js/check_membership.cjs
index cfeeb4f37fb..712f3606c04 100644
--- a/actions/setup/js/check_membership.cjs
+++ b/actions/setup/js/check_membership.cjs
@@ -2,17 +2,7 @@
///
const { parseRequiredPermissions, parseAllowedBots, checkRepositoryPermission, checkBotStatus, isAllowedBot } = require("./check_permissions_utils.cjs");
-
-/**
- * Writes a denial reason to the GitHub Actions job summary.
- *
- * @param {string} message - The denial message from the check
- * @param {string} remediation - Remediation hint for the operator
- */
-async function writeDenialSummary(message, remediation) {
- const lines = ["## ⏭️ Workflow Activation Skipped\n", `> ${message}\n`, `**Remediation:** ${remediation}\n`, "---", "_See the `pre_activation` job log for full details._"];
- await core.summary.addRaw(lines.join("\n")).write();
-}
+const { writeDenialSummary } = require("./pre_activation_summary.cjs");
async function main() {
const { eventName } = context;
diff --git a/actions/setup/js/check_membership.test.cjs b/actions/setup/js/check_membership.test.cjs
index adb04b06098..3432f24162a 100644
--- a/actions/setup/js/check_membership.test.cjs
+++ b/actions/setup/js/check_membership.test.cjs
@@ -86,6 +86,13 @@ describe("check_membership.cjs", () => {
utilsFunction(mockCore, mockGithub, mockContext, process, mockModule, moduleExports, mockRequire);
return mockModule.exports;
}
+ if (modulePath === "./pre_activation_summary.cjs") {
+ return {
+ writeDenialSummary: async (reason, remediation) => {
+ await mockCore.summary.addRaw(`${reason}\n${remediation}`).write();
+ },
+ };
+ }
throw new Error(`Module not found: ${modulePath}`);
};
diff --git a/actions/setup/js/check_skip_bots.cjs b/actions/setup/js/check_skip_bots.cjs
index 0b575ae7df9..78c53294c59 100644
--- a/actions/setup/js/check_skip_bots.cjs
+++ b/actions/setup/js/check_skip_bots.cjs
@@ -1,6 +1,8 @@
// @ts-check
///
+const { writeDenialSummary } = require("./pre_activation_summary.cjs");
+
/**
* Check if the workflow should be skipped based on bot/user identity
* Reads skip-bots from GH_AW_SKIP_BOTS environment variable
@@ -53,17 +55,7 @@ async function main() {
core.setOutput("skip_bots_ok", "false");
core.setOutput("result", "skipped");
core.setOutput("error_message", errorMessage);
- await core.summary
- .addRaw(
- [
- "## ⏭️ Workflow Activation Skipped\n",
- `> ${errorMessage}\n`,
- "**Remediation:** Update `on.skip-bots:` in the workflow frontmatter to change which bots are excluded.\n",
- "---",
- "_See the `pre_activation` job log for full details._",
- ].join("\n")
- )
- .write();
+ await writeDenialSummary(errorMessage, "Update `on.skip-bots:` in the workflow frontmatter to change which bots are excluded.");
} else {
// User is NOT in skip-bots, allow workflow to proceed
core.info(`✅ User '${actor}' is NOT in skip-bots [${skipBots.join(", ")}]. Workflow will proceed.`);
diff --git a/actions/setup/js/check_skip_if_check_failing.cjs b/actions/setup/js/check_skip_if_check_failing.cjs
index 12d0174b4e2..97d0ff5475c 100644
--- a/actions/setup/js/check_skip_if_check_failing.cjs
+++ b/actions/setup/js/check_skip_if_check_failing.cjs
@@ -4,6 +4,7 @@
const { getErrorMessage, isRateLimitError } = require("./error_helpers.cjs");
const { ERR_API } = require("./error_codes.cjs");
const { getBaseBranch } = require("./get_base_branch.cjs");
+const { writeDenialSummary } = require("./pre_activation_summary.cjs");
/**
* Determines the ref to check for CI status.
@@ -206,17 +207,7 @@ async function main() {
const names = failingChecks.map(r => (r.status === "completed" ? `${r.name} (${r.conclusion})` : `${r.name} (${r.status})`)).join(", ");
core.warning(`⚠️ Failing CI checks detected on "${ref}": ${names}. Workflow execution will be prevented by activation job.`);
core.setOutput("skip_if_check_failing_ok", "false");
- await core.summary
- .addRaw(
- [
- "## ⏭️ Workflow Activation Skipped\n",
- `> Failing CI checks detected on \`${ref}\`: ${names}.\n`,
- "**Remediation:** Fix the failing check(s) referenced in `on.skip-if-check-failing:`, or update the frontmatter configuration.\n",
- "---",
- "_See the `pre_activation` job log for full details._",
- ].join("\n")
- )
- .write();
+ await writeDenialSummary(`Failing CI checks detected on \`${ref}\`: ${names}.`, "Fix the failing check(s) referenced in `on.skip-if-check-failing:`, or update the frontmatter configuration.");
return;
}
diff --git a/actions/setup/js/check_skip_if_match.cjs b/actions/setup/js/check_skip_if_match.cjs
index fc633e6d8cb..fc379c91e7a 100644
--- a/actions/setup/js/check_skip_if_match.cjs
+++ b/actions/setup/js/check_skip_if_match.cjs
@@ -4,6 +4,7 @@
const { getErrorMessage } = require("./error_helpers.cjs");
const { ERR_API, ERR_CONFIG } = require("./error_codes.cjs");
const { buildSearchQuery } = require("./check_skip_if_helpers.cjs");
+const { writeDenialSummary } = require("./pre_activation_summary.cjs");
async function main() {
const { GH_AW_SKIP_QUERY: skipQuery, GH_AW_WORKFLOW_NAME: workflowName, GH_AW_SKIP_MAX_MATCHES: maxMatchesStr = "1", GH_AW_SKIP_SCOPE: skipScope } = process.env;
@@ -42,17 +43,7 @@ async function main() {
if (totalCount >= maxMatches) {
core.warning(`🔍 Skip condition matched (${totalCount} items found, threshold: ${maxMatches}). Workflow execution will be prevented by activation job.`);
core.setOutput("skip_check_ok", "false");
- await core.summary
- .addRaw(
- [
- "## ⏭️ Workflow Activation Skipped\n",
- `> Skip-if-match query matched: ${totalCount} item(s) found (threshold: ${maxMatches}).\n`,
- "**Remediation:** Update `on.skip-if-match:` in the workflow frontmatter if this skip was unexpected.\n",
- "---",
- "_See the `pre_activation` job log for full details._",
- ].join("\n")
- )
- .write();
+ await writeDenialSummary(`Skip-if-match query matched: ${totalCount} item(s) found (threshold: ${maxMatches}).`, "Update `on.skip-if-match:` in the workflow frontmatter if this skip was unexpected.");
return;
}
diff --git a/actions/setup/js/check_skip_if_no_match.cjs b/actions/setup/js/check_skip_if_no_match.cjs
index 0fef0aee65b..b3edfef7803 100644
--- a/actions/setup/js/check_skip_if_no_match.cjs
+++ b/actions/setup/js/check_skip_if_no_match.cjs
@@ -4,6 +4,7 @@
const { getErrorMessage } = require("./error_helpers.cjs");
const { ERR_API, ERR_CONFIG } = require("./error_codes.cjs");
const { buildSearchQuery } = require("./check_skip_if_helpers.cjs");
+const { writeDenialSummary } = require("./pre_activation_summary.cjs");
async function main() {
const { GH_AW_SKIP_QUERY: skipQuery, GH_AW_WORKFLOW_NAME: workflowName, GH_AW_SKIP_MIN_MATCHES: minMatchesStr = "1", GH_AW_SKIP_SCOPE: skipScope } = process.env;
@@ -42,17 +43,7 @@ async function main() {
if (totalCount < minMatches) {
core.warning(`🔍 Skip condition matched (${totalCount} items found, minimum required: ${minMatches}). Workflow execution will be prevented by activation job.`);
core.setOutput("skip_no_match_check_ok", "false");
- await core.summary
- .addRaw(
- [
- "## ⏭️ Workflow Activation Skipped\n",
- `> Skip-if-no-match query returned too few results: ${totalCount} item(s) found (minimum required: ${minMatches}).\n`,
- "**Remediation:** Update `on.skip-if-no-match:` in the workflow frontmatter if this skip was unexpected.\n",
- "---",
- "_See the `pre_activation` job log for full details._",
- ].join("\n")
- )
- .write();
+ await writeDenialSummary(`Skip-if-no-match query returned too few results: ${totalCount} item(s) found (minimum required: ${minMatches}).`, "Update `on.skip-if-no-match:` in the workflow frontmatter if this skip was unexpected.");
return;
}
diff --git a/actions/setup/js/check_skip_roles.cjs b/actions/setup/js/check_skip_roles.cjs
index 82700fac9a0..78256087b27 100644
--- a/actions/setup/js/check_skip_roles.cjs
+++ b/actions/setup/js/check_skip_roles.cjs
@@ -2,6 +2,7 @@
///
const { checkRepositoryPermission } = require("./check_permissions_utils.cjs");
+const { writeDenialSummary } = require("./pre_activation_summary.cjs");
/**
* Check if the workflow should be skipped based on user's role
@@ -50,17 +51,7 @@ async function main() {
core.setOutput("result", "skipped");
core.setOutput("user_permission", result.permission);
core.setOutput("error_message", errorMessage);
- await core.summary
- .addRaw(
- [
- "## ⏭️ Workflow Activation Skipped\n",
- `> ${errorMessage}\n`,
- "**Remediation:** Update `on.skip-roles:` in the workflow frontmatter to change which roles are excluded.\n",
- "---",
- "_See the `pre_activation` job log for full details._",
- ].join("\n")
- )
- .write();
+ await writeDenialSummary(errorMessage, "Update `on.skip-roles:` in the workflow frontmatter to change which roles are excluded.");
} else {
// User does NOT have any of the skip-roles, allow workflow to proceed
core.info(`✅ User '${actor}' has role '${result.permission}' which is NOT in skip-roles [${skipRoles.join(", ")}]. Workflow will proceed.`);
diff --git a/actions/setup/js/check_skip_roles.test.cjs b/actions/setup/js/check_skip_roles.test.cjs
index d7911e67239..4453890f499 100644
--- a/actions/setup/js/check_skip_roles.test.cjs
+++ b/actions/setup/js/check_skip_roles.test.cjs
@@ -84,6 +84,13 @@ describe("check_skip_roles.cjs", () => {
utilsFunction(mockCore, mockGithub, mockContext, process, mockModule, moduleExports, mockRequire);
return mockModule.exports;
}
+ if (modulePath === "./pre_activation_summary.cjs") {
+ return {
+ writeDenialSummary: async (reason, remediation) => {
+ await mockCore.summary.addRaw(`${reason}\n${remediation}`).write();
+ },
+ };
+ }
throw new Error(`Module not found: ${modulePath}`);
};
diff --git a/actions/setup/js/check_stop_time.cjs b/actions/setup/js/check_stop_time.cjs
index 726c24f2b6e..fc3ca7304ba 100644
--- a/actions/setup/js/check_stop_time.cjs
+++ b/actions/setup/js/check_stop_time.cjs
@@ -2,6 +2,7 @@
///
const { ERR_CONFIG, ERR_VALIDATION } = require("./error_codes.cjs");
+const { writeDenialSummary } = require("./pre_activation_summary.cjs");
async function main() {
const stopTime = process.env.GH_AW_STOP_TIME;
const workflowName = process.env.GH_AW_WORKFLOW_NAME;
@@ -33,17 +34,7 @@ async function main() {
if (currentTime >= stopTimeDate) {
core.warning(`⏰ Stop time reached. Workflow execution will be prevented by activation job.`);
core.setOutput("stop_time_ok", "false");
- await core.summary
- .addRaw(
- [
- "## ⏭️ Workflow Activation Skipped\n",
- `> Workflow '${workflowName}' has passed its configured stop-time (${stopTimeDate.toISOString()}).\n`,
- "**Remediation:** Update or remove `on.stop-after:` in the workflow frontmatter to extend the active window.\n",
- "---",
- "_See the `pre_activation` job log for full details._",
- ].join("\n")
- )
- .write();
+ await writeDenialSummary(`Workflow '${workflowName}' has passed its configured stop-time (${stopTimeDate.toISOString()}).`, "Update or remove `on.stop-after:` in the workflow frontmatter to extend the active window.");
return;
}
diff --git a/actions/setup/js/pre_activation_summary.cjs b/actions/setup/js/pre_activation_summary.cjs
new file mode 100644
index 00000000000..6f8834cfeb4
--- /dev/null
+++ b/actions/setup/js/pre_activation_summary.cjs
@@ -0,0 +1,35 @@
+// @ts-check
+///
+
+const path = require("path");
+const { renderTemplateFromFile } = require("./messages_core.cjs");
+
+/**
+ * Writes a pre-activation skip denial summary to the GitHub Actions job summary.
+ * Uses the pre_activation_skip.md template from the prompts directory when available,
+ * falling back to a hardcoded format when the template cannot be loaded (e.g. in tests).
+ *
+ * @param {string} reason - The denial reason message
+ * @param {string} remediation - Remediation hint for the operator
+ */
+async function writeDenialSummary(reason, remediation) {
+ let content;
+
+ const runnerTemp = process.env.RUNNER_TEMP;
+ if (runnerTemp) {
+ const templatePath = path.join(runnerTemp, "gh-aw", "prompts", "pre_activation_skip.md");
+ try {
+ content = renderTemplateFromFile(templatePath, { reason, remediation });
+ } catch {
+ // Template file not available; fall back to hardcoded format below
+ }
+ }
+
+ if (!content) {
+ content = `## ⏭️ Workflow Activation Skipped\n\n> ${reason}\n\n**Remediation:** ${remediation}\n\n---\n_See the \`pre_activation\` job log for full details._`;
+ }
+
+ await core.summary.addRaw(content).write();
+}
+
+module.exports = { writeDenialSummary };
diff --git a/actions/setup/js/pre_activation_summary.test.cjs b/actions/setup/js/pre_activation_summary.test.cjs
new file mode 100644
index 00000000000..2d558b26fbc
--- /dev/null
+++ b/actions/setup/js/pre_activation_summary.test.cjs
@@ -0,0 +1,85 @@
+// @ts-check
+import { describe, it, expect, beforeEach, afterEach, vi } from "vitest";
+import fs from "fs";
+import os from "os";
+import path from "path";
+
+describe("pre_activation_summary.cjs", () => {
+ let mockCore;
+ let originalRunnerTemp;
+
+ beforeEach(() => {
+ mockCore = {
+ info: vi.fn(),
+ warning: vi.fn(),
+ summary: {
+ addRaw: vi.fn().mockReturnThis(),
+ write: vi.fn().mockResolvedValue(undefined),
+ },
+ };
+ global.core = mockCore;
+ originalRunnerTemp = process.env.RUNNER_TEMP;
+ vi.resetModules();
+ });
+
+ afterEach(() => {
+ if (originalRunnerTemp !== undefined) {
+ process.env.RUNNER_TEMP = originalRunnerTemp;
+ } else {
+ delete process.env.RUNNER_TEMP;
+ }
+ delete global.core;
+ vi.clearAllMocks();
+ });
+
+ describe("writeDenialSummary", () => {
+ it("uses the markdown template when template file exists", async () => {
+ const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), "gh-aw-test-"));
+ const promptsDir = path.join(tmpDir, "gh-aw", "prompts");
+ fs.mkdirSync(promptsDir, { recursive: true });
+ fs.writeFileSync(path.join(promptsDir, "pre_activation_skip.md"), "## Skipped\n\n> {reason}\n\n**Fix:** {remediation}\n", "utf8");
+
+ process.env.RUNNER_TEMP = tmpDir;
+
+ try {
+ const { writeDenialSummary } = await import("./pre_activation_summary.cjs?" + Date.now());
+ await writeDenialSummary("Denied: insufficient perms", "Update frontmatter roles");
+
+ expect(mockCore.summary.addRaw).toHaveBeenCalledWith("## Skipped\n\n> Denied: insufficient perms\n\n**Fix:** Update frontmatter roles\n");
+ expect(mockCore.summary.write).toHaveBeenCalled();
+ } finally {
+ fs.rmSync(tmpDir, { recursive: true, force: true });
+ }
+ });
+
+ it("falls back to hardcoded format when RUNNER_TEMP is not set", async () => {
+ delete process.env.RUNNER_TEMP;
+
+ const { writeDenialSummary } = await import("./pre_activation_summary.cjs?" + Date.now());
+ await writeDenialSummary("Bot not authorized", "Add bot to on.bots:");
+
+ const rawCall = mockCore.summary.addRaw.mock.calls[0][0];
+ expect(rawCall).toContain("Bot not authorized");
+ expect(rawCall).toContain("Add bot to on.bots:");
+ expect(mockCore.summary.write).toHaveBeenCalled();
+ });
+
+ it("falls back to hardcoded format when template file does not exist", async () => {
+ const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), "gh-aw-test-"));
+ process.env.RUNNER_TEMP = tmpDir;
+ // No template file created
+
+ try {
+ const { writeDenialSummary } = await import("./pre_activation_summary.cjs?" + Date.now());
+ await writeDenialSummary("Stop time exceeded", "Update on.stop-after:");
+
+ const rawCall = mockCore.summary.addRaw.mock.calls[0][0];
+ expect(rawCall).toContain("Stop time exceeded");
+ expect(rawCall).toContain("Update on.stop-after:");
+ expect(mockCore.summary.write).toHaveBeenCalled();
+ } finally {
+ fs.rmSync(tmpDir, { recursive: true, force: true });
+ }
+ });
+ });
+});
diff --git a/actions/setup/md/pre_activation_skip.md b/actions/setup/md/pre_activation_skip.md
new file mode 100644
index 00000000000..7a7e4a1c863
--- /dev/null
+++ b/actions/setup/md/pre_activation_skip.md
@@ -0,0 +1,9 @@
+## ⏭️ Workflow Activation Skipped
+
+> {reason}
+
+**Remediation:** {remediation}
+
+---
+
+_See the `pre_activation` job log for full details._
From aebc5d63400fe92c7f671fb3f7dfa8e56082194a Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Mon, 6 Apr 2026 01:53:25 +0000
Subject: [PATCH 6/6] Log unexpected template errors and remove Date.now()
cache-busting in test
Agent-Logs-Url: https://github.com/github/gh-aw/sessions/c1738814-b8e8-4593-88d9-cf889cb728c3
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
---
actions/setup/js/pre_activation_summary.cjs | 7 +++++--
actions/setup/js/pre_activation_summary.test.cjs | 6 +++---
2 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/actions/setup/js/pre_activation_summary.cjs b/actions/setup/js/pre_activation_summary.cjs
index 6f8834cfeb4..951940b2b56 100644
--- a/actions/setup/js/pre_activation_summary.cjs
+++ b/actions/setup/js/pre_activation_summary.cjs
@@ -20,8 +20,11 @@ async function writeDenialSummary(reason, remediation) {
const templatePath = path.join(runnerTemp, "gh-aw", "prompts", "pre_activation_skip.md");
try {
content = renderTemplateFromFile(templatePath, { reason, remediation });
- } catch {
- // Template file not available; fall back to hardcoded format below
+ } catch (err) {
+ // Log unexpected errors but still fall through to the hardcoded fallback
+ if (err && typeof err === "object" && "code" in err && err.code !== "ENOENT") {
+ core.warning(`pre_activation_summary: could not read template ${templatePath}: ${err instanceof Error ? err.message : String(err)}`);
+ }
}
}
diff --git a/actions/setup/js/pre_activation_summary.test.cjs b/actions/setup/js/pre_activation_summary.test.cjs
index 2d558b26fbc..f751fc329a9 100644
--- a/actions/setup/js/pre_activation_summary.test.cjs
+++ b/actions/setup/js/pre_activation_summary.test.cjs
@@ -42,7 +42,7 @@ describe("pre_activation_summary.cjs", () => {
process.env.RUNNER_TEMP = tmpDir;
try {
- const { writeDenialSummary } = await import("./pre_activation_summary.cjs?" + Date.now());
+ const { writeDenialSummary } = await import("./pre_activation_summary.cjs");
await writeDenialSummary("Denied: insufficient perms", "Update frontmatter roles");
expect(mockCore.summary.addRaw).toHaveBeenCalledWith("## Skipped\n\n> Denied: insufficient perms\n\n**Fix:** Update frontmatter roles\n");
@@ -55,7 +55,7 @@ describe("pre_activation_summary.cjs", () => {
it("falls back to hardcoded format when RUNNER_TEMP is not set", async () => {
delete process.env.RUNNER_TEMP;
- const { writeDenialSummary } = await import("./pre_activation_summary.cjs?" + Date.now());
+ const { writeDenialSummary } = await import("./pre_activation_summary.cjs");
await writeDenialSummary("Bot not authorized", "Add bot to on.bots:");
const rawCall = mockCore.summary.addRaw.mock.calls[0][0];
@@ -70,7 +70,7 @@ describe("pre_activation_summary.cjs", () => {
// No template file created
try {
- const { writeDenialSummary } = await import("./pre_activation_summary.cjs?" + Date.now());
+ const { writeDenialSummary } = await import("./pre_activation_summary.cjs");
await writeDenialSummary("Stop time exceeded", "Update on.stop-after:");
const rawCall = mockCore.summary.addRaw.mock.calls[0][0];