Add missing flags to run, audit, new, and list commands for CLI consistency#20272
Add missing flags to run, audit, new, and list commands for CLI consistency#20272
Conversation
|
Security Linux apply
Get Outlook for Android<https://aka.ms/AAb9ysg>
…________________________________
From: Copilot ***@***.***>
Sent: Monday, March 9, 2026 5:24:24 PM
To: github/gh-aw ***@***.***>
Cc: Subscribed ***@***.***>
Subject: [github/gh-aw] [WIP] Fix CLI consistency issues and missing flags (PR #20272)
Thanks for asking me to work on this. I will get started on it and keep this PR's description up to date as I form a plan and make progress.
________________________________
This section details on the original issue you should resolve
<issue_title>[cli-consistency] CLI Consistency Issues and Missing Flags</issue_title>
<issue_description>### Summary
Automated CLI consistency inspection of gh-aw identified 4 real issues affecting command completeness and consistency. All commands execute successfully, but some lack flags that are available in similar commands.
Inspection Summary
* Total Commands Inspected: 32 (main commands, subcommands, and utility commands)
* Commands with Issues: 4
* Date: 2025-03-09
* Method: Executed all CLI commands with --help flags and compared outputs
Findings by Severity
High Priority (3):
* run command missing --json flag
* audit command missing --repo flag
* new command missing --engine flag
Medium Priority (1):
* list command missing --dir flag (uses --path instead)
________________________________
Detailed Findings
Issue 1: run command missing --json flag (HIGH)
Command: gh aw run
Current Behavior:
./gh-aw run --help
# Shows flags: --auto-merge-prs, --dry-run, --enable-if-needed, -e/--engine, -h/--help, --push, -F/--raw-field, --ref, --repeat, -r/--repo
# MISSING: -j/--json
Expected Behavior: Should support --json flag like other output/list commands:
* gh aw list --json ✓ works
* gh aw status --json ✓ works
* gh aw audit --json ✓ works
* gh aw run --json ✗ MISSING
Impact: Users cannot get machine-readable JSON output from the run command, unlike similar commands like audit, status, and list.
Suggested Fix: Add --json flag to run command for consistency with other output-producing commands.
Issue 2: audit command missing --repo flag (HIGH)
Command: gh aw audit (run-id)
Current Behavior:
./gh-aw audit --help
# Shows flags: -h/--help
# Does NOT show: -r/--repo
Expected Behavior: Should support --repo flag like other commands:
* gh aw list --repo owner/repo ✓ works
* gh aw status --repo owner/repo ✓ works
* gh aw logs --repo owner/repo ✓ works
* gh aw run --repo owner/repo ✓ works
* gh aw audit (run-id) --repo owner/repo ✗ MISSING
Impact: Cannot audit workflow runs from other repositories. Users must change their working directory or clone the target repository to audit workflows.
Suggested Fix: Add --repo flag to audit command for consistency with other repository-aware commands.
Issue 3: new command missing --engine flag (HIGH)
Command: gh aw new (workflow-name)
Current Behavior:
./gh-aw new --help
# Shows no --engine flag
Expected Behavior: Should support --engine flag like related commands:
* gh aw add --engine copilot ✓ works
* gh aw compile --engine claude ✓ works
* gh aw new --engine copilot ✗ MISSING
Impact: Cannot create workflow templates tailored to specific AI engines. Users must edit the generated file after creation to specify the engine, adding an extra step.
Suggested Fix: Add --engine flag to new command to match add and compile.
Issue 4: list command uses --path instead of --dir (MEDIUM)
Command: gh aw list
Current Behavior:
./gh-aw list --help
# Shows: --path string (instead of --dir)
Inconsistency:
* gh aw compile --dir custom/ ✓ uses --dir
* gh aw validate --dir custom/ ✓ uses --dir
* gh aw list --path custom/ uses --path (different!)
Impact: Users need to remember different flag names for similar functionality. The example in list help text shows --path workflows which is confusing when other commands use --dir.
Suggested Fix: Either:
1. Add --dir as an alias for --path in list command
2. Or standardize all commands to use the same flag name consistently
Note: This is less critical since --path works and is documented, but consistency matters for user experience.
________________________________
Positive Findings ✅
* ✓ All commands execute without errors
* ✓ All commands have clear, descriptive first-line descriptions
* ✓ All commands have proper Usage sections
* ✓ Examples are consistently present across commands
* ✓ Help text formatting is clean and readable
* ✓ Subcommands are properly documented (mcp, pr subcommands work well)
* ✓ Global flags (--verbose, --help) are consistently available
* ✓ Majority of flags are consistent across similar commands
________________________________
Recommendations
1. Priority 1: Add missing flags to run, audit, and new commands
2. Priority 2: Standardize --dir vs --path naming across all commands
3. Priority 3: Consider adding integration tests to catch these types of inconsistencies in the future
Generated by CLI Consistency Checker<https://github.com/github/gh-aw/actions/runs/22855861456> · ◷<https://github.com/search?q=repo%3Agithub%2Fgh-aw+is%3Aissue+%22gh-aw-workflow-call-id%3A+github%2Fgh-aw%2Fcli-consistency-checker%22&type=issues>
* expires on Mar 11, 2026, 1:39 PM UTC
Comments on the Issue (you are @copilot<https://gh.io/copilot-coding-agent-docs> in this section)
________________________________
🔒 GitHub Advanced Security automatically protects Copilot coding agent pull requests. You can protect all pull requests by enabling Advanced Security for your repositories. Learn more about Advanced Security.<https://gh.io/cca-advanced-security>
________________________________
You can view, comment on, or merge this pull request online at:
#20272
Commit Summary
* 7199a4a<7199a4a> Initial plan
File Changes
(0 files<https://github.com/github/gh-aw/pull/20272/files>)
Patch Links:
* https://github.com/github/gh-aw/pull/20272.patch
* https://github.com/github/gh-aw/pull/20272.diff
—
Reply to this email directly, view it on GitHub<#20272>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/B7SR2YFRAWANK4Z5OOCUTFT4P5ABRAVCNFSM6AAAAACWMMQ5KGVHI2DSMVQWIX3LMV43ASLTON2WKOZUGA2DQMRSHEYTENA>.
You are receiving this because you are subscribed to this thread.Message ID: ***@***.***>
|
…new, --dir to list Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
This PR improves CLI consistency by adding missing flags to several commands (run, audit, new, list) and wiring them through to the underlying implementation.
Changes:
run: add--json/-jto emit a JSON summary of workflow triggers.audit: add--repo/-rto support auditing bare numeric run IDs for a specified repo.new/list: add--engine/-efor template frontmatter injection and--dir/-dfor local workflow directory overrides (and fix local path handling).
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| pkg/cli/run_workflow_execution.go | Adds RunOptions.JSON and JSON summary emission for run. |
| pkg/cli/list_workflows_command.go | Adds --dir flag and ensures local listing respects the provided path. |
| pkg/cli/commands_test.go | Updates NewWorkflow test to match new function signature. |
| pkg/cli/commands.go | Extends NewWorkflow/template generator to optionally inject engine: frontmatter. |
| pkg/cli/audit.go | Adds --repo handling to apply owner/repo when auditing by numeric run ID. |
| cmd/gh-aw/main.go | Wires new flags into the Cobra commands (new --engine, run --json). |
Comments suppressed due to low confidence (3)
pkg/cli/run_workflow_execution.go:617
- When
opts.JSONis enabled,ExecuteWithRepeatwill print its start/repeat informational messages to stdout becauseUseStderris set to false. If a user combines--jsonwith--repeat, those messages will corrupt the JSON output stream. Consider forcing repeat messages to stderr when JSON output is requested (or disallowing--json+--repeat).
This issue also appears in the following locations of the same file:
- line 571
- line 571
// Execute workflows with optional repeat functionality
return ExecuteWithRepeat(RepeatOptions{
RepeatCount: opts.RepeatCount,
RepeatMessage: "Repeating workflow run",
ExecuteFunc: runAllWorkflows,
UseStderr: false, // Use stdout for run command
})
pkg/cli/run_workflow_execution.go:608
- The
--jsonwrapper currently builds a pre-filled results array that never populatesRunID/RunURL, and if any workflow fails it marks all entries asstatus=erroreven though earlier workflows may have successfully triggered. To make the JSON output accurate and match the documented intent, collect results during the per-workflow execution (capturing per-workflow errors and any run URL/ID you already parse inRunWorkflowOnGitHub).
// When JSON output is requested, wrap runAllWorkflows to emit a JSON summary
if opts.JSON {
runAllWorkflowsInner := runAllWorkflows
runAllWorkflows = func() error {
// Build per-workflow results
var results []WorkflowRunResult
for _, workflowName := range workflowNames {
normalizedID := normalizeWorkflowID(workflowName)
lockFileName := normalizedID + ".lock.yml"
status := "triggered"
if opts.DryRun {
status = "dry_run"
}
results = append(results, WorkflowRunResult{
Workflow: normalizedID,
LockFile: lockFileName,
Status: status,
})
}
// Execute the actual runs (text output still goes to stderr)
runErr := runAllWorkflowsInner()
if runErr != nil {
// Mark all as error when we can't distinguish which failed
for i := range results {
results[i].Status = "error"
results[i].Error = runErr.Error()
}
}
// Output JSON to stdout
jsonBytes, err := json.MarshalIndent(results, "", " ")
if err != nil {
return fmt.Errorf("failed to marshal JSON: %w", err)
}
fmt.Println(string(jsonBytes))
return runErr
}
pkg/cli/run_workflow_execution.go:609
- New
opts.JSONbehavior inRunWorkflowsOnGitHub(wrapping execution and emitting JSON to stdout) doesn't appear to have test coverage. Since this file already has unit tests for other run behaviors, it would be good to add tests that assert the stdout JSON is valid (and that stderr messaging doesn’t leak into stdout), especially for multi-workflow and error cases.
// When JSON output is requested, wrap runAllWorkflows to emit a JSON summary
if opts.JSON {
runAllWorkflowsInner := runAllWorkflows
runAllWorkflows = func() error {
// Build per-workflow results
var results []WorkflowRunResult
for _, workflowName := range workflowNames {
normalizedID := normalizeWorkflowID(workflowName)
lockFileName := normalizedID + ".lock.yml"
status := "triggered"
if opts.DryRun {
status = "dry_run"
}
results = append(results, WorkflowRunResult{
Workflow: normalizedID,
LockFile: lockFileName,
Status: status,
})
}
// Execute the actual runs (text output still goes to stderr)
runErr := runAllWorkflowsInner()
if runErr != nil {
// Mark all as error when we can't distinguish which failed
for i := range results {
results[i].Status = "error"
results[i].Error = runErr.Error()
}
}
// Output JSON to stdout
jsonBytes, err := json.MarshalIndent(results, "", " ")
if err != nil {
return fmt.Errorf("failed to marshal JSON: %w", err)
}
fmt.Println(string(jsonBytes))
return runErr
}
}
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
| if repoFlag != "" && components.Owner == "" { | ||
| parts := strings.SplitN(repoFlag, "/", 2) | ||
| if len(parts) != 2 || parts[0] == "" || parts[1] == "" { | ||
| return fmt.Errorf("invalid repository format '%s': expected 'owner/repo'", repoFlag) | ||
| } | ||
| components.Owner = parts[0] | ||
| components.Repo = parts[1] | ||
| } |
There was a problem hiding this comment.
--repo parsing uses strings.SplitN(repoFlag, "/", 2), which will silently mis-handle values containing more than one / (e.g., host/owner/repo becomes owner=host, repo=owner/repo). Since the flag is meant to be owner/repo here, validate using an exact 2-part split (or a shared slug parser) so invalid inputs error instead of producing incorrect owner/repo values.
| cmd.Flags().String("path", ".github/workflows", "Path to workflows directory in the repository") | ||
| cmd.Flags().StringP("dir", "d", "", "Workflow directory (default: .github/workflows)") | ||
|
|
There was a problem hiding this comment.
The --dir flag help says (default: .github/workflows), but the flag default is actually an empty string and the default behavior comes from --path. Consider updating the description to clarify that --dir is an override for local listing when --repo is not set (and that the default local directory is still .github/workflows).
Four commands were missing flags available in similar commands, creating an inconsistent CLI experience.
Changes
run— add--json/-jJSON booltoRunOptionsand aWorkflowRunResultstructRunWorkflowsOnGitHubwraps execution to collect and emit a JSON array of triggered workflow results to stdout when flag is setaudit— add--repo/-rowner/repowhen passing a bare numeric run ID (without a full URL)owner/repoformat and returns a clear error on malformed inputnew— add--engine/-evalidateEngine()before useengine: <value>into the generated frontmatter templatelist— add--dir/-dvalidate,fix,update, andaddcommands which all use--dirfor local workflow directory overrides--dirapplies only when--repois not set;--pathcontinues to serve remote repo path resolutiongetMarkdownWorkflowFilesto respect thepathparameter for local repos (was previously ignoring it)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/repos/actions/github-script/git/ref/tags/v8/usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha Use:.*"run"\|Use:.*"list"\|Use:.*"new"\|Use:.*"aOUTPUT d/gh-aw/main.go(http block)/usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha Use:.*"run"\|Use-errorsas /home/REDACTED/wor-ifaceassert 64/bin/bash udit" tstrap.go ache/node/24.14.-bool bash --no�� --noprofile grep x_amd64/vet udit" chestrator_stabi--norc /home/REDACTED/.lo--noprofile x_amd64/vet(http block)/usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha Use:.*"run"\|Use-errorsas /home/REDACTED/wor-ifaceassert nfig/composer/ve-nilfunc udit"(http block)https://api.github.com/repos/github/gh-aw/actions/runs/1/artifacts/usr/bin/gh gh run download 1 --dir test-logs/run-1 grep fb95de217c768eabd3877da3c5f7430e-d udit" ge_test.go /home/REDACTED/.co/tmp/gh-aw-test-runs/20260309-225132-15892/test-326203262 64/pkg/tool/linustatus --no�� --noprofile .cfg 64/pkg/tool/linux_amd64/vet udit" ow_execution.go 64/bin/grep 64/pkg/tool/linux_amd64/vet(http block)/usr/bin/gh gh run download 1 --dir test-logs/run-1 GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go(http block)https://api.github.com/repos/github/gh-aw/actions/runs/12345/artifacts/usr/bin/gh gh run download 12345 --dir test-logs/run-12345 grep 64/pkg/tool/linux_amd64/vet udit" p_scripts_test.gcommit cal/bin/grep 64/pkg/tool/linuAdd workflow --no�� --noprofile .cfg x_amd64/compile udit" _operations_testrev-parse rgo/bin/grep x_amd64/compile(http block)/usr/bin/gh gh run download 12345 --dir test-logs/run-12345 GO111MODULE x_amd64/link GOINSECURE GOMOD GOMODCACHE x_amd64/link env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE eL/mCCnHxkTI7AZ9remote.origin.url(http block)https://api.github.com/repos/github/gh-aw/actions/runs/12346/artifacts/usr/bin/gh gh run download 12346 --dir test-logs/run-12346 grep 64/pkg/tool/linux_amd64/compile udit" p_scripts_test.gmaintenance ep 64/pkg/tool/linu--auto --no�� g_.a grep x_amd64/asm udit" ow_execution.go nfig/composer/ve--git-dir x_amd64/asm(http block)/usr/bin/gh gh run download 12346 --dir test-logs/run-12346 GO111MODULE x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile env y-test.md GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go(http block)https://api.github.com/repos/github/gh-aw/actions/runs/2/artifacts/usr/bin/gh gh run download 2 --dir test-logs/run-2 grep 64/pkg/tool/linux_amd64/vet udit" ge_test.go /usr/local/.ghcu/tmp/gh-aw-test-runs/20260309-225132-15892/test-326203262 64/pkg/tool/linurev-parse --no�� --noprofile .cfg 64/pkg/tool/linux_amd64/vet udit" ow_execution.go 0/x64/bin/grep 64/pkg/tool/linux_amd64/vet(http block)/usr/bin/gh gh run download 2 --dir test-logs/run-2 GO111MODULE x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go(http block)https://api.github.com/repos/github/gh-aw/actions/runs/3/artifacts/usr/bin/gh gh run download 3 --dir test-logs/run-3 grep 64/pkg/tool/linux_amd64/vet udit" ge_test.go 64/bin/grep 64/pkg/tool/linux_amd64/vet --no�� --noprofile .cfg 64/pkg/tool/linux_amd64/vet udit" ow_execution.go de/node/bin/grep--show-toplevel 64/pkg/tool/linux_amd64/vet(http block)/usr/bin/gh gh run download 3 --dir test-logs/run-3 GO111MODULE x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go(http block)https://api.github.com/repos/github/gh-aw/actions/runs/4/artifacts/usr/bin/gh gh run download 4 --dir test-logs/run-4 grep 64/pkg/tool/linux_amd64/vet udit" ge_test.go 0/x64/bin/grep 64/pkg/tool/linux_amd64/vet --no�� --noprofile .cfg Argument udit" ow_execution.go bin/grep 64/pkg/tool/linux_amd64/vet(http block)/usr/bin/gh gh run download 4 --dir test-logs/run-4 GO111MODULE x_amd64/compile GOINSECURE GOMOD GOMODCACHE 51RFpkM/58sERvdotCvyK1taGOl6 env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go(http block)https://api.github.com/repos/github/gh-aw/actions/runs/5/artifacts/usr/bin/gh gh run download 5 --dir test-logs/run-5 grep x_amd64/compile udit" ge_test.go de/node/bin/grep--git-dir x_amd64/compile --no�� --noprofile .cfg 64/pkg/tool/linux_amd64/vet udit" ow_execution.go ache/go/1.25.0/x64/bin/grep 64/pkg/tool/linux_amd64/vet(http block)/usr/bin/gh gh run download 5 --dir test-logs/run-5 GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet env -json GO111MODULE 64/bin/go 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 d -n 10 /home/REDACTED/work/gh-aw/gh-aw/pkg/cli/trial_repository.go 64/bin/bash udit" .go bin/grep grep -l Use:.*"run"\|Use-s /deps.go x_amd64/vet udit" ge.go ache/node/24.14.--noprofile x_amd64/vet(http block)/usr/bin/gh gh workflow list --json name,state,path "prettier" --wriGOINSECURE sh 64/bin/go "prettier" --chesh GOPROXY 64/bin/go sh -c npx prettier --wGOSUMDB /bin/sh 64/bin/go GOPATH=$(go env node node 64/bin/go 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 --noprofile grep x_amd64/vet udit" st.go ache/node/24.14.--noprofile x_amd64/vet --no�� --noprofile grep x_amd64/vet udit" _test.go /home/REDACTED/.lo/tmp/gh-aw-test-runs/20260309-225132-15892/test-3504948260/.github/workflows x_amd64/vet(http block)/usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.2.3 --jq .object.sha prettier --write 64/bin/go !../../../pkg/wocp --ignore-path ../../../.prettiactions/setup-cli/install.sh go /pre�� -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 Use:.*"init"\|Us./pkg/cli/ /home/REDACTED/work/gh-aw/gh-aw/pk-j x_amd64/vet /home/REDACTED/worbash /home/REDACTED/wor--norc /home/REDACTED/wor--noprofile x_amd64/vet --no�� --noprofile /home/REDACTED/work/gh-aw/gh-aw/pkg/cli/add_command.go x_amd64/vet /home/REDACTED/worgit /home/REDACTED/wor-C /home/REDACTED/wor/tmp/gh-aw-test-runs/20260309-225132-15892/test-3504948260/.github/workflows x_amd64/vet(http block)/usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq .object.sha --noprofile grep x_amd64/vet udit" o nfig/composer/ve--noprofile x_amd64/vet --no�� --noprofile grep x_amd64/vet udit" atting_test.go n-dir/grep x_amd64/vet(http block)/usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq .object.sha --noprofile grep x_amd64/vet udit" o n-dir/grep x_amd64/vet --no�� --noprofile grep x_amd64/vet udit" atting_test.go(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 --noprofile grep x_amd64/vet udit" o ep x_amd64/vet --no�� --noprofile grep x_amd64/vet udit" atting_test.go nfig/composer/ve/tmp/gh-aw-test-runs/20260309-225132-15892/test-3504948260/.github/workflows x_amd64/vet(http block)/usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v3.0.0 --jq .object.sha prettier --write 64/bin/go !../../../pkg/wo/bin/sh --ignore-path ../../../.prettigo build -ldflags "-s -w -X main.version=7199a4a-dirty" -o gh-aw ./cmd/gh-aw go /pre�� -json GO111MODULE 64/bin/go 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 udit" mand_test.go ndor/bin/grep 64/pkg/tool/linuTest User k/gh�� --noprofile .cfg 64/pkg/tool/linux_amd64/vet udit" sign_to_agent_terev-parse ep 64/pkg/tool/linux_amd64/vet(http block)/usr/bin/gh gh run view 12345 --repo nonexistent/repo --json status,conclusion GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE n-dir/sh GOINSECURE GOMOD GOMODCACHE go(http block)https://api.github.com/repos/owner/repo/actions/workflows/usr/bin/gh gh workflow list --json name,state,path --repo owner/repo /home/REDACTED/go/bin/bash udit" est.go /home/REDACTED/.lo--noprofile bash --no�� to pkg/workflow/data/action_pins.json..." grep x_amd64/vet udit" ge.go ep x_amd64/vet(http block)/usr/bin/gh gh workflow list --json name,state,path --repo owner/repo g/cli/add_command_test.go g/cli/add_currenbash g/cli/add_descri--norc g/cli/add_gitatt--noprofile g/cli/add_integration_test.go g/cl�� g/cli/add_interactive_engine.go g/cli/add_interactive_git.go x_amd64/vet udit" ge.go nfig/composer/vendor/bin/grep x_amd64/vet(http block)/usr/bin/gh gh workflow list --repo owner/repo --json name,path,state 64/bin/go GOINSECURE GOMOD GOMODCACHE go env ck '**/*.cjs' '*GOINSECURE GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go(http block)https://api.github.com/repos/owner/repo/contents/file.md/tmp/go-build1785855504/b001/cli.test /tmp/go-build1785855504/b001/cli.test -test.testlogfile=/tmp/go-build1785855504/b001/testlog.txt -test.paniconexit0 -test.timeout=10m0s tter�� tter_hash_test.go tter_hash_test_main_test.go n-dir/bash udit" servation_test.g-atomic rep grep -l Use:.*"run"\|Use-errorsas /home/REDACTED/wor-ifaceassert x_amd64/vet udit" ctive_git.go 64/bin/grep x_amd64/vet(http block)/tmp/go-build1488363571/b383/cli.test /tmp/go-build1488363571/b383/cli.test -test.testlogfile=/tmp/go-build1488363571/b383/testlog.txt -test.paniconexit0 -test.v=true -test.parallel=4 -test.timeout=10m0s -test.run=^Test -test.short=true ath /dev/null GOPROXY ild/node_modules-json sh -c "prettier" --wriGOINSECURE sh 64/bin/go tierignore node 64/bin/go node(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 d -n 10 /home/REDACTED/work/gh-aw/gh-aw/pkg/cli/trial_repository.go ache/uv/0.10.9/x86_64/bash udit" .go de/node/bin/grep-bool grep -l Use:.*"run"\|Use-errorsas /home/REDACTED/wor-ifaceassert x_amd64/vet udit" .go bin/grep x_amd64/vet(http block)/usr/bin/gh gh api /repos/test-owner/test-repo/actions/secrets --jq .secrets[].name prettier --write 64/bin/go **/*.ts **/*.json --ignore-path node /opt�� run format:pkg-json 64/bin/go --check scripts/**/*.js /node go(http block)If you need me to access, download, or install something from one of these locations, you can either:
🔒 GitHub Advanced Security automatically protects Copilot coding agent pull requests. You can protect all pull requests by enabling Advanced Security for your repositories. Learn more about Advanced Security.