refactor: move outlier functions to their semantic homes#28282
refactor: move outlier functions to their semantic homes#28282
Conversation
- Move computeIntegrityCacheKey from cache.go to cache_integrity.go (all callees already live there: cacheIntegrityLevel, computePolicyHash, generateIntegrityAwareCacheKey) - Move BuildStandardNpmEngineInstallSteps, BuildNpmEngineInstallStepsWithAWF, and GetNpmBinPathSetup from engine_helpers.go to nodejs.go (consolidates all npm/Node.js step-generation in one file) - Extract safePercent and formatPercent into pkg/cli/audit_math_helpers.go (removes the near-duplicate pair scattered across audit_cross_run_render.go and audit_diff.go; enables consistent formatPercent(safePercent(a,b)) usage) - Update engine_helpers.go header comment to reflect removed npm functions Agent-Logs-Url: https://github.com/github/gh-aw/sessions/7428ac88-c154-4de3-9e07-954717fe2597 Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Refactors workflow/CLI code by relocating a handful of helper functions into files that already own the related logic (cache integrity, Node.js/npm workflow steps, and audit percent math helpers), aiming for better semantic organization without functional changes.
Changes:
- Moved
computeIntegrityCacheKeyfromcache.gotocache_integrity.goalongside its related integrity/policy helpers. - Moved npm/Node.js engine install step helpers (
BuildStandardNpmEngineInstallSteps,BuildNpmEngineInstallStepsWithAWF,GetNpmBinPathSetup) fromengine_helpers.gotonodejs.go. - Extracted
safePercentandformatPercentinto a newpkg/cli/audit_math_helpers.goand removed the prior duplicated/in-split definitions.
Show a summary per file
| File | Description |
|---|---|
| pkg/workflow/nodejs.go | Adds npm/Node helper functions previously housed in engine helpers. |
| pkg/workflow/engine_helpers.go | Removes npm/Node helpers and updates header docs to match remaining responsibilities. |
| pkg/workflow/cache_integrity.go | Adds computeIntegrityCacheKey next to integrity/policy hash helpers. |
| pkg/workflow/cache.go | Removes relocated computeIntegrityCacheKey implementation. |
| pkg/cli/audit_math_helpers.go | New shared helpers for percent computation/formatting used by audit rendering. |
| pkg/cli/audit_diff.go | Removes local formatPercent now provided by audit math helpers. |
| pkg/cli/audit_cross_run_render.go | Removes local safePercent now provided by audit math helpers. |
Copilot's findings
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 7/7 changed files
- Comments generated: 2
| } | ||
|
|
||
| // BuildStandardNpmEngineInstallSteps creates standard npm installation steps for engines. | ||
| // This helper extracts the common pattern shared by Copilot, Codex, and Claude engines. |
There was a problem hiding this comment.
The docstring says this helper is shared by "Copilot, Codex, and Claude" but Claude’s install path does not use this helper (it calls GenerateNpmInstallSteps with runInstallScripts=true). Please update the comment to reflect the actual engines/pattern (or make the helper generic without naming engines).
| // This helper extracts the common pattern shared by Copilot, Codex, and Claude engines. | |
| // This helper extracts the common pattern for engines installed via npm with Node.js setup. |
| // BuildNpmEngineInstallStepsWithAWF injects an AWF installation step between the Node.js | ||
| // setup step and the CLI install steps when the firewall is enabled. This eliminates the | ||
| // duplicated AWF-injection pattern shared by Claude, Gemini, and Copilot engines. | ||
| // | ||
| // The expected layout of npmSteps is: | ||
| // - npmSteps[0] – Node.js setup step | ||
| // - npmSteps[1:] – CLI installation step(s) | ||
| // | ||
| // Parameters: | ||
| // - npmSteps: Pre-computed npm installation steps (from BuildStandardNpmEngineInstallSteps | ||
| // or GenerateCopilotInstallerSteps) | ||
| // - workflowData: The workflow data (used to determine firewall configuration) | ||
| // | ||
| // Returns: | ||
| // - []GitHubActionStep: Steps in order: Node.js setup, AWF (if enabled), CLI install |
There was a problem hiding this comment.
The comment describes AWF being injected between a Node.js setup step (npmSteps[0]) and CLI install steps, but this helper is also called with an empty npmSteps slice (e.g., Copilot custom-command path) to install AWF only. Consider updating the doc and/or explicitly handling the empty-input case in the comment/contract so callers know this is supported.
| // BuildNpmEngineInstallStepsWithAWF injects an AWF installation step between the Node.js | |
| // setup step and the CLI install steps when the firewall is enabled. This eliminates the | |
| // duplicated AWF-injection pattern shared by Claude, Gemini, and Copilot engines. | |
| // | |
| // The expected layout of npmSteps is: | |
| // - npmSteps[0] – Node.js setup step | |
| // - npmSteps[1:] – CLI installation step(s) | |
| // | |
| // Parameters: | |
| // - npmSteps: Pre-computed npm installation steps (from BuildStandardNpmEngineInstallSteps | |
| // or GenerateCopilotInstallerSteps) | |
| // - workflowData: The workflow data (used to determine firewall configuration) | |
| // | |
| // Returns: | |
| // - []GitHubActionStep: Steps in order: Node.js setup, AWF (if enabled), CLI install | |
| // BuildNpmEngineInstallStepsWithAWF injects an AWF installation step after the Node.js | |
| // setup step and before the CLI install steps when the firewall is enabled. This eliminates | |
| // the duplicated AWF-injection pattern shared by Claude, Gemini, and Copilot engines. | |
| // | |
| // When npmSteps is non-empty, the expected layout is: | |
| // - npmSteps[0] – Node.js setup step | |
| // - npmSteps[1:] – CLI installation step(s) | |
| // | |
| // An empty npmSteps slice is also supported. In that case, this helper returns only the AWF | |
| // installation step when the firewall is enabled, or an empty slice when it is not. | |
| // | |
| // Parameters: | |
| // - npmSteps: Pre-computed npm installation steps (from BuildStandardNpmEngineInstallSteps, | |
| // GenerateCopilotInstallerSteps, or an empty slice when only AWF installation is needed) | |
| // - workflowData: The workflow data (used to determine firewall configuration) | |
| // | |
| // Returns: | |
| // - []GitHubActionStep: Steps in order: Node.js setup (if present), AWF (if enabled), then | |
| // remaining CLI installation steps |
…mantic homes Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
Commit pushed:
|
🏗️ Design Decision Gate — ADR RequiredThis PR makes significant changes to core business logic (165 new lines in AI has analyzed the PR diff and generated a draft ADR to help you get started: 📄 Draft ADR: What to do next
Once an ADR is linked in the PR body, this gate will re-run and verify the implementation matches the decision. Why ADRs Matter
ADRs create a searchable, permanent record of why the codebase looks the way it does. Future contributors (and your future self) will thank you. Note: This refactor extends the principle established in ADR-27325. The draft ADR acknowledges that relationship and the normative spec defines exactly which files now own which functions going forward. 📋 Michael Nygard ADR Format ReferenceAn ADR must contain these four sections to be considered complete:
All ADRs are stored in
References: §24893632435
|
Semantic analysis identified four functions living in the wrong files — each belonged in a file that already owned the surrounding logic. Pure relocation; no behavior changes.
Changes
computeIntegrityCacheKey→cache_integrity.go(fromcache.go)All three callees (
cacheIntegrityLevel,computePolicyHash,generateIntegrityAwareCacheKey) already live incache_integrity.go. This was the missing link in that chain.BuildStandardNpmEngineInstallSteps,BuildNpmEngineInstallStepsWithAWF,GetNpmBinPathSetup→nodejs.go(fromengine_helpers.go)Consolidates all npm/Node.js step generation in one place alongside
GenerateNodeJsSetupStep,GenerateNpmInstallSteps, andGenerateNpmInstallStepsWithScope. Logger reference updated fromengineHelpersLog→nodejsLog. Header comment inengine_helpers.goupdated to remove stale npm function references.safePercent+formatPercent→ newpkg/cli/audit_math_helpers.go(fromaudit_cross_run_render.goandaudit_diff.go)The compute→format pair was split across two files with neither using the other's function. Extracting them enables consistent
formatPercent(safePercent(a, b))usage across audit rendering code.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/usr/bin/gh gh repo view --json owner,name --jq .owner.login + "/" + .name x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile env g_.a 0kiaYELPw ache/go/1.25.8/x64/pkg/tool/linux_amd64/asm GOINSECURE ole GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linux_amd64/asm(http block)/usr/bin/gh gh repo view owner/repo env 4143477554 LamLkoYmy 64/pkg/tool/linux_amd64/link GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/link env 00/001/test-frontmatter-with-arr-s eJpt1zLU2 ortcfg.link GOINSECURE eader GOMODCACHE 9Ym34G_sfJyM6o-Ioz/mT-tLcfK0hMgk-extld=gcc(http block)/usr/bin/gh gh repo view owner/repo env 4143477554 GO111MODULE ache/go/1.25.8/x64/pkg/tool/linux_amd64/asm GOINSECURE gset GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linux_amd64/asm ortc�� xH4IQXLy2 64/src/internal/poll/fd.go ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile GOINSECURE 8196030/b007/ GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linurev-parse(http block)https://api.github.com/orgs/test-owner/actions/secrets/usr/bin/gh gh api /orgs/test-owner/actions/secrets --jq .secrets[].name -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE wasm.s(http block)/usr/bin/gh gh api /orgs/test-owner/actions/secrets --jq .secrets[].name -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env ath ../../../.pr**/*.json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go(http block)https://api.github.com/repos/actions/ai-inference/git/ref/tags/v1/usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq [.object.sha, .object.type] | @tsv --get-regexp ^remote\..*\.gh-resolved$ /usr/bin/git y_with_explicit_git V0s1bKvb3 64/bin/go git rev-�� --show-toplevel go /usr/bin/git ortcfg 9xL6IaqNl ache/go/1.25.8/xinstall git(http block)/usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq [.object.sha, .object.type] | @tsv --show-toplevel go /usr/bin/git LsRemoteWithRealgit LsRemoteWithRealrev-parse de_modules/.bin/--show-toplevel /usr/bin/git conf�� --get-regexp l /usr/bin/git 41170949/001 GO111MODULE 64/pkg/tool/linuinstall git(http block)https://api.github.com/repos/actions/checkout/git/ref/tags/v3/usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq [.object.sha, .object.type] | @tsv GOMODCACHE go /usr/bin/docker -json GO111MODULE 64/bin/go docker pull�� test/race-image:v1.0.0 go /usr/bin/git -json e x_amd64/compile git(http block)/usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq [.object.sha, .object.type] | @tsv /tmp/compile-all-instructions-test-3607790645/.github/workflows remote /usr/bin/gh h ../../../.pretgit GO111MODULE 64/bin/go gh api /repos/github/gh-aw/git/ref/tags/v2.0.0(http block)https://api.github.com/repos/actions/checkout/git/ref/tags/v5/usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq [.object.sha, .object.type] | @tsv ortcfg GO111MODULE ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile env 8196030/b211/_pkg_.a GO111MODULE 8196030/b211=> GOINSECURE GOMOD GOMODCACHE git(http block)/usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq [.object.sha, .object.type] | @tsv --show-toplevel -tests /usr/bin/git ility-kit.md om/segmentio/asm\n ache/go/1.25.8/x: git rev-�� --show-toplevel ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile /usr/bin/git 8196030/b146/_pkgit edcfg ache/go/1.25.8/x--show-toplevel git(http block)/usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq [.object.sha, .object.type] | @tsv --show-toplevel git /usr/bin/git . -dwarf=false /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git /tmp/gh-aw-test-git remote /usr/bin/git git(http block)https://api.github.com/repos/actions/checkout/git/ref/tags/v6/usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv ithub/workflows/architecture-guardian.md config /usr/bin/git remote.origin.urgit hyphen39550990/0rev-parse -importcfg git -C /tmp/gh-aw-test-runs/20260424-135529-33782/test--test.timeout=10m0s(http block)/usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv(http block)https://api.github.com/repos/actions/github-script/git/ref/tags/v8/usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq [.object.sha, .object.type] | @tsv --show-toplevel ache/go/1.25.8/xTest User /usr/bin/git 8196030/b208/_pkgit d2UJ/DbmGN00V4XBcommit 8196030/b208=> git rev-�� --show-toplevel git /usr/bin/git /v3.0.0 TWRl/eDvIxLANZ0crev-parse sv git(http block)/usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq [.object.sha, .object.type] | @tsv --depth 1 /usr/bin/git v1.0.0 https://github.ccommit /tmp/gh-aw-git-c-m git rev-�� --show-toplevel erignore /usr/bin/gh ript formatting git GO111MODULE /opt/hostedtoolc--show-toplevel gh(http block)https://api.github.com/repos/actions/github-script/git/ref/tags/v9/usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq [.object.sha, .object.type] | @tsv optimization)..."; \ BEFORE=$(wc -c < gh-aw.wasm); \ wasm-opt -Oz --enable-bu/tmp/go-build1676837074/b412/importcfg -c=4 -nolocalimports -importcfg /tmp/go-build2038196030/b231/importcfg -pack /home/REDACTED/go/pkg/mod/github.com/modelcontextprotocol/go-sdk@v1.5.0/internal/xcontext/xcontext.go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go(http block)/usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE x_amd64/asm GOINSECURE GOMOD GOMODCACHE x_amd64/asm(http block)/usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE y.s env -json GO111MODULE x_amd64/asm GOINSECURE GOMOD GOMODCACHE x_amd64/asm(http block)https://api.github.com/repos/actions/setup-go/git/ref/tags/v4/usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv --show-toplevel x_amd64/link /usr/bin/git -json GO111MODULE 64/pkg/tool/linu--show-toplevel /usr/bin/git remo�� -v ch/8p_7IHIf_31YR46MaExS/rs4ruDNpremote /usr/bin/infocmp g_.a GO111MODULE 64/pkg/tool/linu--show-toplevel infocmp(http block)/usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv --show-toplevel go /usr/bin/git -json GO111MODULE 64/bin/go git rev-�� --show-toplevel go /usr/bin/git -json GO111MODULE ache/go/1.25.8/x--show-toplevel git(http block)https://api.github.com/repos/actions/setup-node/git/ref/tags/v4/usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv /tmp/TestGuardPolicyMinIntegrityOnlymin-integrity_with_explicit_-p rev-parse /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet -json GO111MODULE 64/bin/go /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet -ato�� -bool -buildtags om/org2/repo2.git -errorsas -ifaceassert -nilfunc git(http block)/usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv --git-dir x_amd64/compile /opt/hostedtoolcache/node/24.14.1/x64/bin/node -json GO111MODULE 64/pkg/tool/linu--show-toplevel /opt/hostedtoolcache/node/24.14.1/x64/bin/node /tmp�� GOMODCACHE 64/pkg/tool/linufeature-branch /usr/bin/git g_.a GO111MODULE 64/pkg/tool/linu--show-toplevel git(http block)/usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv /tmp/TestHashConsistency_GoAndJavaScript2346343083/001/test-frontmatter-with-arrays.md -tests /usr/bin/git -json GO111MODULE 64/bin/go git -C s/test.md remote /usr/bin/git ath ../../../.prgit GO111MODULE 64/bin/go /usr/bin/git(http block)https://api.github.com/repos/actions/upload-artifact/git/ref/tags/v4/usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv ithub/workflows/ai-moderator.md -tests /usr/bin/git -json GO111MODULE 64/bin/go git rev-�� runs/20260424-135529-33782/test-2769600498 go /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/compile s/test.md GO111MODULE 64/bin/go /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/compile(http block)/usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv git-upload-pack '/tmp/TestParseDefaultBranchFromLsRemoteWithRealGitmain_branch3347703330/001' git-upload-pack '/tmp/TestParseDefaultBranchFromLsRemoteWithRealGitmain_branch3347703330/001' e/git -json GO111MODULE 64/bin/go e/git rev-�� --show-toplevel go /opt/hostedtoolcache/node/24.14.1/x64/bin/node yphen3052038842/git yphen3052038842/rev-parse /prettier node(http block)https://api.github.com/repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b/usr/bin/gh gh api /repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b --jq [.object.sha, .object.type] | @tsv 0fcbe58f0612ef387f83cda7 ings.cjs git -m Auth cleanup fai-V=full modules/@npmcli/run-script/lib/nfeature | cat /etc/passwd forks.js k/gh�� -u st/suppress-warnings.cjs ache/node/24.14.1/x64/bin/node e/git t t st/dist/workers//home/REDACTED/work/gh-aw/gh-aw/actions/setup/js/node_modules/vitest/suppress-warnings.cjs(http block)/usr/bin/gh gh api /repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b --jq [.object.sha, .object.type] | @tsv 427b556c..HEAD git $name) { hasDiscussionsEnabled } } user.name Test User /opt/hostedtoolc-m git show�� --verify 427b556c..HEAD ode_modules/.bin/git --bare commit _modules/.bin/gi/home/REDACTED/work/gh-aw/gh-aw/.github/workflows git(http block)/usr/bin/gh gh api /repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b --jq [.object.sha, .object.type] | @tsv 427b556c..HEAD git p/bin/git user.name Test User ules/.bin/git git show�� --verify 427b556c..HEAD n-dir/node --bare gin/token-optionapi .git git(http block)https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v0.1.2/usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v0.1.2 --jq [.object.sha, .object.type] | @tsv GOMODCACHE go /usr/bin/git le-frontmatter.mgit GO111MODULE 64/pkg/tool/linu--show-toplevel /usr/bin/git conf�� --get-regexp ^remote\..*\.gh-resolved$ /usr/bin/git g_.a GO111MODULE 64/pkg/tool/linu--show-toplevel git(http block)/usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v0.1.2 --jq [.object.sha, .object.type] | @tsv --git-dir go /usr/bin/git -json GO111MODULE 64/bin/go git init�� GOMODCACHE go /usr/bin/git -json GO111MODULE 1/x64/bin/npx git(http block)https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v1.0.0/usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv 6837074/b462/types.test /home/REDACTED/go/pkg/mod/golang.org/x/text@v0.36.0/internal/language/common.go 6837074/b462/importcfg.link -json GO111MODULE 64/bin/go VWw7VJguVlRAx/jNQYSQDdMsvnnTZDbyx2/zg1-jwF1IRoPaowner/host-repo -C ry=1 url 6837074/b462/_pkg_.a remote.origin.urgit GO111MODULE 64/bin/go git(http block)/usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv --symref l /opt/hostedtoolcache/node/24.14.1/x64/bin/node -json GO111MODULE 64/bin/go node /tmp�� /tmp/TestHashConsistency_InlinedImports2487581241/001/inlined-b.md go /opt/hostedtoolcache/node/24.14.1/x64/bin/node -json GO111MODULE 64/bin/go node(http block)https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v1.2.3/usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.2.3 --jq [.object.sha, .object.type] | @tsv ithub/workflows/api-consumption-report.md remote ow-with-reaction.lock.yml -json GO111MODULE 64/bin/go git -C /tmp/gh-aw-test-runs/20260424-135529-33782/test-4143477554 l ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet -json GO111MODULE 64/bin/go ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet(http block)/usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.2.3 --jq [.object.sha, .object.type] | @tsv for-each-ref l /usr/bin/git -json GO111MODULE 64/bin/go git -C /tmp/gh-aw-test-runs/20260424-135931-58387/test-209922132/.github/workflows(http block)https://api.github.com/repos/github/gh-aw/actions/runs/1/artifacts/usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/1/artifacts --jq .artifacts[].name GO111MODULE 64/pkg/tool/linux_amd64/compile GOINSECURE .o 64/src/internal/--show-toplevel 64/pkg/tool/linux_amd64/compile env g_.a DfcRFzBGz ache/go/1.25.8/x64/pkg/tool/linu-nilfunc GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linu-tests(http block)/usr/bin/gh gh run download 1 --dir test-logs/run-1 5.0/internal/doc.go 64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/compile env g_.a tVIFB3NxN ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linu-importcfg(http block)/usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/1/artifacts --jq .artifacts[].name GO111MODULE Name,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle GOINSECURE GOMOD GOMODCACHE go ranc�� -json GO111MODULE .cfg GOINSECURE GOMOD GOMODCACHE go(http block)https://api.github.com/repos/github/gh-aw/actions/runs/12345/artifacts/usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12345/artifacts --jq .artifacts[].name GO111MODULE 64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/compile env 903946412 LZuHOSZyr /opt/hostedtoolcache/go/1.25.8/x-lang=go1.25 GOINSECURE go-sdk/internal/rev-parse GOMODCACHE go(http block)/usr/bin/gh gh run download 12345 --dir test-logs/run-12345 _3ywvdE5S 64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/compile env 4143477554 LamLkoYmy 64/pkg/tool/linux_amd64/link GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/link(http block)/usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12345/artifacts --jq .artifacts[].name GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go ranc�� -json GO111MODULE in/node GOINSECURE GOMOD GOMODCACHE go(http block)https://api.github.com/repos/github/gh-aw/actions/runs/12346/artifacts/usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12346/artifacts --jq .artifacts[].name rotocol/go-sdk@v1.5.0/internal/mcpgodebug/mcpgodebug.go 64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/compile env 903946412 kLZAPaMu6 x_amd64/compile GOINSECURE go-sdk/internal/rev-parse GOMODCACHE x_amd64/compile(http block)/usr/bin/gh gh run download 12346 --dir test-logs/run-12346 /semver/semver.g-nolocalimports 64/pkg/tool/linu-importcfg GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linutest@example.com env g_.a k1Ubnk-ff ache/go/1.25.8/x64/pkg/tool/linu-lang=go1.25 GOINSECURE erutil GOMODCACHE ylQP4Z8/vCNYLdc7D8RXanEmFBss(http block)/usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12346/artifacts --jq .artifacts[].name GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 1/x64/bin/node GOINSECURE GOMOD GOMODCACHE go(http block)https://api.github.com/repos/github/gh-aw/actions/runs/2/artifacts/usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/2/artifacts --jq .artifacts[].name GO111MODULE 64/pkg/tool/linu-test.short=true GOINSECURE GOMOD abis 64/pkg/tool/linux_amd64/compile 64/s�� g_.a GO111MODULE ache/go/1.25.8/x64/pkg/tool/linux_amd64/asm GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linux_amd64/asm(http block)/usr/bin/gh gh run download 2 --dir test-logs/run-2 rotocol/go-sdk@v1.5.0/oauthex/auth_meta.go 64/pkg/tool/linux_amd64/compile GOINSECURE ty.o 64/src/internal/user.email 64/pkg/tool/linutest@example.com env g_.a GO111MODULE ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile GOINSECURE go-sdk/auth GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile(http block)/usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/2/artifacts --jq .artifacts[].name GO111MODULE ortcfg.link GOINSECURE GOMOD GOMODCACHE 81Rf-NbYaFwWZjWTXr/7lb-Cf5Ul7MsP_3dP6zG/PACGDQ3kremote env -json GO111MODULE 7798794fe9e70717b140e53b5296bdf9c5c7ddcd4402717c3c0c4fb5c6df56c6-d GOINSECURE GOMOD ode-gyp-bin/sh go(http block)https://api.github.com/repos/github/gh-aw/actions/runs/3/artifacts/usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/3/artifacts --jq .artifacts[].name GO111MODULE 64/pkg/tool/linux_amd64/compile GOINSECURE essage abis 64/pkg/tool/linux_amd64/compile env 1154923051/.github/workflows ke8fejfLv ache/go/1.25.8/x64/pkg/tool/linu-buildmode=exe GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linu-extld=gcc(http block)/usr/bin/gh gh run download 3 --dir test-logs/run-3 5.0/deviceauth.go 64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linuTest User env g_.a NG8R67gve ache/go/1.25.8/x64/pkg/tool/linux_amd64/asm GOINSECURE go-sdk/oauthex GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linu-buildtags(http block)/usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/3/artifacts --jq .artifacts[].name GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE .cfg GOINSECURE GOMOD GOMODCACHE go(http block)https://api.github.com/repos/github/gh-aw/actions/runs/4/artifacts/usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/4/artifacts --jq .artifacts[].name 0/internal/language/compact/compact.go 64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD abis 64/pkg/tool/linux_amd64/compile env 1154923051/.github/workflows bt7zDc9ZF ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linu-buildtags(http block)/usr/bin/gh gh run download 4 --dir test-logs/run-4 rotocol/go-sdk@v1.5.0/mcp/client.go 64/pkg/tool/linux_amd64/compile GOINSECURE 64 abis Vgol9MA/jtMHmSR1PwQ4sKWnT8ry env g_.a GO111MODULE ache/go/1.25.8/x64/pkg/tool/linu-lang=go1.25 GOINSECURE er GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linu-dwarf=false(http block)/usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/4/artifacts --jq .artifacts[].name GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE .cfg GOINSECURE GOMOD GOMODCACHE go(http block)https://api.github.com/repos/github/gh-aw/actions/runs/5/artifacts/usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/5/artifacts --jq .artifacts[].name 4/apic.go 64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linu/tmp/go-build1676837074/b113/vet.cfg env 1154923051/.github/workflows sYAOo28ie ache/go/1.25.8/x64/pkg/tool/linu-buildmode=exe GOINSECURE age/compact GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linu-test.v=true(http block)/usr/bin/gh gh run download 5 --dir test-logs/run-5 rotocol/go-sdk@v1.5.0/auth/auth.go 64/pkg/tool/linux_amd64/compile GOINSECURE(http block)/usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/5/artifacts --jq .artifacts[].name GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE .cfg GOINSECURE GOMOD GOMODCACHE go(http block)https://api.github.com/repos/github/gh-aw/actions/workflows/usr/bin/gh gh workflow list --json name,state,path 60368335/001' 60368335/001' -importcfg /tmp/go-build1676837074/b419/importcfg -pack /home/REDACTED/work/gh-aw/gh-aw/pkg/fileutil/fileutil.go /home/REDACTED/work/gh-aw/gh-aw/pkg/fileutil/tar.go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go(http block)/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 GOMOD GOMODCACHE go env -json GO111MODULE x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile(http block)/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 GOMOD GOMODCACHE x_amd64/link env g_.a Zf4ikgLhb x_amd64/link GOINSECURE GOMOD GOMODCACHE x_amd64/link(http block)https://api.github.com/repos/github/gh-aw/contents/.github/workflows/shared/reporting.md/tmp/go-build1676837074/b404/cli.test /tmp/go-build1676837074/b404/cli.test -test.testlogfile=/tmp/go-build1676837074/b404/testlog.txt -test.paniconexit0 -test.v=true -test.parallel=4 -test.timeout=10m0s -test.run=^Test -test.short=true -nolocalimports -importcfg /tmp/go-build2038196030/b191/importcfg -pack env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go(http block)/tmp/go-build2598731973/b404/cli.test /tmp/go-build2598731973/b404/cli.test -test.testlogfile=/tmp/go-build2598731973/b404/testlog.txt -test.paniconexit0 -test.v=true -test.parallel=4 -test.timeout=10m0s -test.run=^Test -test.short=true GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go(http block)https://api.github.com/repos/github/gh-aw/git/ref/tags/v0.47.4/usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v0.47.4 --jq [.object.sha, .object.type] | @tsv --show-toplevel ache/go/1.25.8/x12345 /usr/bin/git 5529-33782/test-git dE5S/nPvk3w7LQzWrev-parse ache/go/1.25.8/x--show-toplevel git rev-�� --show-toplevel ache/go/1.25.8/xowner/repo /usr/bin/git 5529-33782/test-ls stmain.go 1/x64/bin/node git(http block)/usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v0.47.4 --jq [.object.sha, .object.type] | @tsv --show-toplevel go /usr/bin/git -json GO111MODULE in/sh git rev-�� --show-toplevel go /usr/bin/git ck '**/*.cjs' '*ls GO111MODULE ache/uv/0.11.7/x/tmp/gh-aw/aw-feature-branch.patch git(http block)https://api.github.com/repos/github/gh-aw/git/ref/tags/v1.0.0/usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv aUa1j9_u_ GO111MODULE Name,createdAt,s-nilfunc GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x-tests sRem�� 8196030/b120/_pkg_.a g/stringutil/ansi.go ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile GOINSECURE b/gh-aw/pkg/type-test.run=TestAuditDiffToolErrorEnvelopeSetsIsErrorTrueHelperProcess GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linumyorg(http block)/usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE tions/setup/js/node_modules/.bin/sh GOINSECURE GOMOD GOMODCACHE go env 209922132/.github/workflows GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go(http block)https://api.github.com/repos/github/gh-aw/git/ref/tags/v1.2.3/usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.2.3 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile env 368335/001 368335/002/work x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile(http block)/usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.2.3 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go(http block)https://api.github.com/repos/github/gh-aw/git/ref/tags/v2.0.0/usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE x_amd64/asm GOINSECURE GOMOD GOMODCACHE x_amd64/asm 3683�� -json GO111MODULE x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile(http block)/usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE x_amd64/asm GOINSECURE GOMOD GOMODCACHE x_amd64/asm env -json GO111MODULE x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile(http block)/usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE x_amd64/asm GOINSECURE GOMOD GOMODCACHE x_amd64/asm 8081�� -json arm.go x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile(http block)https://api.github.com/repos/github/gh-aw/git/ref/tags/v3.0.0/usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v3.0.0 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE x_amd64/asm GOINSECURE GOMOD GOMODCACHE x_amd64/asm _bra�� -json GO111MODULE x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile(http block)/usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v3.0.0 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE Xa-aLahzaEXG env 807301965/001 807301965/002/work 809eb61c9f865207-d GOINSECURE GOMOD GOMODCACHE go(http block)https://api.github.com/repos/nonexistent/action/git/ref/tags/v999.999.999/usr/bin/gh gh api /repos/nonexistent/action/git/ref/tags/v999.999.999 --jq [.object.sha, .object.type] | @tsv g_.a om/segmentio/asm@v1.1.3/cpu/cpuid/cpuid.go ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile ortc�� ekTDoHd71 om/goccy/go-yaml@v1.19.2/context.go ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile GOINSECURE ntio/asm/internarev-parse GOMODCACHE ortcfg(http block)/usr/bin/gh gh api /repos/nonexistent/action/git/ref/tags/v999.999.999 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE tions/node_modules/.bin/sh GOINSECURE GOMOD GOMODCACHE go env 1/001/inlined-b.md GO111MODULE 1/x64/bin/bash GOINSECURE GOMOD GOMODCACHE go(http block)https://api.github.com/repos/nonexistent/repo/actions/runs/12345/usr/bin/gh gh run view 12345 --repo nonexistent/repo --json status,conclusion GOINSECURE go-sdk/internal/rev-parse GOMODCACHE 64/pkg/tool/linux_amd64/compile env g_.a GO111MODULE ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linu-buildtags(http block)/usr/bin/gh gh run view 12345 --repo nonexistent/repo --json status,conclusion GOINSECURE GOMOD GOMODCACHE go k/gh�� ExpressionCompiledOutput3884965948/001 GO111MODULE ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD erignore ache/go/1.25.8/xrepos/{owner}/{repo}/actions/runs/3/artifacts(http block)https://api.github.com/repos/owner/repo/actions/workflows/usr/bin/gh gh workflow list --json name,state,path --repo owner/repo 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD sm.s go(http block)/usr/bin/gh gh workflow list --json name,state,path --repo owner/repo 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD e_wasm.s go(http block)/usr/bin/gh gh workflow list --repo owner/repo --json name,path,state /opt/hostedtoolcache/go/1.25.8/x-lang=go1.25 GOINSECURE go-sdk/internal/rev-parse GOMODCACHE go env 00/001/test-frontmatter-with-arrays.md GO111MODULE ache/go/1.25.8/x64/pkg/tool/linu-importcfg GOINSECURE %H %ct %D(http block)https://api.github.com/repos/test-owner/test-repo/actions/secrets/usr/bin/gh gh api /repos/test-owner/test-repo/actions/secrets --jq .secrets[].name -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go(http block)/usr/bin/gh gh api /repos/test-owner/test-repo/actions/secrets --jq .secrets[].name -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env ath ../../../.pr**/*.json GO111MODULE er GOINSECURE GOMOD GOMODCACHE go(http block)https://api.github.com/repos/test/repo/usr/bin/gh gh api /repos/test/repo --jq .default_branch g_.a GO111MODULE k GOINSECURE go-sdk/mcp GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linux_amd64/asm sRem�� LqPM_8zZK om/segmentio/asm@v1.1.3/cpu/arm/arm.go x_amd64/link GOINSECURE 8196030/b036/ GOMODCACHE x_amd64/link(http block)/usr/bin/gh gh api /repos/test/repo --jq .default_branch --noprofile go /usr/bin/git -json GO111MODULE 64/bin/go git init�� --bare --initial-branch=develop /usr/bin/git -json GO111MODULE 64/bin/go git(http block)invalid.example.invalid/usr/lib/git-core/git-remote-https /usr/lib/git-core/git-remote-https origin https://invalid.example.invalid/nonexistent-repo.git git conf�� --local --get ode_modules/.bin/git 1/x64/bin/git git /git git add . git tions/setup/node_modules/.bin/git -M main bin/git git(dns block)If you need me to access, download, or install something from one of these locations, you can either: