Enforce strict: true for public repositories in lockdown validation#19948
Enforce strict: true for public repositories in lockdown validation#19948
Conversation
- Add LockSchemaV2 with Strict bool field in LockMetadata - Update GenerateLockMetadata to accept strict parameter and emit v2 - Embed GH_AW_COMPILED_STRICT env var in generate_aw_info step - Error on public repository + non-strict in validate_lockdown_requirements.cjs - Update tests and golden files Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
|
The strict metadata and GH_AW_COMPILED_STRICT env var were always using c.strictMode (the CLI --strict flag), which defaults to false. This meant all lock files showed strict: false when compiled without --strict. Add effectiveStrictMode() helper that applies the correct priority: CLI flag > frontmatter strict field > default (true) Update both the lock file metadata header and GH_AW_COMPILED_STRICT env var to use effectiveStrictMode(data.RawFrontmatter). Update golden files and recompile all workflows with correct strict values. Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Fixed in a7a014c. The root issue was that Added After recompile, 155/166 workflows show Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
|
@copilot the strictness is the runtime value inferred from --script and the strict field. |
|
@copilot review where strict is used in the compiler and ensure the same logic is used to resolve the runtime value. Add tests. |
Yes, that's exactly what |
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Done in f41eefa. The two places in Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
|
@copilot add documentation. Use the technical-doc-writer agent. |
|
📰 BREAKING: Smoke Copilot is now investigating this pull request. Sources say the story is developing... |
|
✅ All tools validated successfully! Agent Container Smoke Test confirms agent container is ready. |
|
🎬 THE END — Smoke Claude MISSION: ACCOMPLISHED! The hero saves the day! ✨ |
|
🌑 The shadows whisper... Smoke Codex failed. The oracle requires further meditation... |
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Done in f14499a. Three surgical documentation edits:
|
Agent Container Tool Check
Result: 12/12 tools available ✅ — PASS
|
There was a problem hiding this comment.
Pull request overview
This PR updates the runtime lockdown validation to enforce strict: true for workflows running on public repositories, and propagates “compiled strictness” through lock metadata and workflow env for validation.
Changes:
- Add
Compiler.effectiveStrictMode()and refactor orchestrator strict-mode resolution to use it. - Bump lock metadata to schema
v2and include a strictness signal (strictin metadata when true;GH_AW_COMPILED_STRICTenv always). - Extend lockdown validation script + tests to enforce strict mode for public repos, and update golden/lock workflow artifacts accordingly.
Reviewed changes
Copilot reviewed 179 out of 179 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| pkg/workflow/compiler_yaml.go | Adds effectiveStrictMode(), emits strictness into lock metadata and GH_AW_COMPILED_STRICT env |
| pkg/workflow/compiler_orchestrator_engine.go | Replaces duplicated strict-mode resolution logic with effectiveStrictMode() |
| pkg/workflow/compiler_yaml_strict_mode_test.go | Adds unit tests for strict-mode resolution precedence and edge cases |
| pkg/workflow/lock_schema.go | Introduces lock schema v2 and strict field in metadata; updates generator signature |
| pkg/workflow/lock_schema_test.go | Updates schema support expectations and adds strict-specific metadata tests |
| actions/setup/js/validate_lockdown_requirements.cjs | Adds strict-mode enforcement for public repositories |
| actions/setup/js/validate_lockdown_requirements.test.cjs | Adds test coverage for strict-mode enforcement scenarios |
| pkg/workflow/testdata/wasm_golden/TestWasmGolden_CompileFixtures/basic-copilot.golden | Updates golden output to include GH_AW_COMPILED_STRICT |
| pkg/workflow/testdata/wasm_golden/TestWasmGolden_CompileFixtures/smoke-copilot.golden | Updates golden output to include GH_AW_COMPILED_STRICT |
| pkg/workflow/testdata/wasm_golden/TestWasmGolden_CompileFixtures/with-imports.golden | Updates golden output to include GH_AW_COMPILED_STRICT |
| .github/workflows/ace-editor.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/agent-performance-analyzer.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/agent-persona-explorer.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/ai-moderator.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/archie.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/artifacts-summary.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/audit-workflows.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/auto-triage-issues.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/blog-auditor.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/bot-detection.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/brave.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/breaking-change-checker.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/changeset.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/chroma-issue-indexer.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/ci-coach.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/ci-doctor.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/claude-code-user-docs-review.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/cli-consistency-checker.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/cli-version-checker.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/cloclo.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/code-scanning-fixer.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/code-simplifier.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/codex-github-remote-mcp-test.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/commit-changes-analyzer.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/constraint-solving-potd.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/contribution-check.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/copilot-agent-analysis.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/copilot-cli-deep-research.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/copilot-pr-merged-report.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/copilot-pr-nlp-analysis.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/copilot-pr-prompt-analysis.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/copilot-session-insights.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/craft.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/daily-architecture-diagram.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/daily-assign-issue-to-user.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/daily-choice-test.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/daily-cli-performance.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/daily-cli-tools-tester.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/daily-code-metrics.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/daily-compiler-quality.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/daily-copilot-token-report.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/daily-doc-healer.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/daily-doc-updater.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/daily-fact.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/daily-file-diet.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/daily-firewall-report.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/daily-issues-report.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/daily-malicious-code-scan.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/daily-mcp-concurrency-analysis.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/daily-multi-device-docs-tester.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/daily-news.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/daily-observability-report.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/daily-performance-summary.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/daily-regulatory.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/daily-rendering-scripts-verifier.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/daily-repo-chronicle.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/daily-safe-output-optimizer.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/daily-safe-outputs-conformance.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/daily-security-red-team.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/daily-secrets-analysis.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/daily-semgrep-scan.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/daily-syntax-error-quality.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/daily-team-evolution-insights.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/daily-team-status.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/daily-testify-uber-super-expert.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/daily-workflow-updater.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/dead-code-remover.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/deep-report.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/delight.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/dependabot-burner.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/dependabot-go-checker.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/dev-hawk.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/dev.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/developer-docs-consolidator.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/dictation-prompt.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/discussion-task-miner.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/docs-noob-tester.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/draft-pr-cleanup.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/duplicate-code-detector.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/example-permissions-warning.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/example-workflow-analyzer.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/firewall-escape.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/firewall.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/functional-pragmatist.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/github-mcp-structural-analysis.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/github-mcp-tools-report.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/github-remote-mcp-auth-test.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/glossary-maintainer.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/go-fan.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/go-logger.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/go-pattern-detector.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/gpclean.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/grumpy-reviewer.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/hourly-ci-cleaner.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/instructions-janitor.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/issue-arborist.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/issue-monster.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/issue-triage-agent.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/jsweep.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/layout-spec-maintainer.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/lockfile-stats.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/mcp-inspector.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/mergefest.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/metrics-collector.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/notion-issue-summary.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/org-health-report.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/pdf-summary.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/plan.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/poem-bot.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/portfolio-analyst.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/pr-nitpick-reviewer.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/pr-triage-agent.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/prompt-clustering-analysis.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/python-data-charts.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/q.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/refiner.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/release.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/repo-audit-analyzer.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/repo-tree-map.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/repository-quality-improver.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/research.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/safe-output-health.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/schema-consistency-checker.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/scout.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/security-alert-burndown.campaign.g.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/security-compliance.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/security-review.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/semantic-function-refactor.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/sergo.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/slide-deck-maintainer.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/smoke-agent.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/smoke-claude.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/smoke-codex.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/smoke-copilot-arm.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/smoke-copilot.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/smoke-create-cross-repo-pr.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/smoke-gemini.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/smoke-multi-pr.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/smoke-project.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/smoke-temporary-id.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/smoke-test-tools.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/smoke-update-cross-repo-pr.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/smoke-workflow-call.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/stale-repo-identifier.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/static-analysis-report.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/step-name-alignment.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/sub-issue-closer.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/super-linter.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/technical-doc-writer.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/terminal-stylist.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/test-create-pr-error-handling.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/test-dispatcher.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/test-project-url-default.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/test-workflow.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/tidy.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/typist.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/ubuntu-image-analyzer.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/unbloat-docs.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/video-analyzer.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/weekly-editors-health-check.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/weekly-issue-summary.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/weekly-safe-outputs-spec-review.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/workflow-generator.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/workflow-health-manager.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/workflow-normalizer.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
| .github/workflows/workflow-skill-extractor.lock.yml | Regenerates lock workflow with v2 metadata and GH_AW_COMPILED_STRICT |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
| "This workflow is running on a public repository but was not compiled with strict mode.\\n" + | ||
| "\\n" + | ||
| "Please configure one of the following as a repository secret:\\n" + | ||
| " - GH_AW_GITHUB_TOKEN (recommended)\\n" + | ||
| " - GH_AW_GITHUB_MCP_SERVER_TOKEN (alternative)\\n" + | ||
| " - Custom github-token in your workflow frontmatter\\n" + | ||
| "Public repository workflows must be compiled with strict mode enabled to meet\\n" + | ||
| "the security requirements for public exposure.\\n" + | ||
| "\\n" + | ||
| "See: https://github.com/github/gh-aw/blob/main/docs/src/content/docs/reference/auth.mdx\\n" + | ||
| "To fix this, recompile the workflow with strict mode:\\n" + | ||
| " gh aw compile --strict\\n" + | ||
| "\\n" + | ||
| "To set a token:\\n" + | ||
| ' gh aw secrets set GH_AW_GITHUB_TOKEN --value "YOUR_FINE_GRAINED_PAT"'; | ||
| "See: https://github.com/github/gh-aw/blob/main/docs/src/content/docs/reference/security.mdx"; |
There was a problem hiding this comment.
The strict-mode failure guidance only mentions recompiling with gh aw compile --strict, but GH_AW_COMPILED_STRICT is derived from effective strictness (frontmatter strict: true or CLI flag). To avoid misleading users, the error message should also mention enabling strict: true in frontmatter (and then recompiling) as an alternative fix.
|
Commit pushed:
|
Smoke Test Results — Run §22800226809
Overall: PR author:
|
There was a problem hiding this comment.
PR adds effectiveStrictMode() helper and LockSchemaV2 to track strict mode in lock file metadata — clean, well-structured change. Left two minor notes: one on the tri-state limitation of the CLI bool flag, and one suggesting a CurrentLockSchemaVersion alias for future-proofing.
📰 BREAKING: Report filed by Smoke Copilot
| if c.strictMode { | ||
| // CLI flag takes precedence | ||
| return true | ||
| } |
There was a problem hiding this comment.
The effectiveStrictMode function only returns true when c.strictMode is set via the CLI flag, but has no way to express "CLI explicitly disabled strict mode". If a --no-strict CLI flag is ever added, this logic would need to change from a bool to a *bool (or tri-state enum) to distinguish "CLI forced true", "CLI forced false", and "CLI not set". Worth a TODO comment to document this limitation.
| // LockSchemaV1 is the legacy lock file schema version (no strict field) | ||
| LockSchemaV1 LockSchemaVersion = "v1" | ||
| // LockSchemaV2 is the current lock file schema version (adds strict field) | ||
| LockSchemaV2 LockSchemaVersion = "v2" |
There was a problem hiding this comment.
Consider adding a CurrentLockSchemaVersion = LockSchemaV2 alias so callers don't need to be updated each time a new schema version is introduced. This would make the GenerateLockMetadata function (and other callers) more future-proof and easier to update.
|
📰 VERDICT: Smoke Copilot has concluded. All systems operational. This is a developing story. 🎤 |
Smoke Test Results — Run §22800226769Core (#1–10): ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ Overall: PARTIAL (test #17 skipped — no safe PR to close)
|
There was a problem hiding this comment.
💥 Automated smoke test review - all systems nominal!
💥 [THE END] — Illustrated by Smoke Claude
effectiveStrictMode()helper in compiler_yaml.go (a7a014c)compiler_orchestrator_engine.goto useeffectiveStrictMode()instead of duplicating logic inline (both occurrences)effectiveStrictMode()covering all cases: CLI flag, frontmatter field, default true, nil frontmatter, non-bool strict fieldOriginal prompt
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.
Enforce strict: true for public repositories in lockdown validation
effectiveStrictMode()helper in compiler_yaml.go (a7a014c)compiler_orchestrator_engine.goto useeffectiveStrictMode()instead of duplicating logic inline (both occurrences)effectiveStrictMode()covering all cases: CLI flag, frontmatter field, default true, nil frontmatter, non-bool strict fieldOriginal prompt
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more [Copilot coding agent tips]((gh.io/redacted) in the docs.
Changeset
strict: truefor public repositories.Warning
The following domains were blocked by the firewall during workflow execution:
ab.chatgpt.comgithub.comTo allow these domains, add them to the
network.allowedlist in your workflow frontmatter:See Network Configuration for more information.
✨ PR Review Safe Output Test - Run 22800226769