Skip to content

feat: compiler emits AWF JSON config file instead of CLI flag soup#29222

Open
Copilot wants to merge 9 commits intomainfrom
copilot/migrate-compiler-to-awf-json-config
Open

feat: compiler emits AWF JSON config file instead of CLI flag soup#29222
Copilot wants to merge 9 commits intomainfrom
copilot/migrate-compiler-to-awf-json-config

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 30, 2026

AWF's --config <path> support already exists but the compiler never used it, instead generating ever-longer flag lists that are fragile for complex values, hard to audit in diffs, and impossible to schema-validate at compile time.

What changed

New: pkg/workflow/awf_config.go

  • BuildAWFConfigJSON() — serializes AWFCommandConfig into compact AWF config JSON covering network (allowDomains, blockDomains), apiProxy (enabled, targets), and container (imageTag)
  • splitDomainList() — comma-separated domain parsing with deduplication (insertion order preserved)

BuildAWFCommand() / BuildAWFArgs() in awf_helpers.go — the run step always writes the JSON via printf then passes --config instead of --allow-domains, --block-domains, --enable-api-proxy, --image-tag, and --*-api-target flags. The config is also copied to /tmp/gh-aw/awf-config.json so it is included in the agent artifact.

New: pkg/constants/constants.go — added AWFConfigFilePath = "/tmp/gh-aw/awf-config.json" constant for the artifact-side copy of the config file.

205 .lock.yml files regenerated. Before/after for the AWF invocation line:

- sudo -E awf \
-   --allow-domains github.com,api.github.com,... \
-   --enable-api-proxy \
-   --image-tag 0.25.29,squid=sha256:... \
-   -- "..."
+ printf '%s\n' '{"$schema":"...","network":{"allowDomains":[...]},"apiProxy":{"enabled":true},"container":{"imageTag":"0.25.29,..."}}' \
+   > "${RUNNER_TEMP}/gh-aw/awf-config.json" && cp "${RUNNER_TEMP}/gh-aw/awf-config.json" /tmp/gh-aw/awf-config.json
+ sudo -E awf --config "${RUNNER_TEMP}/gh-aw/awf-config.json" -- "..."

The agent artifact now includes /tmp/gh-aw/awf-config.json alongside the proxy logs and audit directory, making the exact firewall configuration available for post-run analysis.

Backwards compatibility

The legacy CLI flag path (--allow-domains, --enable-api-proxy, --image-tag, API target flags) has been removed. All workflows unconditionally use --config.

Scope

This implements Phase 1 of the issue (compiler generates config file). Phases 2 (schema validation at compile time) and 3 (composable config layers) are left for follow-up.

[!WARNING]


Changeset

  • Type: patch
  • Description: Generate AWF JSON config files from compiled workflows and invoke AWF with --config instead of expanded network, proxy, and container flags. The generated config file is also included in the unified agent artifact for post-run analysis.

[!WARNING]

Generated by Changeset Generator for issue #29222 ·

- Add `pkg/workflow/awf_config.go` with `BuildAWFConfigJSON()` function,
  `awfSupportsConfigFile()` version gate, and `splitDomainList()` helper
- Add `AWFConfigFileMinVersion` constant to `pkg/constants/version_constants.go`
- Modify `BuildAWFCommand()` to write JSON config via printf and pass
  `--config "${RUNNER_TEMP}/gh-aw/awf-config.json"` to AWF when supported
- Modify `BuildAWFArgs()` to omit flags now expressed in the config file
  (--allow-domains, --block-domains, --enable-api-proxy, --image-tag,
  --*-api-target) when the AWF version supports --config
- Full legacy fallback: old AWF versions keep all CLI flags unchanged
- Update golden files and all affected unit tests to reflect new behavior
- Add comprehensive tests in `pkg/workflow/awf_config_test.go`

Agent-Logs-Url: https://github.com/github/gh-aw/sessions/7001ef78-eeee-4359-8de1-1cb092a2c990

Co-authored-by: lpcox <15877973+lpcox@users.noreply.github.com>
Copilot AI changed the title [WIP] Migrate compiler to use AWF JSON config file instead of CLI flags feat: compiler emits AWF JSON config file instead of CLI flag soup Apr 30, 2026
Copilot AI requested a review from lpcox April 30, 2026 01:14
@lpcox lpcox marked this pull request as ready for review April 30, 2026 03:09
Copilot AI review requested due to automatic review settings April 30, 2026 03:09
@lpcox
Copy link
Copy Markdown
Collaborator

lpcox commented Apr 30, 2026

@copilot merge main and recompile workflows

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the workflow compiler to generate and pass an AWF JSON config file via awf --config, replacing a large set of AWF CLI flags for network rules, API proxy settings, and container image tagging (with a version gate/fallback for older AWF versions).

Changes:

  • Added AWF config JSON generation and wiring so compiled workflows write ${RUNNER_TEMP}/gh-aw/awf-config.json and invoke awf --config ... when supported.
  • Added AWFConfigFileMinVersion constant to semver-gate config-file usage and preserve legacy CLI-flag output for older pinned AWF versions.
  • Updated tests and regenerated golden/lock workflow outputs to reflect the new invocation pattern.
Show a summary per file
File Description
pkg/workflow/awf_config.go Introduces AWF config JSON structs + BuildAWFConfigJSON() and domain parsing helper.
pkg/constants/version_constants.go Adds AWFConfigFileMinVersion for version-gating --config usage.
pkg/workflow/threat_detection_test.go Updates API target assertions to look for the config JSON representation.
pkg/workflow/network_merge_import_test.go Updates assertions to expect allowDomains in config JSON rather than CLI flags.
pkg/workflow/network_merge_edge_cases_test.go Updates domain de-dup verification to inspect the JSON config content.
pkg/workflow/mcp_scripts_firewall_test.go Updates firewall command structure checks to use config JSON.
pkg/workflow/gemini_engine_test.go Updates expectations for allowDomains + apiProxy enabled to appear in config JSON.
pkg/workflow/firewall_workflow_test.go Updates expectations for network configuration to appear in config JSON.
pkg/workflow/firewall_image_tag_test.go Updates image tag assertions to expect imageTag in config JSON (and keeps a legacy fallback test).
pkg/workflow/firewall_blocked_domains_test.go Updates blocked domain assertions to expect blockDomains in config JSON.
pkg/workflow/firewall_args_test.go Updates firewall arg assertions to expect config JSON output.
pkg/workflow/enable_api_proxy_test.go Updates API proxy assertions for config JSON; adds a legacy-version fallback test.
pkg/workflow/crush_engine_test.go Updates firewall integration expectations to match config JSON behavior.
pkg/workflow/compiler_permissions_test.go Updates permissions test expectations to match config JSON output.
pkg/workflow/claude_engine_network_test.go Updates network-permission assertions to expect config JSON output.
pkg/workflow/testdata/TestWasmGolden_CompileFixtures/basic-copilot.golden Updates golden output for AWF invocation + config write.
pkg/workflow/testdata/TestWasmGolden_CompileFixtures/with-imports.golden Updates golden output for AWF invocation + config write.
.github/workflows/*.lock.yml (incl. regenerated workflow lock files) Regenerates locked workflows to write AWF config JSON and call awf --config.

Copilot's findings

Tip

Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

  • Files reviewed: 105/225 changed files
  • Comments generated: 2

Comment on lines +28 to +32
// },
// "container": {
// "imageTag": "v0.25.29,squid=sha256:..."
// }
// }
Copy link

Copilot AI Apr 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The schema example shows container.imageTag values with a leading "v" (e.g. "v0.25.29"), but getAWFImageTag() strips the v-prefix and the generated lock/golden outputs use "0.25.29". Update the example (or the ImageTag docs) to match the actual format to avoid confusing future readers.

Copilot uses AI. Check for mistakes.
Comment thread pkg/workflow/awf_config.go Outdated
Comment on lines +176 to +178
// splitDomainList splits a comma-separated domain string into a sorted, deduplicated
// slice. Empty entries are ignored. The order of the original list is preserved for
// non-duplicate entries; this keeps the allow-list deterministic.
Copy link

Copilot AI Apr 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

splitDomainList's docstring says it returns a "sorted, deduplicated" slice, but the implementation preserves the original order and does not sort. Either sort the result (and clarify the intended ordering) or adjust the comment to reflect the current behavior.

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch! The splitDomainList docstring claiming 'sorted, deduplicated' when the implementation only deduplicates (not sorts) is indeed misleading. Sorting would be a minor change but would help produce deterministic output across runs.

📰 BREAKING: Report filed by Smoke Copilot · ● 843.2K

…ler-to-awf-json-config

# Conflicts:
#	.github/workflows/daily-cache-strategy-analyzer.lock.yml
#	.github/workflows/daily-doc-healer.lock.yml
#	.github/workflows/daily-doc-updater.lock.yml
#	.github/workflows/daily-fact.lock.yml
#	.github/workflows/daily-observability-report.lock.yml
#	.github/workflows/daily-rendering-scripts-verifier.lock.yml
#	.github/workflows/daily-safe-output-optimizer.lock.yml
#	.github/workflows/delight.lock.yml
#	.github/workflows/developer-docs-consolidator.lock.yml
#	.github/workflows/duplicate-code-detector.lock.yml
#	.github/workflows/go-fan.lock.yml
#	.github/workflows/go-logger.lock.yml
#	.github/workflows/grumpy-reviewer.lock.yml
#	.github/workflows/instructions-janitor.lock.yml
#	.github/workflows/issue-arborist.lock.yml
#	.github/workflows/safe-output-health.lock.yml
#	.github/workflows/schema-feature-coverage.lock.yml
#	.github/workflows/scout.lock.yml
#	.github/workflows/sergo.lock.yml
#	.github/workflows/smoke-call-workflow.lock.yml
#	.github/workflows/smoke-codex.lock.yml
#	.github/workflows/spec-enforcer.lock.yml
#	.github/workflows/step-name-alignment.lock.yml
#	.github/workflows/unbloat-docs.lock.yml

Co-authored-by: lpcox <15877973+lpcox@users.noreply.github.com>
@pelikhan
Copy link
Copy Markdown
Collaborator

@copilot

  • merge main, recompile, review all comments

Copy link
Copy Markdown
Contributor Author

Copilot AI commented Apr 30, 2026

@copilot merge main and recompile workflows

Done — merged main (989800c) and recompiled all 205 workflows successfully.

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:

  • https://api.github.com/graphql
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw (http block)
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw eee0d207f80a13b7rev-parse yml git rev-�� -aw-actions/git/ref/tags/v1.0.0 git bject.type] | @tsv k/gh-aw/gh-aw (http block)
  • https://api.github.com/repos/actions/ai-inference/git/ref/tags/v1
    • Triggering command: /usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq [.object.sha, .object.type] | @tsv graphql -f /usr/bin/git -f owner=github -f git rev-�� --show-toplevel (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v3
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq [.object.sha, .object.type] | @tsv k/gh-aw/gh-aw/.github/workflows -f /usr/bin/gh -f owner=github ed } } /usr/bin/gh api k/gh-aw/gh-aw -f kflows/smoke-agent-all-merged.lock.yml -f owner=github -f git (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v5
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq [.object.sha, .object.type] | @tsv ithub/workflows --get repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq [.object.sha, .object.type] | @tsv --show-toplevel git /usr/bin/git --get-regexp --local repository(owne: git rev-�� --show-toplevel e/git-remote-httconfig /usr/bin/git ithub/workflows --local rgo/bin/bash git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq [.object.sha, .object.type] | @tsv --show-toplevel git /usr/bin/git ithub/workflows (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv ithub/workflows eee0d207f80a13b7e7ee85870fd495ada yml (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv ithub/workflows (http block)
  • https://api.github.com/repos/actions/github-script/git/ref/tags/v8
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq [.object.sha, .object.type] | @tsv --show-toplevel git /usr/bin/git get --local r: $owner, name:--oneline git rev-�� --show-toplevel ache/go/1.25.8/x64/pkg/tool/linuconfig /usr/bin/git --local committer.email me: String!) { --show-toplevel git (http block)
  • https://api.github.com/repos/actions/github-script/git/ref/tags/v9
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq [.object.sha, .object.type] | @tsv /home/REDACTED/work/gh-aw/gh-aw/.github/workflows config /usr/bin/git remote.origin.urgit (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq [.object.sha, .object.type] | @tsv /home/REDACTED/work/gh-aw/gh-aw show /usr/bin/gh (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq [.object.sha, .object.type] | @tsv /home/REDACTED/work/gh-aw/gh-aw/.github/workflows rev-parse /usr/bin/git (http block)
  • https://api.github.com/repos/actions/setup-go/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv /home/REDACTED/work/gh-aw/gh-aw/.github/workflows rev-parse /usr/bin/git (http block)
  • https://api.github.com/repos/actions/setup-node/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv k/gh-aw/gh-aw/.github/workflows rev-parse me: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } l (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv /home/REDACTED/work/gh-aw/gh-aw/.github/workflows config /usr/bin/git remote.origin.urgit (http block)
  • https://api.github.com/repos/actions/setup-node/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv .github/workflows/aw-failure-investigator.lock.yml .github/workflows/blog-auditor.lock.yml .github/workflows/bot-detection.lock.yml .github/workflows/brave.lock.yml .github/workflows/breaking-change-checker.lock.yml .github/workflows/changeset.lock.yml .github/workflows/ci-coach.lock.yml (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv k/gh-aw/gh-aw (http block)
  • https://api.github.com/repos/actions/upload-artifact/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv --version (http block)
  • https://api.github.com/repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b
    • Triggering command: /usr/bin/gh gh api /repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b --jq [.object.sha, .object.type] | @tsv (http block)
  • https://api.github.com/repos/github/gh-aw
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw --jq .default_branch (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v0.1.2
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v0.1.2 --jq [.object.sha, .object.type] | @tsv nkXX/HE5q5-wS1kl7NFASnkXX show /usr/bin/git (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v1.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv /home/REDACTED/work/gh-aw/gh-aw show er: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabl--show-toplevel (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v1.2.3
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.2.3 --jq [.object.sha, .object.type] | @tsv /home/REDACTED/work/gh-aw/gh-aw/.github/workflows rev-parse ate-cross-repo-pr.lock.yml h-aw (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v0.47.4
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v0.47.4 --jq [.object.sha, .object.type] | @tsv --show-toplevel git /usr/bin/git ithub/workflows --local nfig/composer/ve--show-toplevel git rev-�� --show-toplevel git /usr/bin/git ithub/workflows credential.usern-k r: $owner, name:/tmp/gh-aw/aw-feature-branch.patch git (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v1.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv (http block)
  • https://api.github.com/repos/nonexistent/action/git/ref/tags/v999.999.999
    • Triggering command: /usr/bin/gh gh api /repos/nonexistent/action/git/ref/tags/v999.999.999 --jq [.object.sha, .object.type] | @tsv (http block)

If you need me to access, download, or install something from one of these locations, you can either:

Copy link
Copy Markdown
Contributor Author

Copilot AI commented Apr 30, 2026

@copilot

  • merge main, recompile, review all comments

Main was already merged and workflows recompiled in the previous session. Addressed the two code review comments in 6426f64:

  • Removed the v prefix from the imageTag schema example ("0.25.29,..." instead of "v0.25.29,..."), matching what getAWFImageTag() actually produces
  • Removed "sorted" from splitDomainList's docstring — the function only deduplicates, preserving insertion order

Copilot AI requested a review from pelikhan April 30, 2026 03:23
@pelikhan
Copy link
Copy Markdown
Collaborator

@copilot remove support for legacy flags, only config is supported

Copy link
Copy Markdown
Contributor Author

Copilot AI commented Apr 30, 2026

@copilot remove support for legacy flags, only config is supported

Done in 1b854e4. Removed all legacy flag support:

  • Deleted awfSupportsConfigFile() and AWFConfigFileMinVersion
  • Removed all !usingConfigFile branches from BuildAWFArgs()--allow-domains, --block-domains, --image-tag, --enable-api-proxy, and API target flags are gone entirely
  • BuildAWFCommand() now unconditionally generates and writes the JSON config file
  • Removed all legacy-path tests; updated remaining tests to check "imageTag": in the config JSON
  • Recompiled all 205 workflows — no legacy flags remain in any .lock.yml

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:

  • https://api.github.com/graphql
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw (http block)
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw XCU-LbY/Pf9qh6G6--write (http block)
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw _i/YQuwHK0XRBhPm-C (http block)
  • https://api.github.com/orgs/test-owner/actions/secrets
    • Triggering command: /usr/bin/gh gh api /orgs/test-owner/actions/secrets --jq .secrets[].name rite &#39;**/*.cjs&#39; &#39;**/*.ts&#39; &#39;**/*.remote.origin.url gpg.program rgo/bin/sh (http block)
  • https://api.github.com/repos/actions/ai-inference/git/ref/tags/v1
    • Triggering command: /usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq [.object.sha, .object.type] | @tsv xterm-color git /usr/bin/git rity3870063428/0git config sue-summary.lock--show-toplevel git rev-�� --show-toplevel git /usr/bin/git 3422-10164/test-node rev-parse Name,createdAt,sinstall git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq [.object.sha, .object.type] | @tsv --noprofile git /usr/bin/git --show-toplevel node /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git --show-toplevel git ache/go/1.25.8/xinstall git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq [.object.sha, .object.type] | @tsv --noprofile git /usr/bin/git --show-toplevel git /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git --show-toplevel git inPathSetup_Goroinstall git (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v3
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq [.object.sha, .object.type] | @tsv (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq [.object.sha, .object.type] | @tsv --show-toplevel git /usr/bin/git --show-toplevel git /usr/bin/git git rev-�� --show-toplevel git .cfg --show-toplevel git /usr/bin/git git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq [.object.sha, .object.type] | @tsv --show-toplevel git /usr/bin/git --show-toplevel /opt/hostedtoolcrev-parse /usr/bin/git git rev-�� --show-toplevel git .cfg --show-toplevel git /usr/bin/git git (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v5
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq [.object.sha, .object.type] | @tsv k/gh-aw/gh-aw/.github/workflows show 64/pkg/tool/linux_amd64/vet l (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq [.object.sha, .object.type] | @tsv --show-toplevel infocmp /usr/bin/git k/gh-aw/gh-aw/.gtr (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq [.object.sha, .object.type] | @tsv --show-toplevel /usr/lib/git-core/git /usr/bin/git sistency_Inlinedgit -q /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git user.name Test User /usr/bin/git git (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv compiler-to-awf-remote.origin.url --local tnet/tools/bash user.name (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv compiler-to-awf-remote.origin.url --local ache/go/1.25.8/x64/bin/go user.name (http block)
  • https://api.github.com/repos/actions/github-script/git/ref/tags/v8
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq [.object.sha, .object.type] | @tsv --show-toplevel /usr/bin/gh /usr/bin/infocmp graphql -f /usr/bin/git infocmp -1 xterm-color git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq [.object.sha, .object.type] | @tsv --show-toplevel git /usr/bin/infocmp --show-toplevel git /usr/bin/git infocmp -1 xterm-color git (http block)
  • https://api.github.com/repos/actions/github-script/git/ref/tags/v9
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq [.object.sha, .object.type] | @tsv get --local r: $owner, name: $name) { hasDiscussionsEnabled } } copilot.originalgit (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq [.object.sha, .object.type] | @tsv --local credential.usernowner=github l ignore (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq [.object.sha, .object.type] | @tsv fully&#34; credential.helper h ignore (http block)
  • https://api.github.com/repos/actions/setup-go/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv --git-dir git /usr/bin/sh itmain_branch330git itmain_branch330rev-parse l-workflow.lock.--show-toplevel sh -c printf &#39;%s&#39; &#34;$1&#34;; printf &#39;%s&#39; &#34;$2&#34; 1&gt;&amp;2 sh /usr/bin/git diagnostic noisegit config x_amd64/vet git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv --show-toplevel git /usr/bin/git --show-toplevel git /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git --show-toplevel git /usr/bin/git git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv --show-toplevel git /usr/bin/bash --show-toplevel git /usr/bin/git bash --no�� --noprofile git /usr/bin/git --show-toplevel 64/pkg/tool/linurev-parse /usr/bin/git git (http block)
  • https://api.github.com/repos/actions/setup-node/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv runs/20260430-033422-10164/test-4210428738 rev-parse ache/node/24.14.1/x64/bin/node s/test.md copilot/migrate-rev-parse repository(owne--show-toplevel gh t-45�� k/gh-aw/gh-aw/.github/workflows/audit-workflows.md --jq /usr/bin/git ithub/workflows (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv --show-toplevel git /usr/bin/git ithub/workflows rev-parse (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv --show-toplevel git 64/pkg/tool/linux_amd64/vet --show-toplevel git /usr/bin/git 64/pkg/tool/linux_amd64/vet rev-�� --show-toplevel git /usr/bin/git --show-toplevel ache/go/1.25.8/xrev-parse /usr/bin/git git (http block)
  • https://api.github.com/repos/actions/setup-node/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv compiler-to-awf--f --local 64/bin/sh user.name (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv /home/REDACTED/work/gh-aw/gh-aw/.github/workflows =main .cfg remote.origin.urgit (http block)
  • https://api.github.com/repos/actions/upload-artifact/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv /tmp/gh-aw-test-runs/20260430-033422-10164/test-test-logs/run-1 remote /usr/bin/git --local core.hooksPath r: $owner, name:--show-toplevel git -C /tmp/gh-aw-test-runs/20260430-033422-10164/test-3110514048 rev-parse om/upstream/repo.git rite &#39;../../../*git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv --show-toplevel git /usr/bin/infocmp --show-toplevel infocmp /usr/bin/git infocmp -1 xterm-color git /usr/bin/git --show-toplevel 64/pkg/tool/linurev-parse /usr/bin/gh git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv --show-toplevel git n-dir/bash --show-toplevel git /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git --show-toplevel gh /usr/bin/git git (http block)
  • https://api.github.com/repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b
    • Triggering command: /usr/bin/gh gh api /repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b --jq [.object.sha, .object.type] | @tsv (http block)
    • Triggering command: /usr/bin/gh gh api /repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b --jq [.object.sha, .object.type] | @tsv mit} (http block)
  • https://api.github.com/repos/github/gh-aw
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw --jq .default_branch get --local r: $owner, name: $name) { hasDiscussionsEnabled } } committer.name (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v0.1.2
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v0.1.2 --jq [.object.sha, .object.type] | @tsv --show-toplevel /usr/bin/git /usr/bin/git ithub/workflows (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v0.1.2 --jq [.object.sha, .object.type] | @tsv --show-toplevel git 8739563/b461/vet.cfg --show-toplevel git /usr/bin/git git rev-�� --show-toplevel git /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet --show-toplevel git /usr/bin/git /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v0.1.2 --jq [.object.sha, .object.type] | @tsv --show-toplevel git 3909578/b464/vet.cfg --show-toplevel git /usr/bin/git bash --no�� --noprofile git /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet --show-toplevel 64/pkg/tool/linurev-parse /usr/bin/git /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v1.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv /tmp/gh-aw-test-runs/20260430-033422-10164/test-805428710/.github/workflows rev-parse /usr/bin/infocmp ithub/workflows origin repository(owne--show-toplevel infocmp -1 xterm-color head /usr/bin/git rite &#39;../../../*git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv xterm-color git /usr/bin/git --show-toplevel ortcfg /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git --show-toplevel ache/go/1.25.8/xrev-parse /usr/bin/git git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv --show-toplevel git /usr/bin/git --show-toplevel git /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git --show-toplevel gh /usr/bin/git git (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v1.2.3
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.2.3 --jq [.object.sha, .object.type] | @tsv --show-toplevel cfb2ab33 /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet te &#39;**/*.cjs&#39; &#39;*git origin repository(owne--show-toplevel /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linu-test.v=true -ato�� thImports637671250/001 -buildtags /usr/bin/git -errorsas -ifaceassert -nilfunc git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.2.3 --jq [.object.sha, .object.type] | @tsv --show-toplevel git /usr/bin/git --show-toplevel infocmp /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git --show-toplevel ache/go/1.25.8/xrev-parse /usr/bin/git git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.2.3 --jq [.object.sha, .object.type] | @tsv --show-toplevel git /usr/bin/git --show-toplevel git /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git --show-toplevel infocmp /usr/bin/git git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --limit 100 --created &gt;=2026-04-23 --ignore-path ../../../.pretti--get x_amd64/vet --no�� ithub/workflows (http block)
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --limit 100 --created &gt;=2026-03-31 --ignore-path ../../../.pretti/tmp/TestHashStability_SameInputSameOutput1845582402/001/stability-test.md bash --no�� source-field-variant-1462050913/.github/workflows (http block)
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --limit 100 --created &gt;=2026-01-30 --ignore-path ../../../.pretti--get bash --no�� ithub/workflows (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/1/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/1/artifacts --jq .artifacts[].name (http block)
    • Triggering command: /usr/bin/gh gh run download 1 --dir test-logs/run-1 rev-parse kflows/docs-noob-tester.lock.yml (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/12345/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12345/artifacts --jq .artifacts[].name rev-parse me: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } l (http block)
    • Triggering command: /usr/bin/gh gh run download 12345 --dir test-logs/run-12345 rev-parse /usr/bin/git ath ../../../.prgit (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/12346/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12346/artifacts --jq .artifacts[].name (http block)
    • Triggering command: /usr/bin/gh gh run download 12346 --dir test-logs/run-12346 show /usr/bin/git l (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/2/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/2/artifacts --jq .artifacts[].name rev-parse /usr/bin/git l (http block)
    • Triggering command: /usr/bin/gh gh run download 2 --dir test-logs/run-2 rev-parse me: String!) { repository(owner: $owner, name:-f (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/3/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/3/artifacts --jq .artifacts[].name config kflow-call.lock.yml remote.origin.urgit (http block)
    • Triggering command: /usr/bin/gh gh run download 3 --dir test-logs/run-3 changeset.lock.yml n-dir/bash remote.origin.urgit (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/4/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/4/artifacts --jq .artifacts[].name show /usr/bin/git ath ../../../.prgit (http block)
    • Triggering command: /usr/bin/gh gh run download 4 --dir test-logs/run-4 rev-parse o-identifier.lock.yml l (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/5/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/5/artifacts --jq .artifacts[].name -f /usr/bin/gh l owner=github -f /usr/bin/gh api k/gh-aw/gh-aw/.github/workflows -f /usr/bin/git l owner=github DiscussionsEnabl--show-toplevel git (http block)
    • Triggering command: /usr/bin/gh gh run download 5 --dir test-logs/run-5 config (http block)
  • https://api.github.com/repos/github/gh-aw/actions/workflows
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path rite &#39;**/*.cjs&#39; &#39;**/*.ts&#39; &#39;**/*.json&#39; --ignore-premote.origin.url gpg.program p/bin/sh (http block)
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --workflow nonexistent-workflow-12345 --limit 100 (http block)
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --workflow nonexistent-workflow-12345 --limit 6 (http block)
  • https://api.github.com/repos/github/gh-aw/contents/.github/workflows/shared/reporting.md
    • Triggering command: /tmp/go-build1345893562/b404/cli.test /tmp/go-build1345893562/b404/cli.test -test.testlogfile=/tmp/go-build1345893562/b404/testlog.txt -test.paniconexit0 -test.v=true -test.parallel=4 -test.timeout=10m0s -test.run=^Test -test.short=true core.hooksPath (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v0.47.4
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v0.47.4 --jq [.object.sha, .object.type] | @tsv --show-toplevel git /usr/bin/git Onlymin-integritgit show ache/go/1.25.8/x--show-toplevel git rev-�� --show-toplevel ache/go/1.25.8/x--jq /usr/bin/git /ref/tags/v9 config sv git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v0.47.4 --jq [.object.sha, .object.type] | @tsv --show-toplevel git /usr/bin/git --show-toplevel git /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git --show-toplevel git /usr/bin/git git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v0.47.4 --jq [.object.sha, .object.type] | @tsv --show-toplevel git /usr/bin/git --show-toplevel git /usr/bin/infocmp--show-toplevel git rev-�� --show-toplevel infocmp /usr/bin/git xterm-color git /usr/bin/git git (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v1.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv k/gh-aw/gh-aw/.github/workflows (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv --show-toplevel git /usr/bin/git user.email test@example.comrev-parse ache/node/24.14.--show-toplevel git rev-�� --show-toplevel ache/node/24.14.1/x64/bin/node /usr/bin/git user.email test@example.comrev-parse /usr/bin/git git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv --show-toplevel git /usr/bin/git --show-toplevel git /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git --show-toplevel git /usr/bin/git git (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v1.2.3
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.2.3 --jq [.object.sha, .object.type] | @tsv --noprofile on repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } /../../.prettiergit erignore (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v2.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq [.object.sha, .object.type] | @tsv --noprofile (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq [.object.sha, .object.type] | @tsv ithub/workflows (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v3.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v3.0.0 --jq [.object.sha, .object.type] | @tsv --noprofile (http block)
  • https://api.github.com/repos/nonexistent/action/git/ref/tags/v999.999.999
    • Triggering command: /usr/bin/gh gh api /repos/nonexistent/action/git/ref/tags/v999.999.999 --jq [.object.sha, .object.type] | @tsv rdian.md config k remote.origin.urgit (http block)
    • Triggering command: /usr/bin/gh gh api /repos/nonexistent/action/git/ref/tags/v999.999.999 --jq [.object.sha, .object.type] | @tsv --show-toplevel git /usr/bin/git -stringintconv -tests ache/node/24.14.--show-toplevel git rev-�� --show-toplevel ache/node/24.14.1/x64/bin/node /usr/bin/git b.actor }}, Repogit Initial commit /usr/bin/git git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/nonexistent/action/git/ref/tags/v999.999.999 --jq [.object.sha, .object.type] | @tsv --show-toplevel git /usr/bin/git --show-toplevel git /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git --show-toplevel git /usr/bin/git git (http block)
  • https://api.github.com/repos/nonexistent/repo/actions/runs/12345
    • Triggering command: /usr/bin/gh gh run view 12345 --repo nonexistent/repo --json status,conclusion l (http block)
  • https://api.github.com/repos/owner/repo/actions/workflows
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --repo owner/repo /opt/pipx_bin/bash (http block)
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --repo owner/repo repository(owne-f (http block)
    • Triggering command: /usr/bin/gh gh workflow list --repo owner/repo --json name,path,state /usr/bin/git -f owner=github -f git -C k/gh-aw/gh-aw/.github/workflows show /usr/bin/git (http block)
  • https://api.github.com/repos/test-owner/test-repo/actions/secrets
    • Triggering command: /usr/bin/gh gh api /repos/test-owner/test-repo/actions/secrets --jq .secrets[].name rite &#39;**/*.cjs&#39; remote.origin.url gpg.program formance-analyzer.lock.yml (http block)
  • https://api.github.com/repos/test/repo
    • Triggering command: /usr/bin/gh gh api /repos/test/repo --jq .default_branch 3110514048 ghcr.io/github/serena-mcp-server:latest (http block)

If you need me to access, download, or install something from one of these locations, you can either:

@pelikhan
Copy link
Copy Markdown
Collaborator

@copilot review all comments

Copy link
Copy Markdown
Contributor Author

Copilot AI commented Apr 30, 2026

@copilot review all comments

All comments are addressed:

  • imageTag schema example uses "0.25.29,..." (no v prefix) — fixed in 6426f64
  • splitDomainList docstring no longer says "sorted" — fixed in 6426f64
  • Legacy flag support removed; --config is always used unconditionally — done in 1b854e4

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 30, 2026

⚠️ Smoke Crush failed. Crush encountered unexpected challenges...

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 30, 2026

💫 TO BE CONTINUED... Smoke Claude failed! Our hero faces unexpected challenges...

@github-actions
Copy link
Copy Markdown
Contributor

📰 BREAKING: Smoke Copilot is now investigating this pull request. Sources say the story is developing...

@github-actions github-actions Bot removed the smoke label Apr 30, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 30, 2026

⚠️ Smoke Gemini failed. Gemini encountered unexpected challenges...

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 30, 2026

✨ The prophecy is fulfilled... Smoke Codex has completed its mystical journey. The stars align. 🌟

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 30, 2026

🚀 Smoke OpenCode MISSION COMPLETE! OpenCode delivered. 🔥

@github-actions
Copy link
Copy Markdown
Contributor

Agent Container Tool Check

Tool Status Version
bash 5.2.21
sh available
git 2.53.0
jq 1.7
yq v4.52.5
curl 8.5.0
gh 2.89.0
node v22.22.2
python3 3.10.16 (PyPy 7.3.19)
go 1.24.13
java 10.0.201
dotnet 10.0.201

Result: 12/12 tools available ✅

Overall Status: PASS

🔧 Tool validation by Agent Container Smoke Test · ● 163.8K ·

@github-actions
Copy link
Copy Markdown
Contributor

PRs: #29251 [jsweep] Clean remove_trigger_label.cjs; #29243 [docs] Unbloat: examples/project-tracking.md (-21%)
✅ GitHub MCP, Serena, Playwright, file/bash, build
❌ Web Fetch MCP unavailable; comment-memory markdown missing
Overall status: FAIL

Warning

Firewall blocked 2 domains

The following domains were blocked by the firewall during workflow execution:

  • ab.chatgpt.com
  • chatgpt.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "ab.chatgpt.com"
    - "chatgpt.com"

See Network Configuration for more information.

🔮 The oracle has spoken through Smoke Codex ·

@github-actions
Copy link
Copy Markdown
Contributor

Commit pushed: 2cf6036

Generated by Changeset Generator

@github-actions
Copy link
Copy Markdown
Contributor

🎉 The smoke test agent was here! Just dropped by to say hello and verify all systems are go. Everything's running smoothly in the matrix! 🤖✨

📰 BREAKING: Report filed by Smoke Copilot · ● 843.2K ·

@github-actions
Copy link
Copy Markdown
Contributor

Smoke Test #25148772853 results:

  • GitHub MCP ✅ | MCP Scripts GH CLI ✅ | Serena ⚠️ | Playwright ✅
  • File Write ✅ | Build ✅ | Artifact Upload ✅ | Discussion ✅
  • PR Review ✅ | Workflow Dispatch ✅

Overall: PASS 🎉
PR by @Copilot | Assignees: @lpcox, @Copilot

📰 BREAKING: Report filed by Smoke Copilot · ● 843.2K ·

Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR is a solid refactor. The move from CLI flag lists to a JSON config file makes AWF invocations much cleaner, easier to audit in diffs, and sets the stage for schema validation in Phase 2. Left a couple of inline comments on permissions and documentation.

📰 BREAKING: Report filed by Smoke Copilot · ● 843.2K

Comment thread .github/workflows/ace-editor.lock.yml Outdated
GH_AW_NODE_BIN=$(command -v node 2>/dev/null || true)
export GH_AW_NODE_BIN
(umask 177 && touch /tmp/gh-aw/agent-stdio.log)
printf '%s\n' '{"$schema":"https://github.com/github/gh-aw-firewall/schemas/awf-config.v1.json","network":{"allowDomains":["api.business.githubcopilot.com","api.enterprise.githubcopilot.com","api.github.com","api.githubcopilot.com","api.individual.githubcopilot.com","api.snapcraft.io","archive.ubuntu.com","azure.archive.ubuntu.com","crl.geotrust.com","crl.globalsign.com","crl.identrust.com","crl.sectigo.com","crl.thawte.com","crl.usertrust.com","crl.verisign.com","crl3.digicert.com","crl4.digicert.com","crls.ssl.com","github.com","host.docker.internal","json-schema.org","json.schemastore.org","keyserver.ubuntu.com","ocsp.digicert.com","ocsp.geotrust.com","ocsp.globalsign.com","ocsp.identrust.com","ocsp.sectigo.com","ocsp.ssl.com","ocsp.thawte.com","ocsp.usertrust.com","ocsp.verisign.com","packagecloud.io","packages.cloud.google.com","packages.microsoft.com","ppa.launchpad.net","raw.githubusercontent.com","registry.npmjs.org","s.symcb.com","s.symcd.com","security.ubuntu.com","telemetry.enterprise.githubcopilot.com","ts-crl.ws.symantec.com","ts-ocsp.ws.symantec.com","www.googleapis.com"]},"apiProxy":{"enabled":true},"container":{"imageTag":"0.25.29,squid=sha256:8a71ad9e40454051672312917e51567abfb8251d7c294d086c48f63d84e4cb53,agent=sha256:e68f37e36962dcb3f3d1de680a49bc2302cefd001b941a7dc377155ec7ce42f4,agent-act=sha256:97b4cc14dc2123a45b9d5b9927489f66882dec5857de6afc0e5bab257be92ef1,api-proxy=sha256:d1219e4110684402aabbeb5a43858f26790c9d0be210581cf3f7a521bd2c87b6,cli-proxy=sha256:29917488eb90a01ff9544ffeeb5cc26434a8ea16d69ae8972f5f6be0e567e276"}}' > "${RUNNER_TEMP}/gh-aw/awf-config.json"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 This is a great improvement — writing the config to a JSON file via printf and passing --config to awf makes the AWF invocation much cleaner and auditable. One note: the JSON is written with umask 177 applied to agent-stdio.log but not to awf-config.json — consider using (umask 177 && printf ... > awf-config.json) to ensure the config file has restricted permissions, since it contains image digests and network allowlists.

export GH_AW_NODE_BIN
(umask 177 && touch /tmp/gh-aw/agent-stdio.log)
printf '%s\n' '{"$schema":"https://github.com/github/gh-aw-firewall/schemas/awf-config.v1.json","network":{"allowDomains":["api.business.githubcopilot.com","api.enterprise.githubcopilot.com","api.github.com","api.githubcopilot.com","api.individual.githubcopilot.com","api.snapcraft.io","archive.ubuntu.com","azure.archive.ubuntu.com","crl.geotrust.com","crl.globalsign.com","crl.identrust.com","crl.sectigo.com","crl.thawte.com","crl.usertrust.com","crl.verisign.com","crl3.digicert.com","crl4.digicert.com","crls.ssl.com","github.com","host.docker.internal","json-schema.org","json.schemastore.org","keyserver.ubuntu.com","ocsp.digicert.com","ocsp.geotrust.com","ocsp.globalsign.com","ocsp.identrust.com","ocsp.sectigo.com","ocsp.ssl.com","ocsp.thawte.com","ocsp.usertrust.com","ocsp.verisign.com","packagecloud.io","packages.cloud.google.com","packages.microsoft.com","ppa.launchpad.net","raw.githubusercontent.com","registry.npmjs.org","s.symcb.com","s.symcd.com","security.ubuntu.com","telemetry.enterprise.githubcopilot.com","ts-crl.ws.symantec.com","ts-ocsp.ws.symantec.com","www.googleapis.com"]},"apiProxy":{"enabled":true},"container":{"imageTag":"0.25.29,squid=sha256:8a71ad9e40454051672312917e51567abfb8251d7c294d086c48f63d84e4cb53,agent=sha256:e68f37e36962dcb3f3d1de680a49bc2302cefd001b941a7dc377155ec7ce42f4,agent-act=sha256:97b4cc14dc2123a45b9d5b9927489f66882dec5857de6afc0e5bab257be92ef1,api-proxy=sha256:d1219e4110684402aabbeb5a43858f26790c9d0be210581cf3f7a521bd2c87b6,cli-proxy=sha256:29917488eb90a01ff9544ffeeb5cc26434a8ea16d69ae8972f5f6be0e567e276"}}' > "${RUNNER_TEMP}/gh-aw/awf-config.json"
# shellcheck disable=SC1003
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The migration from flag-soup to --config is a nice cleanup. Since 205 lock files are being regenerated, it might be worth adding a note in CI or a README about running the lock file regeneration command, so contributors know how to update these files after changing workflow configurations.

@github-actions
Copy link
Copy Markdown
Contributor

📰 VERDICT: Smoke Copilot has concluded. All systems operational. This is a developing story. 🎤

@pelikhan
Copy link
Copy Markdown
Collaborator

@copilot the final generated awf_config.json should be copied in the agent/detection artifact

- Add AWFConfigFilePath constant (/tmp/gh-aw/awf-config.json)
- Copy awf-config.json from ${RUNNER_TEMP}/gh-aw/ to /tmp/gh-aw/ alongside
  the printf write so it is included in the /tmp/gh-aw/ artifact root
- Add /tmp/gh-aw/awf-config.json to artifactPaths when firewall is enabled
- Update TestBuildAWFCommand_UsesConfigFile to assert the cp step is present
- Recompile all 205 workflows

Agent-Logs-Url: https://github.com/github/gh-aw/sessions/5dc09588-98f3-41e4-bd90-7f78f916230e

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copy link
Copy Markdown
Contributor Author

Copilot AI commented Apr 30, 2026

@copilot the final generated awf_config.json should be copied in the agent/detection artifact

Done in 35f7122.

The AWF config is written to ${RUNNER_TEMP}/gh-aw/awf-config.json (where AWF reads it) and now also copied to /tmp/gh-aw/awf-config.json so it shares the same artifact root as all other agent files. The compiler adds it to artifactPaths when the firewall is enabled, alongside the proxy logs and audit dir.

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:

  • https://api.github.com/graphql
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw (http block)
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw -pack /home/REDACTED/work/gh-aw/gh-aw/pkg/workflow/features_import_test.go /home/REDACTED/work/gh-aw/gh-aw/pkg/workflow/import_schema_test.go (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv get --local ock.yml copilot.originalgit (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv --local credential.username yml (http block)
  • https://api.github.com/repos/actions/setup-node/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv --local credential.usernowner=github 86_64/bash (http block)
  • https://api.github.com/repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b
    • Triggering command: /usr/bin/gh gh api /repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b --jq [.object.sha, .object.type] | @tsv (http block)
  • https://api.github.com/repos/github/gh-aw
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw --jq .default_branch successfully&#34; user.email r: $owner, name: $name) { hasDiscussionsEnabled } } (http block)

If you need me to access, download, or install something from one of these locations, you can either:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: Migrate compiler to use AWF JSON config file instead of CLI flags

4 participants