fix(workflow): emit Setup Node.js in detection job for Copilot engine#28160
fix(workflow): emit Setup Node.js in detection job for Copilot engine#28160
Conversation
… engines Agent-Logs-Url: https://github.com/github/gh-aw/sessions/f46edd9e-a521-4256-a619-2c2ff1300c7a Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
|
Great work on this fix,
|
|
✅ Smoke CI completed successfully! |
Comment Memory`````` CI lights the path\nGreen checks bloom at dawn\nQuiet bots still sing ``````Note This comment is managed by comment memory. What this comment doesIt stores persistent context for this thread in the |
There was a problem hiding this comment.
Pull request overview
Fixes Copilot threat-detection workflow compilation so the detection job reliably has Node.js available when Copilot execution is wrapped by a Node-based driver script, and ensures threat-detection driver overrides aren’t dropped.
Changes:
- Add
engineRequiresNodeDriver(engine)predicate to detect engines that wrap execution with a Node-launched driver script. - Emit
Setup Node.jsin the threat-detection job when needed, with a dedup guard aligned to duplicate-step validation. - Preserve
DriverScriptwhen rebuilding the detection-job engine config; recompile workflow lockfiles to reflect the new step.
Show a summary per file
| File | Description |
|---|---|
| pkg/workflow/agentic_engine.go | Introduces engineRequiresNodeDriver helper based on DriverProvider. |
| pkg/workflow/nodejs.go | Adds installStepsContainNodeSetup guard using extractStepName to avoid duplicate Setup Node.js. |
| pkg/workflow/threat_detection.go | Preserves DriverScript in detection config rebuild; prepends Node setup in detection job when required. |
| pkg/workflow/threat_detection_test.go | Adds tests covering Node setup emission/dedup and driver script override propagation. |
| .github/workflows/workflow-health-manager.lock.yml | Recompiled lockfile; detection job gains Setup Node.js (and manifest includes setup-node). |
| .github/workflows/workflow-generator.lock.yml | Recompiled lockfile; detection job gains Setup Node.js (and manifest includes setup-node). |
| .github/workflows/video-analyzer.lock.yml | Recompiled lockfile; detection job gains Setup Node.js (and manifest includes setup-node). |
| .github/workflows/ubuntu-image-analyzer.lock.yml | Recompiled lockfile; detection job gains Setup Node.js (and manifest includes setup-node). |
| .github/workflows/test-quality-sentinel.lock.yml | Recompiled lockfile; detection job gains Setup Node.js (and manifest includes setup-node). |
| .github/workflows/test-project-url-default.lock.yml | Recompiled lockfile; detection job gains Setup Node.js (and manifest includes setup-node). |
| .github/workflows/test-dispatcher.lock.yml | Recompiled lockfile; detection job gains Setup Node.js (and manifest includes setup-node). |
| .github/workflows/technical-doc-writer.lock.yml | Recompiled lockfile; detection job gains Setup Node.js. |
| .github/workflows/sub-issue-closer.lock.yml | Recompiled lockfile; detection job gains Setup Node.js (and manifest includes setup-node). |
| .github/workflows/smoke-workflow-call.lock.yml | Recompiled lockfile; detection job gains Setup Node.js (and manifest includes setup-node). |
| .github/workflows/smoke-test-tools.lock.yml | Recompiled lockfile; detection job gains Setup Node.js. |
| .github/workflows/security-compliance.lock.yml | Recompiled lockfile; detection job gains Setup Node.js (and manifest includes setup-node). |
| .github/workflows/research.lock.yml | Recompiled lockfile; detection job gains Setup Node.js (and manifest includes setup-node). |
| .github/workflows/repo-tree-map.lock.yml | Recompiled lockfile; detection job gains Setup Node.js (and manifest includes setup-node). |
| .github/workflows/refiner.lock.yml | Recompiled lockfile; detection job gains Setup Node.js (and manifest includes setup-node). |
| .github/workflows/pr-triage-agent.lock.yml | Recompiled lockfile; detection job gains Setup Node.js (and manifest includes setup-node). |
| .github/workflows/mcp-inspector.lock.yml | Recompiled lockfile; detection job gains Setup Node.js. |
| .github/workflows/jsweep.lock.yml | Recompiled lockfile; detection job gains Setup Node.js. |
| .github/workflows/issue-triage-agent.lock.yml | Recompiled lockfile; detection job gains Setup Node.js (and manifest includes setup-node). |
| .github/workflows/github-remote-mcp-auth-test.lock.yml | Recompiled lockfile; detection job gains Setup Node.js (and manifest includes setup-node). |
| .github/workflows/draft-pr-cleanup.lock.yml | Recompiled lockfile; detection job gains Setup Node.js (and manifest includes setup-node). |
| .github/workflows/docs-noob-tester.lock.yml | Recompiled lockfile; detection job gains Setup Node.js. |
| .github/workflows/discussion-task-miner.lock.yml | Recompiled lockfile; detection job gains Setup Node.js (and manifest includes setup-node). |
| .github/workflows/dictation-prompt.lock.yml | Recompiled lockfile; detection job gains Setup Node.js (and manifest includes setup-node). |
| .github/workflows/dev.lock.yml | Recompiled lockfile; detection job gains Setup Node.js (and manifest includes setup-node). |
| .github/workflows/dependabot-go-checker.lock.yml | Recompiled lockfile; detection job gains Setup Node.js (and manifest includes setup-node). |
| .github/workflows/dependabot-burner.lock.yml | Recompiled lockfile; detection job gains Setup Node.js (and manifest includes setup-node). |
| .github/workflows/delight.lock.yml | Recompiled lockfile; detection job gains Setup Node.js (and manifest includes setup-node). |
| .github/workflows/daily-secrets-analysis.lock.yml | Recompiled lockfile; detection job gains Setup Node.js (and manifest includes setup-node). |
| .github/workflows/daily-news.lock.yml | Recompiled lockfile; detection job gains Setup Node.js. |
| .github/workflows/daily-issues-report.lock.yml | Recompiled lockfile; detection job gains Setup Node.js. |
| .github/workflows/daily-hippo-learn.lock.yml | Recompiled lockfile; detection job gains Setup Node.js. |
| .github/workflows/daily-cli-performance.lock.yml | Recompiled lockfile; detection job gains Setup Node.js (and manifest includes setup-node). |
| .github/workflows/craft.lock.yml | Recompiled lockfile; detection job gains Setup Node.js (and manifest includes setup-node). |
| .github/workflows/copilot-token-audit.lock.yml | Recompiled lockfile; detection job gains Setup Node.js. |
| .github/workflows/copilot-pr-merged-report.lock.yml | Recompiled lockfile; detection job gains Setup Node.js (and manifest includes setup-node). |
| .github/workflows/copilot-cli-deep-research.lock.yml | Recompiled lockfile; detection job gains Setup Node.js (and manifest includes setup-node). |
| .github/workflows/contribution-check.lock.yml | Recompiled lockfile; detection job gains Setup Node.js (and manifest includes setup-node). |
| .github/workflows/cli-consistency-checker.lock.yml | Recompiled lockfile; detection job gains Setup Node.js (and manifest includes setup-node). |
| .github/workflows/ci-coach.lock.yml | Recompiled lockfile; detection job gains Setup Node.js. |
| .github/workflows/breaking-change-checker.lock.yml | Recompiled lockfile; detection job gains Setup Node.js (and manifest includes setup-node). |
| .github/workflows/auto-triage-issues.lock.yml | Recompiled lockfile; detection job gains Setup Node.js (and manifest includes setup-node). |
| .github/workflows/artifacts-summary.lock.yml | Recompiled lockfile; detection job gains Setup Node.js (and manifest includes setup-node). |
| .github/workflows/agentic-optimization-kit.lock.yml | Recompiled lockfile; detection job gains Setup Node.js. |
Copilot's findings
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 123/123 changed files
- Comments generated: 1
| detectionEngineConfig = &EngineConfig{ | ||
| ID: detectionEngineConfig.ID, | ||
| Model: detectionEngineConfig.Model, | ||
| Version: detectionEngineConfig.Version, | ||
| Env: detectionEngineConfig.Env, | ||
| Config: detectionEngineConfig.Config, | ||
| Args: detectionEngineConfig.Args, | ||
| APITarget: detectionEngineConfig.APITarget, | ||
| ID: detectionEngineConfig.ID, | ||
| Model: detectionEngineConfig.Model, | ||
| Version: detectionEngineConfig.Version, | ||
| Env: detectionEngineConfig.Env, | ||
| Config: detectionEngineConfig.Config, | ||
| Args: detectionEngineConfig.Args, | ||
| APITarget: detectionEngineConfig.APITarget, | ||
| DriverScript: detectionEngineConfig.DriverScript, | ||
| } |
There was a problem hiding this comment.
When rebuilding detectionEngineConfig, the new struct copies ID from the source config. If the caller provided an EngineConfig with overrides (e.g. Version/Model) but left ID empty, this rebuild keeps ID empty, which can cause downstream logic that relies on EngineConfig.ID to misbehave (and can diverge from the resolved engineSetting). Consider setting ID to engineSetting when the copied ID is empty (or always set ID: engineSetting here).
🧪 Test Quality Sentinel ReportTest Quality Score: 80/100✅ Excellent test quality
Test Classification DetailsView all 3 tests
Flagged Tests — Requires Reviewi️
|
… threat detection job 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 (209 new lines in AI has analyzed the PR diff and generated a draft ADR to help you get started: 📄 Draft ADR: What the draft coversThe ADR captures the key architectural decision in this PR: using interface-level detection ( It also covers:
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. 📋 Michael Nygard ADR Format ReferenceAn ADR must contain these four sections to be considered complete:
All ADRs are stored in
References: §24860557400
|
The threat-detection job compiler never ran
DetectRuntimeRequirements, so Copilot workflows gotSetup Node.jsin the main agent job but not in the detection job — causingnode: command not foundat theExecute GitHub Copilot CLIstep on any runner without ambient Node, followed byNo THREAT_DETECTION_RESULT found.Claude and Codex are unaffected because their install steps bundle
Setup Node.jsviaBuildStandardNpmEngineInstallSteps(..., includeNodeSetup=true, ...).Changes
agentic_engine.go— NewengineRequiresNodeDriver(engine)predicate: checksDriverProvider.GetDriverScriptName() != "". Interface-level rather than config-keyed so it catches Copilot's built-in default driver (not just explicitengine.driveroverrides).nodejs.go— NewinstallStepsContainNodeSetup(steps)dedup guard: uses the sameextractStepNamematcher asJobManager.ValidateDuplicateStepsso it stays aligned with what the validator flags as duplicates. Prevents double-emittingSetup Node.jsfor Claude/Codex whose install steps already include it.threat_detection.go—buildDetectionEngineExecutionStep:GenerateNodeJsSetupStep()whenengineRequiresNodeDriver && !installStepsContainNodeSetup.DriverScriptin the detection engine config rebuild (was silently dropped, causing threat-detection-specific driver overrides to be ignored).Lock files — All 200 workflows recompiled. Copilot-detection jobs gain a
Setup Node.jsblock immediately beforeInstall GitHub Copilot CLI; Claude/Codex detection jobs are unchanged.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 /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)/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 I0Qgy-tD2IC3(http block)/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 util(http block)https://api.github.com/orgs/test-owner/actions/secrets/usr/bin/gh gh api /orgs/test-owner/actions/secrets --jq .secrets[].name -w actions/setup/js/node_modules/flatted/golang/pkg/flatted/flatted.go ck.yml cmd/gh-aw/capitabash cmd/gh-aw/comman--norc cmd/gh-aw/format--noprofile ache/go/1.25.8/x64/pkg/tool/linushow(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 2080024204/.githgit show 64/pkg/tool/linu--show-toplevel git rev-�� --show-toplevel 64/pkg/tool/linux_amd64/vet /usr/bin/git k/gh-aw/gh-aw/.gnode show /usr/bin/gh 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 --show-toplevel ache/go/1.25.8/x-trimpath /tmp/go-build2940312451/b447/stringutil.test "prettier" --wrigit(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 /home/REDACTED/work/gh-aw/gh-aw show 64/pkg/tool/linux_amd64/link '**/*.ts' '**/*.git(http block)/usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq [.object.sha, .object.type] | @tsv --show-toplevel /tmp/gh-aw-merge-1331156541/new.md /usr/bin/git efaultBranchFromtr efaultBranchFrom\n .cfg git rev-�� --show-toplevel git /usr/bin/git k/gh-aw/gh-aw config 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 ithub/workflows/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 .cfg remote.origin.urgit(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 git /usr/bin/git /ref/tags/v9 config 64/pkg/tool/linu-m git rev-�� --show-toplevel 64/pkg/tool/linux_amd64/compile /usr/bin/git g_.a g/semverutil/semrev-parse 1/x64/bin/node git(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 --exclude-standard on ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet /../../.prettiergit erignore(http block)/usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq [.object.sha, .object.type] | @tsv -c=4 -nolocalimports -importcfg /tmp/go-build2940312451/b437/importcfg -pack /home/REDACTED/work/gh-aw/gh-aw/pkg/semverutil/semverutil.go /home/REDACTED/work/gh-aw/gh-aw/pkg/semverutil/semverutil_test.go -c ithub/workflows(http block)/usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq [.object.sha, .object.type] | @tsv se 4180951/b216/vet.cfg de-user-docs-review.lock.yml tierignore(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 --get remote.origin.url /opt/hostedtoolcache/node/24.14.1/x64/bin/node k/gh-aw/gh-aw/.ggit -trimpath me: String!) { --show-toplevel /opt/hostedtoolcache/node/24.14.1/x64/bin/node /tmp�� vars.MY_VAR git /usr/bin/git /home/REDACTED/worgit rev-parse 86_64/bash 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 sistency_InlinedImports1896946364/001/inlined-a.md rev-parse /usr/bin/git se 4180951/b100/vetrev-parse r: $owner, name:--show-toplevel git -C /home/REDACTED/work/gh-aw/gh-aw/.github/workflows rev-parse om/org1/repo1.git npx prettier --wgit(http block)/usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv /prettier gcc /usr/bin/git -x c function-refacto--show-toplevel /usr/bin/git remo�� -v /usr/bin/gh /usr/bin/git k/gh-aw/gh-aw :latest kflows/developer--show-toplevel 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 /tmp/gh-aw-test-runs/20260423-210454-18263/test-1915526391/.github/workflows rev-parse /usr/bin/git h3593519533/001'git h3593519533/001'rev-parse -importcfg git -C runs/20260423-210454-18263/test-3793895384 config /opt/hostedtoolcache/node/24.14.1/x64/bin/node remote.origin.urgit 4180951/b218/vetrev-parse st.lock.yml 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(http block)/usr/bin/gh gh api /repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b --jq [.object.sha, .object.type] | @tsv th .prettierigno-errorsas(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 --show-toplevel x_amd64/vet /opt/hostedtoolcache/node/24.14.1/x64/bin/node y-frontmatter.mdgit -s -w -X main.verev-parse x_amd64/vet /opt/hostedtoolcache/node/24.14.1/x64/bin/node /tmp�� needs.build.outputs.version x_amd64/vet /usr/bin/git k/gh-aw/gh-aw(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 bility_SameInputSameOutput2834018376/001/stability-test.md ache/go/1.25.8/xconfig /usr/bin/git se rk eport.lock.yml git init�� ../../../.pretti--noprofile url /opt/hostedtoolcache/node/24.14.1/x64/bin/node 01 4180951/b188/vetrev-parse yml 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 0312451/b462/types.test config 0312451/b462/importcfg.link remote.origin.urgit 4180951/b104/vetrev-parse .cfg VWw7VJguVlRAx/jNQYSQDdMsvnnTZDbyx2/zg1-jwF1IRoPasY5xy3c/9ezsDU_VWw7VJguVlRAx -C ry=1 l ache/node/24.14.1/x64/bin/node ithub/workflows 4180951/b210/vetrev-parse r: $owner, name:--show-toplevel git(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 -f ect-url-default.lock.yml -f owner=github -f git -C k/gh-aw/gh-aw show kflows/pr-nitpick-reviewer.lock.yml ./../pkg/workflogit(http block)/usr/bin/gh gh run download 1 --dir test-logs/run-1 erena-mcp-server:latest 64/pkg/tool/linux_amd64/vet remote.origin.urgit(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 erena-mcp-server:latest /usr/bin/git remote.origin.urgit(http block)/usr/bin/gh gh run download 12345 --dir test-logs/run-12345 :latest /usr/bin/git -f owner=github -f git -C /home/REDACTED/work/gh-aw/gh-aw/.g-p config er: String!, $name: String!) { -lang=go1.25 remote.origin.urgit(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 rev-parse 86_64/bash json' --ignore-pgit(http block)/usr/bin/gh gh run download 12346 --dir test-logs/run-12346 rev-parse ndor/bin/bash json' --ignore-pgit(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 show 64/pkg/tool/linux_amd64/compile(http block)/usr/bin/gh gh run download 2 --dir test-logs/run-2 :latest 64/pkg/tool/linux_amd64/vet remote.origin.urnode(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 config 64/pkg/tool/linux_amd64/compile l(http block)/usr/bin/gh gh run download 3 --dir test-logs/run-3 show 64/pkg/tool/linux_amd64/compile on' --ignore-patgit(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 rev-parse 64/pkg/tool/linux_amd64/asm(http block)/usr/bin/gh gh run download 4 --dir test-logs/run-4 rev-parse 64/pkg/tool/linux_amd64/vet on' --ignore-patgit(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 show 64/pkg/tool/linux_amd64/cgo(http block)/usr/bin/gh gh run download 5 --dir test-logs/run-5 rev-parse 64/pkg/tool/linux_amd64/vet on' --ignore-patgit(http block)https://api.github.com/repos/github/gh-aw/actions/workflows/usr/bin/gh gh workflow list --json name,state,path 79414281/001' 79414281/001' .cfg(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 --ignore-path ../../../.pretti--pack_header=2,3 ache/go/1.25.8/x-q -uns�� ithub/workflows /tmp/go-build117-nolocalimports repository(owne-importcfg(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(http block)https://api.github.com/repos/github/gh-aw/contents/.github/workflows/shared/reporting.md/tmp/go-build2940312451/b404/cli.test /tmp/go-build2940312451/b404/cli.test -test.testlogfile=/tmp/go-build2940312451/b404/testlog.txt -test.paniconexit0 -test.v=true -test.parallel=4 -test.timeout=10m0s -test.run=^Test -test.short=true(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 /usr/bin/gh /usr/bin/git 0454-18263/test-git -f ash git rev-�� --show-toplevel git /usr/bin/git 0454-18263/test-ls show /usr/bin/git 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 /home/REDACTED/work/gh-aw/gh-aw show k ../pkg/workflow/git(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 ithub/workflows(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 ithub/workflows(http block)/usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq [.object.sha, .object.type] | @tsv --write ../../../**/*.json /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linu-f --ignore-path lang/pkg/flattedinit(http block)/usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq [.object.sha, .object.type] | @tsv --write ../../../**/*.jsgithub.com/github/gh-aw/pkg/logger repository(owne-lang=go1.25 --ignore-path ../../../.pretti-C(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 !../../../pkg/workflow/js/**/*.json ache/go/1.25.8/x64/pkg/tool/linux_amd64/asm ../../../.prettigh(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 k/gh-aw/gh-aw/.github/workflows(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(http block)https://api.github.com/repos/owner/repo/actions/workflows/usr/bin/gh gh workflow list --json name,state,path --repo owner/repo .cfg(http block)/usr/bin/gh gh workflow list --json name,state,path --repo owner/repo ml(http block)/usr/bin/gh gh workflow list --repo owner/repo --json name,path,state /usr/bin/gh(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 se 4180951/b229/vet.cfg .cfg(http block)https://api.github.com/repos/test/repo/usr/bin/gh gh api /repos/test/repo --jq .default_branch 1203729943 .cfg(http block)If you need me to access, download, or install something from one of these locations, you can either: