fix: add regression tests for protected-files object form compilation#28341
fix: add regression tests for protected-files object form compilation#28341
Conversation
This comment has been minimized.
This comment has been minimized.
|
Hey A few things to address before this is ready for review:
If you'd like a hand finishing this up, assign the following prompt to your coding agent:
|
Adds regression tests that verify the protected-files field on
create-pull-request and push-to-pull-request-branch accepts the
documented object form {policy, exclude}.
The bug was that users got "expected string or null, got object" when
using the documented object form. The JSON schema already has the fix
(oneOf: [string, object]) but there were no tests to prevent regression.
- TestValidateMainWorkflowFrontmatterWithSchemaAndLocation_ProtectedFilesObjectForm:
validates schema acceptance of the object form for both handlers
- TestMainWorkflowSchema_ProtectedFilesObjectFormStructure: verifies the
schema uses oneOf [string, object] (not [string, null]) for protected-files
Agent-Logs-Url: https://github.com/github/gh-aw/sessions/6f7df4d0-923a-41dc-94a2-1e27f4f1b7e1
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Adds regression coverage to ensure the protected-files field in safe-outputs continues to accept the documented object form ({policy, exclude}) for both create-pull-request and push-to-pull-request-branch, preventing the prior schema regression where only string|null was allowed.
Changes:
- Add end-to-end schema validation tests covering
protected-filesstring form and object form variants, including rejection of unknown object fields. - Add structural assertions over
schemas/main_workflow_schema.jsonto ensureprotected-filesisoneOf: [string, object](and not[string, null]) and that the object branch haspolicy,exclude, andadditionalProperties: false.
Show a summary per file
| File | Description |
|---|---|
| pkg/parser/schema_test.go | Adds regression tests validating protected-files object form support and schema structure guarantees. |
Copilot's findings
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 1/1 changed files
- Comments generated: 0
🧪 Test Quality Sentinel ReportTest Quality Score: 80/100✅ Excellent
Test Classification Details
Test Analysis✅
|
| Component | Points Earned | Notes |
|---|---|---|
| Behavioral Coverage (40 pts) | 40 | 2/2 tests are behavioral contracts |
| Error/Edge Case Coverage (30 pts) | 30 | Both tests include error paths |
| Low Duplication (20 pts) | 20 | No duplicate clusters detected |
| Proportional Growth (10 pts) | 0 | 242 test lines added, 0 production lines (test-only PR) |
i️ The 10-point inflation penalty is expected for a pure regression-test PR. The production fix lives in the JSON schema file (
schemas/main_workflow_schema.json), which is not a.gofile tracked by this metric.
Language Support
Tests analyzed:
- 🐹 Go (
*_test.go): 2 tests — unit (//go:build !integration) - 🟨 JavaScript (
*.test.cjs,*.test.js): 0 tests
Verdict
✅ Check passed. 0% of new tests are implementation tests (threshold: 30%). Both new tests enforce clear behavioral contracts and include error/edge-case coverage. Build tags are present and no mock libraries were used.
📖 Understanding Test Classifications
Design Tests (High Value) verify what the system does:
- Assert on observable outputs, return values, or state changes
- Cover error paths and boundary conditions
- Would catch a behavioral regression if deleted
- Remain valid even after internal refactoring
Implementation Tests (Low Value) verify how the system does it:
- Assert on internal function calls (mocking internals)
- Only test the happy path with typical inputs
- Break during legitimate refactoring even when behavior is correct
- Give false assurance: they pass even when the system is wrong
Goal: Shift toward tests that describe the system's behavioral contract — the promises it makes to its users and collaborators.
References: §24913089154
🧪 Test quality analysis by Test Quality Sentinel · ● 643.5K · ◷
The
protected-filesfield oncreate-pull-requestandpush-to-pull-request-branchrejects the documented object form{policy, exclude}withexpected string or null, got object. The schema hadoneOf: [string, null]where it should beoneOf: [string, object]— the fix was already applied to the schema, but there were no tests to prevent regression.Changes
pkg/parser/schema_test.go— Two new regression tests:TestValidateMainWorkflowFrontmatterWithSchemaAndLocation_ProtectedFilesObjectForm: end-to-end schema validation covering all object-form variants (policy+exclude, exclude-only, policy-only) and confirming unknown fields are still rejectedTestMainWorkflowSchema_ProtectedFilesObjectFormStructure: structural assertion that the schema definesprotected-filesasoneOf: [string, object](not[string, null]) for both handlers, withpolicy,exclude, andadditionalProperties: falsein the object branchWarning
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 /home/REDACTED/go/--limit(http block)/usr/bin/gh gh repo view owner/repo /tmp�� snXfTi5m6PTb91cEaXfS/snXfTi5m6PTb91cEaXfS -goversion ache/node/24.14.1/x64/bin/node -c=4 -nolocalimports -importcfg ache/node/24.14.1/x64/bin/node 8622�� uts.version rev-parse /usr/bin/git with-tools.md l d3ceeb86c66903d8--show-toplevel git(http block)/usr/bin/gh gh repo view owner/repo pack�� --all-progress-implied --revs ache/node/24.14.1/x64/bin/node --thin --delta-base-offrev-parse -q ache/node/24.14.1/x64/bin/node 9036�� uts.branch rev-parse /usr/bin/git ion_sha_validatigit ivation_checkoutrev-parse /usr/bin/head git(http block)https://api.github.com/orgs/test-owner/actions/secrets/usr/bin/gh gh api /orgs/test-owner/actions/secrets --jq .secrets[].name -bool -buildtags bash -errorsas -ifaceassert -nilfunc bash --no�� --noprofile -tests ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile(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 -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go(http block)/usr/bin/gh gh api /orgs/test-owner/actions/secrets --jq .secrets[].name -json GO111MODULE(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 --show-toplevel git /usr/bin/git --show-toplevel x_amd64/compile 86_64/bash git rev-�� --show-toplevel git /usr/bin/git --show-toplevel 0Ji0fapdNGIB /usr/bin/git git(http block)/usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq [.object.sha, .object.type] | @tsv --paginate repos/{owner}/{repo}/actions/runs/12345/artifacts /usr/bin/git .artifacts[].namgit GO111MODULE 64/pkg/tool/linu--show-toplevel git rev-�� --show-toplevel 64/pkg/tool/linutest@example.com /usr/bin/git _.a GO111MODULE 64/pkg/tool/linuinstall 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 -json GO111MODULE ache/go/1.25.8/x--show-toplevel git rev-�� --show-toplevel go /usr/bin/git 41079243/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 /tmp/gh-aw-test-runs/20260424-211553-16374/test-1279684422 remote /usr/bin/git 01 -lname g_.a git rev-�� --show-toplevel hxn81x0jB6z4f/gKinitial commit /usr/bin/infocmp runs/20260424-21git(http block)/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/architecture-guardian.md config /usr/bin/git remote.origin.urgit GO111MODULE 64/bin/go git rev-�� --show-toplevel go /usr/lib/git-core/git -json GO111MODULE x_amd64/asm /usr/lib/git-core/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-1842469362 show /usr/bin/infocmp -json GO111MODULE 64/bin/go infocmp -1 xterm-color go clusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle -json GO111MODULE 64/bin/go infocmp(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 77/001/test-frontmatter-with-nested-objects.md x_amd64/compile /usr/bin/git get --local 64/pkg/tool/linu--show-toplevel git rev-�� ithub/workflows 64/pkg/tool/linux_amd64/vet x_amd64/compile --local fg 64/pkg/tool/linu--show-toplevel x_amd64/compile(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 sRemoteWithRealGtr sRemoteWithRealG\n ache/go/1.25.8/x: git rev-�� --show-toplevel git /usr/bin/git 1553-16374/test-git 64/pkg/tool/linurev-parse bash git(http block)/usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq [.object.sha, .object.type] | @tsv --show-toplevel VWw7VJguVlRAx/jNQYSQDdMsvnnTZDbyx2/zg1-jwF1IRoPasY5xy3c/9ezsDU_Vremote.origin.url /usr/bin/git ry=1 --initial-branchrev-parse che/go-build/e9/--show-toplevel 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 --get remote.origin.url /usr/bin/git 1257-14497/test-git -buildtags ache/go/1.25.8/x--show-toplevel git init�� -nilfunc bash /usr/bin/git ted-objects.md |TestCompile|Tesrev-parse /usr/local/sbin/--show-toplevel git(http block)/usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv --show-toplevel -tests ache/node/24.14.1/x64/bin/node 80553310/001' 80553310/001' 64/bin/go git t-15�� k/gh-aw/gh-aw/.github/workflows/archie.md go ache/node/24.14.1/x64/bin/node -json GO111MODULE 64/bin/go ache/node/24.14.1/x64/bin/node(http block)/usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv :latest -tests /usr/bin/git -json GO111MODULE 64/bin/go git rev-�� runs/20260424-212505-66928/test-3736896344 go /usr/bin/git s/test.md GO111MODULE 64/bin/go git(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 --get-regexp ^remote\..*\.gh-resolved$ /usr/bin/git Onlyrepos_only_wgit .go ache/go/1.25.8/x-m git rev-�� --show-toplevel ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet /usr/bin/git 1553-16374/test-git ache/go/1.25.8/xrev-parse xpires.lock.yml git(http block)/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/x64/pkg/tool/linuupstream /usr/bin/git Onlyrepos_only_wgit g/gitutil/gituticommit ache/go/1.25.8/x-m git rev-�� --show-toplevel ache/go/1.25.8/xsh /usr/bin/git 2116-42434/test-git 7Ps3/Xuna8G_bMUXrev-parse xpires.lock.yml git(http block)/usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq [.object.sha, .object.type] | @tsv --show-toplevel go /usr/bin/git Imports17564350/git GO111MODULE 1/x64/bin/node git rev-�� --show-toplevel go /usr/bin/git ithub/workflows/git GO111MODULE e/git-receive-pa--show-toplevel 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 --get-regexp --global x_amd64/vet(http block)/usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq [.object.sha, .object.type] | @tsv get --local x_amd64/vet http.https://gitbash(http block)/usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq [.object.sha, .object.type] | @tsv get --local x_amd64/vet credential.helpebash(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 import sys, json, re line = sys-s(http block)/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 --get remote.origin.urrev-parse 86_64/bash git rev-�� --show-toplevel KD/D3ANYFpeOG4pM6cK_-fl/UrWG3i_hremote /usr/bin/git(http block)/usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv --git-dir x_amd64/compile /usr/bin/git -json GO111MODULE 64/pkg/tool/linu--show-toplevel git rev-�� --show-toplevel 64/pkg/tool/linuconfig /usr/bin/git -json GO111MODULE 64/pkg/tool/linu--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 GH_AW_SAFE_OUTPUTS_HANDLER_CONFI-p(http block)/usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv image:v1.0.0 /opt/hostedtoolcREDACTED /usr/bin/git 1257-14497/test-git rk ache/go/1.25.8/x--show-toplevel git remo�� -nilfunc ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet /usr/bin/infocmp --noprofile -tests /usr/sbin/iptablxterm-color infocmp(http block)/usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv --show-toplevel x_amd64/compile /usr/bin/git testing.testBinagit -extld=gcc /tmp/go-build262--show-toplevel git rev-�� --show-toplevel /tmp/go-build2627883682/b449/ttyrev-parse /usr/bin/git -test.paniconexigit -test.timeout=10rev-parse 64/bin/bash 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 se 471449/b111/vet.cfg /usr/bin/git 1257-14497/test-infocmp -buildtags 64/pkg/tool/linuxterm-color git -C /tmp/gh-aw-test-runs/20260424-211553-16374/test-3500116908/.github/workflows rev-parse /usr/bin/git kflow.test -importcfg ortcfg.link git(http block)/usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv . l /usr/bin/git go1.25.8 -c=4 -nolocalimports git -C 38277157/001(http block)/usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv /tmp/TestParseDefaultBranchFromLtest-logs/run-12345 /tmp/TestParseDefaultBranchFromLsRemoteWithRealGitmain_branch4263212968/002/work /usr/bin/git -json GO111MODULE 64/bin/go git -C /tmp/gh-aw-test-runs/20260424-212505-66928/test-4254974971/.github/workflows remote /usr/bin/git ted-objects.md GO111MODULE 64/bin/go git(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 user.email ings.cjs odules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin/git cjs st/suppress-warn-o 64/bin/node forks.js rev-�� HEAD st/suppress-warnmain _modules/.bin/gi-lang=go1.25 HEAD -aw/aw-test-owne--experimental-import-meta-resolve k/gh-aw/gh-aw/ac--require 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 . tions/setup/js/node_modules/vite--stdout $name) { hasDiscussionsEnabled } } d git tions/setup/node-m git init�� -q(http block)/usr/bin/gh gh api /repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b --jq [.object.sha, .object.type] | @tsv . tions/setup/js/node_modules/vite--stdout bin/git HEAD l ode-gyp-bin/git BjxtYz4/EnQ5uU4Y/home/REDACTED/work/gh-aw/gh-aw/actions/setup/js/node_modules/vitest/suppress-warnings.cjs init�� -q st/suppress-warn--conditions k/node_modules/.development est-change ode_modules/viteapi n-dir/git st/dist/workers/-f(http block)https://api.github.com/repos/github/gh-aw/usr/bin/gh gh api /repos/github/gh-aw --jq .default_branch user.email tions/setup/js/node_modules/viteowner=github 64/pkg/tool/linux_amd64/link odules/npm/node_git git bin/git 64/pkg/tool/linuconfig bran�� -M t-patch-utils-1ERYvY/.diffsize.tmp repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } --is-ancestor k/gh-aw/gh-aw/ac-C es/.bin/git git(http block)/usr/bin/gh gh api /repos/github/gh-aw --jq .default_branch ithub/workflows k/gh-aw/gh-aw/actions/setup/js/node_modules/vitest/suppress-warnings.cjs /opt/hostedtoolcache/node/24.14.1/x64/bin/node r/work/gh-aw/gh-git /home/REDACTED/wor-C run-script/lib/n/home/REDACTED/work/gh-aw/gh-aw k/gh-aw/gh-aw/acshow 0669�� ithub/workflows test-67Syum/error.go /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/link node --conditions ed } } /opt/hostedtoolcconfig(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 66087060/001 x_amd64/compile /usr/bin/git ub/workflows 7883682/b449/_terev-parse /opt/hostedtoolc--show-toplevel git init�� x_amd64/vet /opt/hostedtoolcremote /usr/bin/git mLsRemoteWithReagit mLsRemoteWithRearev-parse /usr/bin/git 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 user.name Test User /opt/hostedtoolcache/node/24.14.1/x64/bin/node ub/workflows GO111MODULE 64/pkg/tool/linu--show-toplevel /opt/hostedtoolcache/node/24.14.1/x64/bin/node /tmp�� No expressions here 64/pkg/tool/linux_amd64/compile /usr/bin/git _.a poll/fd.go 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 --show-toplevel go /usr/bin/git th .prettierignogit GO111MODULE 64/bin/go git rev-�� --show-toplevel go /usr/bin/git 14/001/test-frongit GO111MODULE 86_64/sh 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 git-upload-pack '/tmp/TestParseDefaultBranchFromLsRemoteWithRealGitbranch_with_hyphen1337309915/git l(http block)/usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv . l /usr/bin/git go1.25.8 -c=4 -nolocalimports git -C s/test.md rev-parse /opt/hostedtoolcache/node/24.14.1/x64/bin/node -json GO111MODULE 64/bin/go node(http block)/usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv for-each-ref --format=%(objectname) /usr/bin/git -json GO111MODULE 64/bin/go git rev-�� --show-toplevel go /usr/bin/git yphen3374541092/git yphen3374541092/rev-parse 64/bin/go git(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 ry=1 --initial-branch=my-default che/go-build/c8/c8d057fd589ad315fef2cfe920f76d987707c59f4b2d2a4d81721b3c99f8cec0-d on_test.go _test.go .cfg /opt/hostedtoolcconfig -o /tmp/go-build657remote.origin.url -importcfg /usr/bin/git -s -w -buildmode=exe git(http block)/usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.2.3 --jq [.object.sha, .object.type] | @tsv git-upload-pack '/tmp/TestParseDefaultBranchFromLsRemoteWithRealGitbranch_with_hyphen908054317/0git l /usr/bin/git go1.25.8 -c=4 -nolocalimports git -C runs/20260424-212116-42434/test-3840616699 s/12345/artifacts /usr/bin/git -json GO111MODULE 64/bin/go git(http block)/usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.2.3 --jq [.object.sha, .object.type] | @tsv git-upload-pack '/tmp/TestParseDefaultBranchFromLsRemoteWithRealGitmain_branch4263212968/001'(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 x_amd64/vet At,event,headBranch,headSha,displayTitle se 87111/b094/vet.crev-parse ache/go/1.25.8/x--show-toplevel e/git estP�� --show-toplevel tname) /opt/pipx_bin/bash se 87111/b115/vet.crev-parse /opt/hostedtoolc--show-toplevel bash(http block)/usr/bin/gh gh run download 1 --dir test-logs/run-1 ache/go/1.25.8/x64/pkg/tool/linu-extld=gcc(http block)/usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/1/artifacts --jq .artifacts[].name rotocol/go-sdk@v1.5.0/internal/xcontext/xcontext.go 64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/compile env _.a dtNyzpRaw ache/go/1.25.8/x64/pkg/tool/linux_amd64/asm GOINSECURE v3 GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linuTest User(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 ache/go/1.25.8/x64/pkg/tool/linuconfig /usr/bin/git se 87111/b051/vet.crev-parse fg git rev-�� FieldEnforcement1723093207/001 ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/link se 87111/b214/vet.crev-parse 64/bin/bash /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/link(http block)/usr/bin/gh gh run download 12345 --dir test-logs/run-12345 xf9qL--/YcBrNqCWBFU4hJRv0Iid /usr/bin/git se 87111/b140/vet.crev-parse utputs\|TestProt--show-toplevel git rev-�� '/tmp/TestParseDefaultBranchFromLsRemoteWithRealGitmain_branch15--repo '/tmp/TestParseDefaultBranchFromLsRemoteWithRealGitmain_branch15owner/repo /snap/bin/bash ithub/workflows 87111/b240/vet.crev-parse x_amd64/compile bash(http block)/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/linutest@example.com env _.a GO111MODULE 64/pkg/tool/linux_amd64/vet GOINSECURE .o 64/src/runtime/i--git-dir 64/pkg/tool/linux_amd64/vet(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 ache/go/1.25.8/x64/pkg/tool/linuremote ache/go/1.25.8/x64/pkg/tool/linux_amd64/link se stProtectedFilesrev-parse fg ache/go/1.25.8/x64/pkg/tool/linux_amd64/link rev-�� FieldEnforcement1723093207/001 ache/go/1.25.8/x64/pkg/tool/linuremote.origin.url 1/x64/bin/node se 87111/b215/vet.crev-parse 1/x64/bin/bash jX-1PWzdY5nrQ/FuQBat1TqtOugs5kA4FK/4S-KjLZhAbqjP68Vh2dK/cACoDFtjrev-parse(http block)/usr/bin/gh gh run download 12346 --dir test-logs/run-12346 NKQxPfr/feDwSjXStImIOC-NY5wN /usr/bin/git se 87111/b066/vet.crev-parse 64/bin/bash git rev-�� /v2.0.0 ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet sv se 87111/b237/vet.crev-parse x_amd64/compile bash(http block)/usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12346/artifacts --jq .artifacts[].name GO111MODULE 64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linuTest User env 83/001/test-complex-frontmatter-with-tools.md GO111MODULE 64/pkg/tool/linux_amd64/vet GOINSECURE wasm.o 64/src/runtime/a--show-toplevel 64/pkg/tool/linux_amd64/vet(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 x_amd64/compile 64/pkg/tool/linux_amd64/vet se 87111/b098/vet.crev-parse ache/go/1.25.8/x--show-toplevel 64/pkg/tool/linux_amd64/vet faul�� --show-toplevel cfg 1/x64/bin/node 2722195729 87111/b176/vet.crev-parse x_amd64/link 1/x64/bin/node(http block)/usr/bin/gh gh run download 2 --dir test-logs/run-2 ache/go/1.25.8/x64/pkg/tool/linu-goversion e/git 4202057154/.githgit log ner_pin_test.go e/git rev-�� mplied tion_test.go 1/x64/bin/node(http block)/usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/2/artifacts --jq .artifacts[].name emplate/v3@v3.0.2/compile.go 64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/compile env _.a dAR9m3zY_ ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linutest@example.com(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 Vgol9MA/jtMHmSR1PwQ4sKWnT8ry e/git se 87111/b088/vet.crev-parse ache/go/1.25.8/x--show-toplevel e/git rev-�� mplied 7I/p67f43WHEJUTs4-oiIa1/9KqfPfOC-buildtags /opt/hostedtoolcache/node/24.14.1/x64/bin/bash 2722195729 set ndor/bin/bash bash(http block)/usr/bin/gh gh run download 3 --dir test-logs/run-3 ache/go/1.25.8/x64/pkg/tool/linuremote e/git-upload-pack m0s 87111/b119/vet.crev-parse(http block)/usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/3/artifacts --jq .artifacts[].name _56Gjvce9 64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/compile env _.a dq87ptaK6 ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile GOINSECURE go-sdk/jsonrpc GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile(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 x_amd64/compile e/git se 87111/b092/vet.crev-parse ache/go/1.25.8/x--show-toplevel e/git rev-�� 3 ache/go/1.25.8/x64/pkg/tool/linu-buildtags /snap/bin/bash --noprofile(http block)/usr/bin/gh gh run download 4 --dir test-logs/run-4 ache/go/1.25.8/x/home/REDACTED/work/gh-aw/gh-aw/pkg/typeutil/convert_test.go 42bbe21eaa7e184625f7589c84fea4478daa1d752bac088089e7477cfb11b2c7-d 3520556282/.githgit 87111/b179/vet.crev-parse ache/go/1.25.8/x--show-toplevel git rev-�� --show-toplevel ache/go/1.25.8/x64/pkg/tool/linu-trimpath 471449/b392/vet.cfg 3872046316/001(http block)/usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/4/artifacts --jq .artifacts[].name SUy_HbpQE 64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/compile env _.a InX8DV7o_ 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)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 x_amd64/link e/git(http block)/usr/bin/gh gh run download 5 --dir test-logs/run-5 ache/go/1.25.8/x64/pkg/tool/linurev-parse sv 4202057154/.githgit 87111/b120/vet.crev-parse ner_pin_test.go e/git api /repos/actions/github-script/git/ref/tags/v9 --jq 1/x64/bin/node =receive(http block)/usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/5/artifacts --jq .artifacts[].name 0/internal/tag/tag.go At,event,headBranch,headSha,displayTitle GOINSECURE GOMOD bis 64/pkg/tool/linuTest User env 3624355507/.github/workflows GO111MODULE ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile GOINSECURE age GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile(http block)https://api.github.com/repos/github/gh-aw/actions/workflows/usr/bin/gh gh workflow list --json name,state,path 61 -buildtags(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(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 pkg/parser/schemrev-parse x_amd64/compile git t-ha�� SameOutput2358776405/001/stability-test.md x_amd64/compile 1/x64/bin/node (.*\)$/\2/p(http block)https://api.github.com/repos/github/gh-aw/contents/.github/workflows/shared/reporting.md/tmp/go-build657471449/b404/cli.test /tmp/go-build657471449/b404/cli.test -test.testlogfile=/tmp/go-build657471449/b404/testlog.txt -test.paniconexit0 -test.v=true -test.parallel=4 -test.timeout=10m0s -test.run=^Test -test.short=true(http block)/tmp/go-build1670911947/b404/cli.test /tmp/go-build1670911947/b404/cli.test -test.testlogfile=/tmp/go-build1670911947/b404/testlog.txt -test.paniconexit0 -test.v=true -test.parallel=4 -test.timeout=10m0s -test.run=^Test -test.short=true -nolocalimports -importcfg /tmp/go-build374259468/b181/importcfg -pack env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go(http block)/tmp/go-build3650652408/b404/cli.test /tmp/go-build3650652408/b404/cli.test -test.testlogfile=/tmp/go-build3650652408/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 integration_test.go /usr/bin/git on_test.go _test.go cfg git rev-�� WorkflowFiles_TransitiveImports2105692076/001 git /usr/bin/git CompiledOutput34ls 64/pkg/tool/linu-lh /usr/bin/git /usr/bin/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 ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile /usr/bin/git sRemoteWithRealGgit sRemoteWithRealGrev-parse ache/go/1.25.8/x--show-toplevel git rev-�� --show-toplevel ache/go/1.25.8/x^remote\..*\.gh-resolved$ /usr/bin/git 3840616699 137W/naKzboKCQcy-lh ache/go/1.25.8/x/tmp/gh-aw/aw-feature-branch.patch git(http block)/usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v0.47.4 --jq [.object.sha, .object.type] | @tsv ref/tags/v1.0.0 go sv -json GO111MODULE ache/node/24.14.--show-toplevel git rev-�� --show-toplevel go /usr/bin/git -json GO111MODULE /opt/hostedtoolc/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 le-frontmatter.md(http block)/usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv _.a @v1.1.3/cpu/arm64/arm64.go 64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/compile env 83/001/test-empty-frontmatter.md GO111MODULE 64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD bis 64/pkg/tool/linux_amd64/compile(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 64/bin/go GOINSECURE GOMOD GOMODCACHE go env LsRemoteWithRealGitbranch_with_hyphen3374541092/001' LsRemoteWithRealGitbranch_with_hyphen3374541092/001' n-dir/sh 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 7883682/b425/repoutil.test stmain.go ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet(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 gh-aw.wasm ./cmremote.origin.url GO111MODULE 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 ithub-script/git/ref/tags/v9(http block)/usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq [.object.sha, .object.type] | @tsv g/timeutil/spec_test.go(http block)/usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq [.object.sha, .object.type] | @tsv 500(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 --noprofile(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 go 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/v3.0.0 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE ode_modules/.bin/node 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 /tmp config 64ca36bd1cc31b773c03c6fbda634aca-d remote.origin.urgit(http block)/usr/bin/gh gh api /repos/nonexistent/action/git/ref/tags/v999.999.999 --jq [.object.sha, .object.type] | @tsv -json t.go 64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE klg-Z-L/GrfD7RF01uelJB2BqWrF env edOutput1940834363/001 GO111MODULE 7707c59f4b2d2a4d81721b3c99f8cec0-d GOINSECURE o 64/src/sync/atom--show-toplevel go(http block)/usr/bin/gh gh api /repos/nonexistent/action/git/ref/tags/v999.999.999 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env 9377/001/stability-test.md GO111MODULE ache/go/1.25.8/x64/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 GH_AW_SAFE_OUTPUgit(http block)/usr/bin/gh gh run view 12345 --repo nonexistent/repo --json status,conclusion GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linutest@example.com env rtcfg _wTXDDAYc 64/pkg/tool/linux_amd64/vet GOINSECURE 259468/b021/ GOMODCACHE 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(http block)https://api.github.com/repos/owner/repo/actions/workflows/usr/bin/gh gh workflow list --json name,state,path --repo owner/repo sv -errorsas -ifaceassert -nilfunc /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/asm -V=f�� -stringintconv -tests /usr/bin/cat(http block)/usr/bin/gh gh workflow list --json name,state,path --repo owner/repo sh -errorsas -ifaceassert -nilfunc /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/compile -o /tmp/go-build2060329315/b357/_pkg_.a -trimpath /usr/bin/git -p github.com/githurev-parse -lang=go1.25 git(http block)/usr/bin/gh gh workflow list --repo owner/repo --json name,path,state /opt/hostedtoolcache/node/24.14.1/x64/bin/node -unreachable=falgit /tmp/go-build885rev-parse 64/pkg/tool/linu--show-toplevel node /tmp�� /tmp/TestHashConsistency_GoAndJavaScript3396837777/001/test-frontmatter-with-nested-objects.md 64/pkg/tool/linux_amd64/compile /usr/bin/git g_.a -trimpath ache/go/1.25.8/x--show-toplevel git(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 382035818/001 -buildtags nfig/composer/vendor/bin/bash -errorsas -ifaceassert -nilfunc bash --no�� --noprofile -tests /snap/bin/bash(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 -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 with-tools.md 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/test/repo/usr/bin/gh gh api /repos/test/repo --jq .default_branch n-dir/git 7883682/b403/constants.test /usr/bin/git t0 m0s inWorkflow|TestC--show-toplevel git remo�� k/_temp/uv-pythogit-upload-pack '/tmp/TestParseDefaultBranchFromLsRemoteWithRealGitcustom_branchgit bash om/owner/repo.git runs/20260424-21git(http block)/usr/bin/gh gh api /repos/test/repo --jq .default_branch ithub/workflows/approach-validator.md -trimpath ache/node/24.14.1/x64/bin/node -p internal/saferiorev-parse -lang=go1.25 /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/compile t-20�� bility_SameInputSameOutput2781844293/001/stability-test.md -trimpath /usr/bin/git -p github.com/githurev-parse -lang=go1.25 git(http block)/usr/bin/gh gh api /repos/test/repo --jq .default_branch --symref origin om/testowner/testrepo.git -json GO111MODULE 64/bin/go git -C /tmp/gh-aw-test-runs/20260424-212505-66928/test-3329272867/.github/workflows(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 e/git init�� ndor/bin/git git ode_modules/.bin/git =receive test@example.com--git-dir=/tmp/bare-incremental-fGX0YG /git(dns block)If you need me to access, download, or install something from one of these locations, you can either: