Skip to content

Refactor create-* config parsing to shared helper and unify string→array coercion#33242

Merged
pelikhan merged 8 commits into
mainfrom
copilot/refactor-create-entity-parsers
May 19, 2026
Merged

Refactor create-* config parsing to shared helper and unify string→array coercion#33242
pelikhan merged 8 commits into
mainfrom
copilot/refactor-create-entity-parsers

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented May 19, 2026

Create-entity parsers (create-issue, create-discussion, create-pull-request) were still duplicating the same parse scaffold already centralized for close/update entities. They also had repeated and inconsistent single-string-to-array coercion logic for assignees/reviewers fields.

  • Consolidate create parser scaffolding

    • Added pkg/workflow/create_entity_helpers.go with:
      • CreateParseOptions
      • generic parseCreateEntityConfig[T any](...)
    • Centralized common flow:
      • config key existence check
      • optional pre-unmarshal preprocessing hook
      • shared expires preprocessing
      • shared templatable bool/int preprocessing
      • shared parseConfigScaffold unmarshal path
      • optional post-unmarshal hook (e.g., defaults/logging)
  • Refactor create parsers to use shared helper

    • Updated:
      • parseCreateIssuesConfig
      • parseCreateDiscussionsConfig
      • parseCreatePullRequestsConfig
    • Kept entity-specific behavior in compact pre/post hooks (e.g., discussion defaults, PR protected-files handling).
  • Extract and reuse coercion helper

    • Added to pkg/workflow/parse_helpers.go:
      • coerceStringOrArrayField(...)
      • coerceStringOrArrayFields(...)
    • Replaced inline duplication for:
      • assignees (issue + PR)
      • reviewers, team-reviewers (PR)
  • Add focused parser coverage

    • Added unit tests in pkg/workflow/config_parsing_helpers_test.go for:
      • single-string assignees in create-issue
      • single-string reviewers and team-reviewers in create-pull-request
config := parseCreateEntityConfig(
    outputMap,
    "create-issue",
    CreateParseOptions{
        BoolFields:    []string{"close-older-issues", "group", "footer", "group-by-day"},
        IntFields:     []string{"max"},
        HandleExpires: true,
    },
    createIssueLog,
    onError,
    preUnmarshal,
    postUnmarshal,
)

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • https://api.github.com/graphql
    • Triggering command: /usr/bin/gh gh repo view --json owner,name --jq .owner.login + "/" + .name x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet env -json GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh repo view --json owner,name --jq .owner.login + "/" + .name At,event,headBranch,headSha,displayTitle GOINSECURE igFiles,SwigCXXFremote GOMODCACHE 64/pkg/tool/linuupstream env 1287812800 GO111MODULE .cfg GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linutest@example.com (http block)
    • Triggering command: /usr/bin/gh gh pr list --repo github/gh-aw --state all --author app/github-actions --search created:2026-05-11T23:58:00Z..2026-05-12T00:05:00Z --limit 1 --json number --jq .[0].number GOMOD GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet (http block)
  • https://api.github.com/orgs/owner/actions/secrets
    • Triggering command: /usr/bin/gh gh api /orgs/owner/actions/secrets --jq .secrets[].name -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /orgs/owner/actions/secrets --jq .secrets[].name 41978358/001' 41978358/001' 64/bin/go w/js/**/*.json' go --jq in/dist/ripgrep/-json sh -c "prettier" --cheGOINSECURE in/dist/ripgrep/GOMOD 64/bin/go /ref/tags/v9 64/pkg/tool/linu-C sv go (http block)
    • Triggering command: /usr/bin/gh gh api /orgs/owner/actions/secrets --jq .secrets[].name --write ../../../**/*.jsGOMOD 64/bin/go --ignore-path ../../../.prettienv (http block)
  • https://api.github.com/orgs/test-owner/actions/secrets
    • Triggering command: /usr/bin/gh gh api /orgs/test-owner/actions/secrets --jq .secrets[].name -json k x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet env -json GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /orgs/test-owner/actions/secrets --jq .secrets[].name "prettier" --wriGOINSECURE infocmp 64/bin/go w/js/**/*.json' go /opt/hostedtoolcenv sv sh -c "prettier" --cheGOINSECURE infocmp 64/bin/go /ref/tags/v9 64/pkg/tool/linu-atomic sv go (http block)
    • Triggering command: /usr/bin/gh gh api /orgs/test-owner/actions/secrets --jq .secrets[].name --write ../../../**/*.jsGOMOD 64/bin/go --ignore-path ../../../.prettienv sv node /hom�� --check **/*.cjs 64/bin/go **/*.json --ignore-path ../../../.prettixterm-color go (http block)
  • https://api.github.com/repos/actions/ai-inference/git/ref/tags/v1
    • Triggering command: /usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq [.object.sha, .object.type] | @tsv ithub-script/git/ref/tags/v9 -trimpath bject.type] | @tsv -p main -lang=go1.25 go buil�� runs/20260519-085449-31075/test-1355037160 /dev/null ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet go1.25.8 -c=4 -nolocalimports ache/go/1.25.8/x64/pkg/tool/linu--jq (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE /opt/hostedtoolcache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go env licyMinIntegrityOnlymin-integrity_only_defaults_repo4102763492/001 GO111MODULE /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet url GOMOD GOMODCACHE /opt/hostedtoolcache/go/1.25.8/x--jq (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq [.object.sha, .object.type] | @tsv '/tmp/TestParseDefaultBranchFromremote.origin.url '/tmp/TestParseDefaultBranchFromLsRemoteWithRealGitbranch_with_hyphen201968018/001' 8206516/b540/vet.cfg GOINSECURE GOMOD GOMODCACHE go env licyMinIntegrityOnlymin-integrity_only_defaults_repo3377184495/0remote.origin.url GO111MODULE (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v3
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq [.object.sha, .object.type] | @tsv api-consumption-report.md /tmp/go-build1468261430/b127/vet-nolocalimports 1/x64/bin/node /tmp/go-build210infocmp -trimpath 64/bin/go /opt/hostedtoolcache/go/1.25.8/x/home/REDACTED/work/gh-aw/gh-aw/scripts/lint_error_messages_test.go t-ha�� vaScript2522707131/001/test-simple-frontmatter.md /tmp/go-build1468261430/b259/vet.cfg ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq [.object.sha, .object.type] | @tsv (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq [.object.sha, .object.type] | @tsv vaScript24663654remote.origin.url GO111MODULE .cfg GOINSECURE GOMOD GOMODCACHE go env OnlyCompiledOutput2553493483/001 GO111MODULE ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v5
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE ache/go/1.25.8/x64/pkg/tool/linu-importcfg GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/xconfig -uns�� /ref/tags/v9 /tmp/go-build1468261430/b003/vet.cfg sv GOSUMDB GOWORK 64/bin/go /opt/hostedtoolcache/go/1.25.8/x-buildtags (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq [.object.sha, .object.type] | @tsv runs/20260519-085449-31075/test-1428071664/.github/workflows /tmp/TestParseDefaultBranchFromLsRemoteWithRealGitmaster_branch233771199/002/work /usr/bin/git url -nolocalimports -importcfg /usr/bin/git conf�� --get-regexp l epo.git -json GO111MODULE x_amd64/vet git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq [.object.sha, .object.type] | @tsv /tmp/go-build1468261430/b570/timeutil.test -importcfg /usr/bin/git -s -w -buildmode=exe git -C /tmp/shared-actions-test1414134372 resolved$ (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv -unreachable=false /tmp/go-build1468261430/b033/vet-c=4 ache/go/1.25.8/x64/pkg/tool/linu-nolocalimports GOSUMDB GOWORK 64/bin/go ache/go/1.25.8/x--all -uns�� 8261430/b502/_pkid,name,path,state /tmp/go-build146--repo e/git-upload-pacowner/repo /tmp/go-build210infocmp -trimpath 64/bin/go /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linu--jq (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv -unreachable=false /tmp/go-build1468261430/b036/vet.cfg 8261430/b295/vet.cfg GOSUMDB GOWORK 64/bin/go /opt/hostedtoolcache/go/1.25.8/xmyorg -uns�� 870199664/.github/workflows /tmp/go-build1468261430/b104/vet.cfg ache/go/1.25.8/x64/pkg/tool/linux_amd64/link /tmp/go-build210infocmp -trimpath 64/bin/go ache/go/1.25.8/x64/pkg/tool/linuTest User (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv se 8261430/b124/vet.cfg 64/pkg/tool/linux_amd64/compile GOSUMDB GOWORK 64/bin/go NY/es83SkSH2yExAowner/test-repo -uns�� g_.a /tmp/go-build1468261430/b105/vet.cfg ts.test (http block)
  • https://api.github.com/repos/actions/github-script/git/ref/tags/v8
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq [.object.sha, .object.type] | @tsv bility_SameInputSameOutput764408116/001/stability-test.md ^remote\..*\.gh-resolved$ /usr/bin/gh -json GO111MODULE x_amd64/vet gh api ons-test1414134372 --jq /usr/bin/git l GO111MODULE x_amd64/vet git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq [.object.sha, .object.type] | @tsv ons-test1414134372 x_amd64/vet /usr/bin/git -json GO111MODULE x_amd64/vet git remo�� GOMODCACHE x_amd64/vet /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/link iant-2350495587/gh GO111MODULE x_amd64/vet /opt/hostedtoolc--jq (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq [.object.sha, .object.type] | @tsv -bool l /usr/lib/git-core/git -errorsas -ifaceassert -nilfunc /usr/lib/git-core/git pack�� --all-progress-implied l /opt/hostedtoolcache/node/24.14.1/x64/bin/node --thin --delta-base-offconfig -q node (http block)
  • https://api.github.com/repos/actions/github-script/git/ref/tags/v9
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /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 1KKmqAVRfqeK env -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /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-build1468261430/b484/importcfg -pack /home/REDACTED/work/gh-aw/gh-aw/pkg/constants/constants.go 0J1P-uUC7Jn_ env -json GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet (http block)
  • https://api.github.com/repos/actions/github-script/git/ref/tags/v9.0.0
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9.0.0 --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)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9.0.0 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9.0.0 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet env -json GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE 5D3lnnt/cwGcSL6cVpJv3m8ccLa- (http block)
  • https://api.github.com/repos/actions/setup-go/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv t0 -buildtags 1/x64/bin/node m0s -ifaceassert (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv /ref/tags/v9.0.0 GO111MODULE 1/x64/bin/node GOINSECURE GOMOD GOMODCACHE 1/x64/bin/node t-22�� sistency_GoAndJavaScript2466365449/001/test-frontmatter-with-nesremote.upstream.url GO111MODULE /opt/hostedtoolcache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/actions/setup-node/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv -unreachable=false /tmp/go-build1468261430/b005/vet.cfg 8261430/b354/vet.cfg GOSUMDB GOWORK 64/bin/go /opt/hostedtoolc-test.v=true -ato�� oader.go oader_test.go 8261430/b416/vet-test.short=true -errorsas -ifaceassert -nilfunc /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linu-importcfg (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv orts1645342800/001/main.md /tmp/go-build1468261430/b378/vet.cfg 1/x64/bin/node -json GO111MODULE 64/bin/go /tmp/go-build1468261430/b485/conremote.upstream.url t-ha�� ithub/workflows/agent-persona-explorer.md stmain.go /usr/lib/git-core/git url -test.run=^Test -test.short=true/repos/actions/github-script/git/ref/tags/v9 /usr/lib/git-cor--jq (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv ithub-script/git/ref/tags/v9 /tmp/TestParseDefaultBranchFromLsRemoteWithRealGitbranch_with_hyphen3028729750/002/work t -json GO111MODULE 64/bin/go infocmp -1 xterm-color (http block)
  • https://api.github.com/repos/actions/setup-node/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv /a.out /tmp/go-build1468261430/b037/vet.cfg ortcfg.link GOSUMDB -6glNdoRT7M0CRtv-o 64/bin/go g_.a -uns�� -unreachable=fal-p /tmp/go-build146main 1/x64/bin/node /tmp/go-build210infocmp -trimpath 64/bin/go ache/go/1.25.8/x-dwarf=false (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv -unreachable=false /tmp/go-build1468261430/b043/vet.cfg 8261430/b499/gitutil.test GOSUMDB GOWORK 64/bin/go 8261430/b499/gitowner/host-repo e=/t�� /ref/tags/v9.0.0 /tmp/go-build1468261430/b094/vet.cfg 1/x64/bin/node m0s -trimpath (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv GOPATH GOPROXY /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linu-importcfg GOSUMDB GOWORK 64/bin/go /opt/hostedtoolctest-owner/test-repo-31075 -ato�� runs/20260519-085449-31075/test-source-field-var-s -buildtags ceutil.test -errorsas -ifaceassert -nilfunc ceutil.test (http block)
  • https://api.github.com/repos/actions/upload-artifact/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv s/1234567890 -buildtags umber, url: .html_url, status: .-nolocalimports -errorsas -ifaceassert -nilfunc /opt/hostedtoolcowner/test-repo -ato�� i.go ntifiers.go 64/pkg/tool/linux_amd64/compile -errorsas -ifaceassert -nilfunc 64/pkg/tool/linux_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv jEj37LEpP GO111MODULE 1/x64/bin/node GOINSECURE GOMOD GOMODCACHE ortcfg t-ha�� Imports736216040/001/noflag-a.md GO111MODULE ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linutest@example.com (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv ll-sweep (enforce_all)' || 'round-robin' DefaultBranchFromLsRemoteWithRealGitmain_branch1012839474/001' ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE ortcfg env 0825-68343/test-2265953447/.github/workflows GO111MODULE ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linutest@example.com (http block)
  • https://api.github.com/repos/aws-actions/configure-aws-credentials/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/aws-actions/configure-aws-credentials/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv 8261430/b558/_pkg_.a go 8261430/b558=> -json GO111MODULE 64/bin/go git -C hCpC/e79TWLCtbxfnDpByhCpC config clusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle remote.upstream.grep GO111MODULE x_amd64/vet ache/node/24.14./tmp/gh-aw/aw-master.patch (http block)
    • Triggering command: /usr/bin/gh gh api /repos/aws-actions/configure-aws-credentials/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv t0 -dwarf=false 8261430/b576/types.test m0s -c=4 (http block)
    • Triggering command: /usr/bin/gh gh api /repos/aws-actions/configure-aws-credentials/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv /tmp/go-build1992454939/b485/constants.test url t -s -w -buildmode=exe git add . l clusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle npx prettier --wgrep infocmp 64/bin/go git (http block)
  • https://api.github.com/repos/azure/login/git/ref/tags/v2
    • Triggering command: /usr/bin/gh gh api /repos/azure/login/git/ref/tags/v2 --jq [.object.sha, .object.type] | @tsv --pack_header=2,3 -q iptables -json GO111MODULE 64/bin/go /opt/hostedtoolcache/go/1.25.8/x--jq -o /tmp/go-build1468261430/b546/_pkg_.a -trimpath clusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle -p 90 -lang=go1.25 git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/azure/login/git/ref/tags/v2 --jq [.object.sha, .object.type] | @tsv -bool l /usr/lib/git-core/git -errorsas -ifaceassert -nilfunc /usr/lib/git-core/git --gi�� for-each-ref --format=%(objectname) clusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle npx prettier --w/usr/lib/git-core/git 90 64/bin/go gh (http block)
    • Triggering command: /usr/bin/gh gh api /repos/azure/login/git/ref/tags/v2 --jq [.object.sha, .object.type] | @tsv ar.default.svc:2376" GH_AW_DOCKER_HOST_PATH_PREFIX_ARGS="" if [[ "${DOCKER_HOST:-}" =~ ^tcp:// ]git url /usr/bin/git GOSUMDB GOWORK 64/bin/go git comm�� -m initial commit /usr/bin/git JBLH/wZQ-dlAjnIPsed infocmp 64/bin/go git (http block)
  • https://api.github.com/repos/docker/login-action/git/ref/tags/v3
    • Triggering command: /usr/bin/gh gh api /repos/docker/login-action/git/ref/tags/v3 --jq [.object.sha, .object.type] | @tsv -e resolved$ ptables -- unsafe 64/bin/go git -C /tmp/gh-aw-test-runs/20260519-085449-31075/test-79416182/.github/workflows config ache/node/24.14.1/x64/bin/node remote.upstream.git GO111MODULE x_amd64/vet ache/node/24.14.1/x64/bin/node (http block)
    • Triggering command: /usr/bin/gh gh api /repos/docker/login-action/git/ref/tags/v3 --jq [.object.sha, .object.type] | @tsv ue.number -importcfg /usr/lib/git-core/git -s -w -buildmode=exe /usr/lib/git-core/git unpa�� --pack_header=2,3 -q /usr/bin/git npx prettier --wgit infocmp 64/bin/go git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/docker/login-action/git/ref/tags/v3 --jq [.object.sha, .object.type] | @tsv GH_AW_DOCKER_HOST_PATH_PREFIX_ARGS="" if [[ "${DOCKER_HOST:-}" =~ ^tcp:// ]]; then GH_AW_DOCKgit config /usr/lib/git-core/git-upload-pack remote.origin.urfind GOWORK 64/bin/go git-upload-pack /tmp�� --log-level=errod sh /usr/bin/git UHB2/_Lbo5WELKwHmkdir pkg/workflow/saf-p 64/bin/go git (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v0.1.2
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v0.1.2 --jq [.object.sha, .object.type] | @tsv -bool }} {{context.Compiler}} r: $owner, name: $name) { hasDiscussionsEnabled } } -errorsas -ifaceassert -nilfunc /opt/hostedtoolcache/go/1.25.8/xremote.origin.url -ato�� 72 -buildtags /tmp/go-build1468261430/b519/errstringmatch.test -errorsas -ifaceassert -nilfunc /tmp/go-build146--jq (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v0.1.2 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE r: $owner, name: $name) { hasDiscussionsEnabled } } GOINSECURE GOMOD GOMODCACHE e/git env 3 GO111MODULE 2454939/b537/vet.cfg GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v0.1.2 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE r: $owner, name: $name) { hasDiscussionsEnabled } } GOINSECURE GOMOD GOMODCACHE e/git estP�� -json tname) 8206516/b536/vet.cfg GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v1.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv 5449-31075/test-1684004269/.github/workflows /tmp/go-build1468261430/b231/vet.cfg tartedAt,updatedAt,event,headBranch,headSha,displayTitle GOSUMDB GOWORK 64/bin/go /opt/hostedtoolcconfig -ato�� 1282305039 -buildtags e/git -errorsas -ifaceassert -nilfunc e/git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv vaScript1352507782/001/test-simple-frontmatter.md GO111MODULE tartedAt,updatedAt,event,headBranch,headSha,displayTitle GOINSECURE GOMOD GOMODCACHE go env /ref/tags/v9 GO111MODULE sv GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linuremote.origin.url (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE tartedAt,updatedAt,event,headBranch,headSha,displayTitle GOINSECURE GOMOD GOMODCACHE go env /ref/tags/v9 GO111MODULE sv GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linuremote.origin.url (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v1.2.3
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.2.3 --jq [.object.sha, .object.type] | @tsv -bool -buildtags /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet H_PREFIX_ARGS="--docker-host-path-prefix /tmp/gh-aw" fi echo "$GH_AW_DOCKER_HOST_PATH_PREFIX_AR -ifaceassert -nilfunc /opt/hostedtoolcremote -ato�� 5449-31075/test-4174156269 -buildtags 1/x64/bin/node -errorsas -ifaceassert -nilfunc /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linuTest User (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.2.3 --jq [.object.sha, .object.type] | @tsv efaultBranchFromLsRemoteWithRealGitmaster_branch--jq efaultBranchFromLsRemoteWithRealGitmaster_branch.owner.login + "/" + .name .cfg H_PREFIX_ARGS="--docker-host-path-prefix /tmp/gh-aw" fi echo "$GH_AW_DOCKER_HOST_PATH_PREFIX_AR GOMOD GOMODCACHE go env 0407-50199/test-remote.origin.url GO111MODULE 1/x64/bin/node GOINSECURE GOMOD GOMODCACHE 1/x64/bin/node (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.2.3 --jq [.object.sha, .object.type] | @tsv efaultBranchFromLsRemoteWithRealGitmaster_branch848423121/001' efaultBranchFromLsRemoteWithRealGitmaster_branch848423121/001' .cfg H_PREFIX_ARGS="--docker-host-path-prefix /tmp/gh-aw" fi echo "$GH_AW_DOCKER_HOST_PATH_PREFIX_AR GOMOD GOMODCACHE go env 0825-68343/test-remote.origin.url GO111MODULE ache/go/1.25.8/x64/pkg/tool/linux_amd64/link GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linux_amd64/link (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --limit 100 --created >=2026-05-12 GOMOD GOMODCACHE 64/pkg/tool/linusecurity env y-test.md GO111MODULE 64/pkg/tool/linu168.63.129.16 GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linuowner (http block)
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --limit 100 --created >=2026-04-19 GOMOD GOMODCACHE x_amd64/compile env -json GO111MODULE 64/pkg/tool/linu168.63.129.16 GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linuconntrack (http block)
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --limit 100 --created >=2026-02-18 GOMOD GOMODCACHE x_amd64/link env -json GO111MODULE 64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE SS/SnI6QuGF7Xsa9iAIRm4X/auac8X6jconfig (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/1/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/1/artifacts --jq .artifacts[].name l_test.go ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet GOINSECURE c1/apP7J--Vq1gNS-C GOMODCACHE ache/go/1.25.8/xrev-parse (http block)
    • Triggering command: /usr/bin/gh gh run download 1 --dir test-logs/run-1 8261430/b031/vet.cfg ache/go/1.25.8/x64/pkg/tool/linu-nilfunc GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linu--jq env /ref/tags/v9.0.0 GO111MODULE 64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/1/artifacts --jq .artifacts[].name GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env 82/001/test-inlined-imports-enabremote.upstream.url GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/12345/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12345/artifacts --jq .artifacts[].name GO111MODULE 64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/vet env e-analyzer.md GO111MODULE 64/pkg/tool/linux_amd64/asm GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linuTest User (http block)
    • Triggering command: /usr/bin/gh gh run download 12345 --dir test-logs/run-12345 GO111MODULE ache/go/1.25.8/x-lang=go1.25 GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/xstatus (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12345/artifacts --jq .artifacts[].name 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/actions/runs/1234567890
    • Triggering command: /usr/bin/gh gh api repos/{owner}/{repo}/actions/runs/1234567890 --jq {databaseId: .id, number: .run_number, url: .html_url, status: .status, conclusion: .conclusion, workflowName: .name, workflowPath: .path, createdAt: .created_at, startedAt: .run_started_at, updatedAt: .updated_at, event: .event, headBranch: .head_branch, -json GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet env -json GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api repos/{owner}/{repo}/actions/runs/1234567890 --jq {databaseId: .id, number: .run_number, url: .html_url, status: .status, conclusion: .conclusion, workflowName: .name, workflowPath: .path, createdAt: .created_at, startedAt: .run_started_at, updatedAt: .updated_at, event: .event, headBranch: .head_branch, -w pkg/workflow/safGOMOD 64/bin/go pkg/workflow/saf/opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet pkg/workflow/saf-atomic pkg/workflow/saf-bool sh -c "prettier" --che-errorsas pkg/workflow/saf-ifaceassert 64/bin/go pkg/workflow/safgit pkg/workflow/safcommit pkg/workflow/saf-m go (http block)
    • Triggering command: /usr/bin/gh gh api repos/{owner}/{repo}/actions/runs/1234567890 --jq {databaseId: .id, number: .run_number, url: .html_url, status: .status, conclusion: .conclusion, workflowName: .name, workflowPath: .path, createdAt: .created_at, startedAt: .run_started_at, updatedAt: .updated_at, event: .event, headBranch: .head_branch, npx prettier --cGOINSECURE deql 64/bin/go ignore-path .././opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet --jq ols/linux64/scc node /hom�� --check scripts/**/*.js 64/bin/go -d --jq 64/bin/sh go (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/12346/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12346/artifacts --jq .artifacts[].name GO111MODULE 64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh run download 12346 --dir test-logs/run-12346 GO111MODULE 64/pkg/tool/linux_amd64/link GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/link (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12346/artifacts --jq .artifacts[].name GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env 82/001/test-frontmatter-with-nested-objects.md GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/2/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/2/artifacts --jq .artifacts[].name .cfg 64/pkg/tool/linu-nolocalimports GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linu/tmp/go-build1468261430/b564/_testmain.go (http block)
    • Triggering command: /usr/bin/gh gh run download 2 --dir test-logs/run-2 8261430/b037/vet.cfg ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet GOINSECURE VA/AMqnqam-ylJOlremote GOMODCACHE ache/go/1.25.8/xother (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/2/artifacts --jq .artifacts[].name 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/actions/runs/3/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/3/artifacts --jq .artifacts[].name o orutil.test GOINSECURE GOMOD GOMODCACHE orutil.test 4682�� y.md 8261430/b152/vet.cfg 64/pkg/tool/linux_amd64/link GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linutest@example.com (http block)
    • Triggering command: /usr/bin/gh gh run download 3 --dir test-logs/run-3 test.go .cfg GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/xremote.upstream.url env 5449-31075/test-source-field-variant-2350495587 GO111MODULE ow.lock.yml GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/xremote.origin.url (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/3/artifacts --jq .artifacts[].name 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/actions/runs/4/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/4/artifacts --jq .artifacts[].name .cfg ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet GOINSECURE igFiles,SwigCXXFadd GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linuremote.upstream.url (http block)
    • Triggering command: /usr/bin/gh gh run download 4 --dir test-logs/run-4 .cfg 64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/compile env rity1448104629/001 GO111MODULE ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet GOINSECURE util GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/4/artifacts --jq .artifacts[].name 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/actions/runs/5/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/5/artifacts --jq .artifacts[].name .cfg 64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linustatus (http block)
    • Triggering command: /usr/bin/gh gh run download 5 --dir test-logs/run-5 .cfg 64/pkg/tool/linux_amd64/link GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linumyorg env nutil.test GO111MODULE 64/pkg/tool/linux_amd64/asm GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linuTest User (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/5/artifacts --jq .artifacts[].name GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env 0144/001/stabili.github/workflows/test.md GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/github/gh-aw/actions/workflows
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path -json GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet env -json GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --workflow nonexistent-workflow-12345 --limit 100 GOMOD GOMODCACHE x_amd64/vet env -json GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --workflow nonexistent-workflow-12345 --limit 6 GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/compile (http block)
  • https://api.github.com/repos/github/gh-aw/contents/.github/workflows/shared/reporting.md
    • Triggering command: /tmp/go-build1468261430/b475/cli.test /tmp/go-build1468261430/b475/cli.test -test.testlogfile=/tmp/go-build1468261430/b475/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)
    • Triggering command: /tmp/go-build1992454939/b475/cli.test /tmp/go-build1992454939/b475/cli.test -test.testlogfile=/tmp/go-build1992454939/b475/testlog.txt -test.paniconexit0 -test.v=true -test.parallel=4 -test.timeout=10m0s -test.run=^Test -test.short=true /ref/tags/v9 --jq sv sh -c npx prettier --wGOINSECURE gh 64/bin/go /repos/actions/ggo --jq (http block)
    • Triggering command: /tmp/go-build2418206516/b475/cli.test /tmp/go-build2418206516/b475/cli.test -test.testlogfile=/tmp/go-build2418206516/b475/testlog.txt -test.paniconexit0 -test.v=true -test.parallel=4 -test.timeout=10m0s -test.run=^Test -test.short=true **/*.json --ignore-path ../../../.pretti-json sh -c "prettier" --wriGOINSECURE gh 64/bin/go rror --jq /sh sh (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v0.47.4
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v0.47.4 --jq [.object.sha, .object.type] | @tsv pJO2dTJLNSMCrHn8D9tK/pJO2dTJLNSMCrHn8D9tK -goversion ache/node/24.14.1/x64/bin/node -c=4 -nolocalimports -importcfg git t-26�� k/gh-aw/gh-aw/.github/workflows/architecture-guardian.md remote 8261430/b578/vet.cfg -json GO111MODULE x_amd64/vet git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v0.47.4 --jq [.object.sha, .object.type] | @tsv uts.enforce_all == 'true' && 'full-sweep (enforce_all)' config /usr/bin/infocmp remote.origin.urinfocmp GOWORK 64/bin/go infocmp -1 xterm-color (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v0.47.4 --jq [.object.sha, .object.type] | @tsv ithub-script/git/ref/tags/v9.0.0 /tmp/TestParseDefaultBranchFromLsRemoteWithRealGitmain_branch1012839474/002/work bject.type] | @tsv go1.25.8 -c=4 -nolocalimports git conf�� ithub-script/git--log-target remote.origin.urjournal-or-kmsg bject.type] | @tsv npx prettier --cgh rk 64/bin/go gh (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v1.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv 211590615/.github/workflows GO111MODULE .cfg GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x--jq env -json o x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv 125860420/.github/workflows GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go env 946961631 GO111MODULE 1/x64/bin/node GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv 2011886054/.github/workflows GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE ck GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v1.2.3
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.2.3 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet env -json .cfg x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile (http block)
    • Triggering command: /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)
    • Triggering command: /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 phen�� -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
    • Triggering command: /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/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet env -json .cfg x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq [.object.sha, .object.type] | @tsv /workflows GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet env -json .cfg x_amd64/link GOINSECURE GOMOD GOMODCACHE x_amd64/link (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq [.object.sha, .object.type] | @tsv -template-expressions.md 695060987/002/work x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet env -json .cfg 64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/vet (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v3.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v3.0.0 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet env -json .cfg 64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linu-buildtags (http block)
    • Triggering command: /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 64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v3.0.0 --jq [.object.sha, .object.type] | @tsv iant-134850381/.github/workflows 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/issues/17
    • Triggering command: /usr/bin/gh gh api repos/github/gh-aw/issues/17 go env -json GO111MODULE x_amd64/link GOINSECURE GOMOD GOMODCACHE mUgGW0Q0ZDBm env -json GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api repos/github/gh-aw/issues/17 node /hom�� 3694749161/001' 3694749161/001' 64/bin/go --ignore-path ../../../.pretti-atomic (http block)
    • Triggering command: /usr/bin/gh gh api repos/github/gh-aw/issues/17 -tests /tmp/go-build2418206516/b572/vet.cfg npx prettier --cGOINSECURE gh 64/bin/go ignore-path .././opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet --jq run-script/lib/n-bool sh -c "prettier" --che-errorsas find 64/bin/go tierignore 5 modules/@npmcli/--bare go (http block)
  • https://api.github.com/repos/google-github-actions/auth/git/ref/tags/v2
    • Triggering command: /usr/bin/gh gh api /repos/google-github-actions/auth/git/ref/tags/v2 --jq [.object.sha, .object.type] | @tsv 8261430/b541/embedcfg my-default r,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,disp/repos/actions/github-script/git/ref/tags/v9 -json flow-12345 64/bin/go /opt/hostedtoolcache/go/1.25.8/x--jq -o /tmp/go-build1468261430/b545/_pkg_.a l /usr/bin/git -p github.com/githu-500 -lang=go1.25 git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/google-github-actions/auth/git/ref/tags/v2 --jq [.object.sha, .object.type] | @tsv runs/20260519-090407-50199/test-2010096379 -buildtags /usr/bin/git -errorsas -ifaceassert -nilfunc git push�� origin master /usr/bin/git npx prettier --whead infocmp 64/bin/go git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/google-github-actions/auth/git/ref/tags/v2 --jq [.object.sha, .object.type] | @tsv ithub-script/git/ref/tags/v9 Test User bject.type] | @tsv GOSUMDB GOWORK 64/bin/go git-upload-pack /tmp�� --log-level=erro-json s/2/artifacts /usr/bin/gh QqY6/G4KWGCAA7iZ/usr/bin/php8.3 s 64/bin/go gh (http block)
  • https://api.github.com/repos/nonexistent/action/git/ref/tags/v999.999.999
    • Triggering command: /usr/bin/gh gh api /repos/nonexistent/action/git/ref/tags/v999.999.999 --jq [.object.sha, .object.type] | @tsv 211590615 GO111MODULE $name) { hasDiscussionsEnabled } } GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linuremote.origin.url env -json GO111MODULE 64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linuremote.upstream.url (http block)
    • Triggering command: /usr/bin/gh gh api /repos/nonexistent/action/git/ref/tags/v999.999.999 --jq [.object.sha, .object.type] | @tsv 2902111200/.github/workflows GO111MODULE util.test GOINSECURE GOMOD GOMODCACHE util.test 9924�� 946961631 GO111MODULE ck GOINSECURE GOMOD GOMODCACHE go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/nonexistent/action/git/ref/tags/v999.999.999 --jq [.object.sha, .object.type] | @tsv 2011886054/.github/workflows GO111MODULE util.test GOINSECURE GOMOD GOMODCACHE util.test 4182�� 2866743448/.github/workflows 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
    • Triggering command: /usr/bin/gh gh run view 12345 --repo nonexistent/repo --json status,conclusion GOINSECURE GOMOD GOMODCACHE gQ/uj0Jsxk1t5AfUremote.origin.url env e_all)' GO111MODULE sv GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/xremote.origin.url (http block)
    • Triggering command: /usr/bin/gh gh run view 12345 --repo nonexistent/repo --json status,conclusion GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linuremote.origin.url (http block)
    • Triggering command: /usr/bin/gh gh run view 12345 --repo nonexistent/repo --json status,conclusion GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE ache/go/1.25.8/x64/bin/go GOINSECURE GOMOD GOMODCACHE go (http block)
  • https://api.github.com/repos/org/repo/pulls/1
    • Triggering command: /usr/bin/gh gh api repos/org/repo/pulls/1 go env -json GO111MODULE x_amd64/vet GOINSECURE estGoFiles,XTestGoFiles,CompiledGoFiles,Export,DepOnly,Imports,ImportMap,TestImports�� GOMODCACHE x_amd64/vet env -json GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api repos/org/repo/pulls/1 -tests /tmp/go-build1992454939/b560/vet.cfg --write ../../../**/*.jsGOMOD 1b4f63b735893772-d --ignore-path ../../../.pretti-V=full (http block)
    • Triggering command: /usr/bin/gh gh api repos/org/repo/pulls/1 sh -c npx prettier --cGOINSECURE gh 64/bin/go ignore-path .././opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet --jq (http block)
  • https://api.github.com/repos/owner/repo/actions/secrets
    • Triggering command: /usr/bin/gh gh api /repos/owner/repo/actions/secrets --jq .secrets[].name -json GO111MODULE 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/owner/repo/actions/secrets --jq .secrets[].name "prettier" --wriGOINSECURE gh 64/bin/go /ref/tags/v9 --jq x_amd64/asm sh -c "prettier" --cheGOINSECURE x_amd64/asm 64/bin/go /ref/tags/v9 les.test sv go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/owner/repo/actions/secrets --jq .secrets[].name --write ../../../**/*.jsGOMOD 64/bin/go --ignore-path ../../../.prettienv modules/@npmcli/-json node /hom�� --check **/*.cjs 64/bin/go **/*.json --ignore-path ../../../.pretti/tmp/go-build2418206516/b542/parser.test go (http block)
  • https://api.github.com/repos/owner/repo/actions/workflows
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --repo owner/repo x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet env -json GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --workflow nonexistent-remote-workflow --limit 30 --repo owner/repo 64/pkg/tool/linu/tmp/go-build1468261430/b558/_testmain.go (http block)
    • Triggering command: /usr/bin/gh gh workflow list --repo owner/repo --json name,path,state k GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/xTest User sRem�� B2FtdE3Xz 8261430/b220/vet.cfg 64/bin/go GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linuconfig (http block)
  • https://api.github.com/repos/test-owner/test-repo/actions/secrets
    • Triggering command: /usr/bin/gh gh api /repos/test-owner/test-repo/actions/secrets --jq .secrets[].name 3507826/001' 3507826/001' x_amd64/asm GOINSECURE GOMOD GOMODCACHE x_amd64/asm env -json GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/test-owner/test-repo/actions/secrets --jq .secrets[].name "prettier" --wriGOINSECURE infocmp 64/bin/go w/js/**/*.json' go J_/CWrYu2czG7Ca7env sv sh -c "prettier" --cheGOINSECURE infocmp 64/bin/go /ref/tags/v9 /opt/hostedtoolc-1 es/.bin/sh go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/test-owner/test-repo/actions/secrets --jq .secrets[].name 12839474/001' 12839474/001' 64/bin/go --ignore-path ../../../.prettienv sv node /hom�� --check **/*.cjs 64/bin/go **/*.json --ignore-path ../../../.pretti/tmp/gh-aw-test-runs/20260519-090825-68343/test-source-field-variant-134850381 go (http block)
  • https://api.github.com/repos/test/repo
    • Triggering command: /usr/bin/gh gh api /repos/test/repo --jq .default_branch 1287812800 GO111MODULE .cfg GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linutest@example.com env -json GO111MODULE tartedAt,updatedAt,event,headBranch,headSha,displayTitle GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linu--auto (http block)
    • Triggering command: /usr/bin/gh gh api /repos/test/repo --jq .default_branch 1058734879/.github/workflows GO111MODULE 64/pkg/tool/linux_amd64/link GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linuremote.origin.url env util.test GO111MODULE ortcfg.link GOINSECURE GOMOD GOMODCACHE uoZvQ68gadkwUtq9--json (http block)
    • Triggering command: /usr/bin/gh gh api /repos/test/repo --jq .default_branch 3079556411/.github/workflows GO111MODULE 64/pkg/tool/linux_amd64/link GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linuremote.origin.url env 1610239005 GO111MODULE ortcfg.link GOINSECURE GOMOD GOMODCACHE uoZvQ68gadkwUtq9--json (http block)

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

Copilot AI and others added 5 commits May 19, 2026 09:05
…erplate

Agent-Logs-Url: https://github.com/github/gh-aw/sessions/1042122e-b8c4-4345-9a9c-11efbe7d2f28

Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
Agent-Logs-Url: https://github.com/github/gh-aw/sessions/1042122e-b8c4-4345-9a9c-11efbe7d2f28

Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
Agent-Logs-Url: https://github.com/github/gh-aw/sessions/1042122e-b8c4-4345-9a9c-11efbe7d2f28

Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
Copilot AI changed the title [WIP] Refactor create entity parsers to share scaffolding Refactor create-* config parsing to shared helper and unify string→array coercion May 19, 2026
Copilot AI requested a review from gh-aw-bot May 19, 2026 09:24
@pelikhan pelikhan marked this pull request as ready for review May 19, 2026 09:35
Copilot AI review requested due to automatic review settings May 19, 2026 09:35
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Refactors the create-* safe-output config parsing flow to use a shared helper (matching the existing close/update parsing scaffolds) and standardizes single-string → []string coercion for fields like assignees/reviewers.

Changes:

  • Introduces parseCreateEntityConfig + CreateParseOptions to centralize create-entity parsing scaffolding (key checks, preprocessing, unmarshal, hooks).
  • Adds coerceStringOrArrayField(s) helper(s) and applies them to create-issue / create-pull-request parsing.
  • Adds targeted unit tests covering scalar-string shorthand for create-issue assignees and create-pull-request reviewers/team-reviewers.
Show a summary per file
File Description
pkg/workflow/create_entity_helpers.go Adds shared generic helper to parse create-* configs with pre/post hooks and common preprocessing.
pkg/workflow/parse_helpers.go Adds reusable scalar-string → []string coercion helpers.
pkg/workflow/create_issue.go Switches create-issue parsing to the shared helper and uses shared coercion for assignees.
pkg/workflow/create_discussion.go Switches create-discussion parsing to the shared helper while preserving defaults behavior.
pkg/workflow/create_pull_request.go Switches create-pull-request parsing to the shared helper and consolidates coercion/preprocessing logic.
pkg/workflow/config_parsing_helpers_test.go Adds unit tests for scalar-string shorthand handling (assignees/reviewers/team-reviewers).

Copilot's findings

Tip

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

  • Files reviewed: 6/6 changed files
  • Comments generated: 1

Comment on lines +78 to +81
func(configData map[string]any) bool {
coerceStringOrArrayFields(configData, createPRStringOrArrayFields, createPRLog)

// Pre-process protected-files: supports string enum OR object form {policy, exclude}.
Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

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

Skills-Based Review 🧠

Applied /zoom-out and /improve-codebase-architecture based on this refactoring PR that consolidates duplicate parsing logic across three create-* entity parsers.

Key Themes

  • Good deepening: The generic parseCreateEntityConfig[T] helper successfully extracts ~60-80 lines of repeated scaffolding per parser into a single reusable abstraction
  • Clear separation: Pre/post unmarshal hooks keep entity-specific behavior localized while sharing the common flow
  • Improved discoverability: New coerceStringOrArrayField helpers eliminate inline duplication and create a single source of truth for string→array normalization

Positive Highlights

  • ✅ Excellent use of generics to avoid code duplication without sacrificing type safety
  • ✅ Package-level field constants in create_pull_request.go make preprocessing explicit and reusable
  • ✅ Test coverage added for the critical coercion behavior
  • ✅ Lifecycle documentation in godoc clearly explains the callback ordering

Minor Suggestions

  1. Documentation depth: A few places could use brief inline comments to explain non-obvious design decisions (nil handling, callback return semantics)
  2. Naming alignment: Consider normalize instead of coerce to better match domain vocabulary
  3. Consistency: Apply the field constant pattern to all three parsers for uniformity
  4. Edge case test: Add empty-string coercion test to document expected behavior

Verdict

Approving — this is a solid architectural improvement that makes the codebase shallower (simpler interfaces, richer shared behavior). The minor suggestions are polish, not blockers.

Nice work applying the shared abstraction pattern consistently! 🎯

🧠 Reviewed using Matt Pocock's skills by Matt Pocock Skills Reviewer · ● 3.8M

@github-actions
Copy link
Copy Markdown
Contributor

🧪 Test Quality Sentinel Report

Test Quality Score: 100/100

Excellent test quality

Metric Value
New/modified tests analyzed 2
✅ Design tests (behavioral contracts) 2 (100%)
⚠️ Implementation tests (low value) 0 (0%)
Tests with error/edge cases 2 (100%)
Duplicate test clusters 0
Test inflation detected No
🚨 Coding-guideline violations 0

Test Classification Details

Test File Classification Issues Detected
TestParseIssuesConfigWithSingleStringAssignee pkg/workflow/config_parsing_helpers_test.go:258 ✅ Design None
TestParsePullRequestsConfigWithSingleStringReviewerAndTeamReviewer pkg/workflow/config_parsing_helpers_test.go:279 ✅ Design None

Analysis Summary

Both new tests verify behavioral contracts that directly affect users:

TestParseIssuesConfigWithSingleStringAssignee

Design invariant: When a user provides assignees: "single-assignee" (string) in YAML frontmatter, the parser normalizes it to an array ["single-assignee"] to maintain the API contract (array of assignees).

What breaks if deleted: Users passing a single string assignee would experience either unmarshal failures or empty assignees arrays, breaking the convenience syntax feature.

Assertions: 3 checks (nil result, array length, content correctness)

TestParsePullRequestsConfigWithSingleStringReviewerAndTeamReviewer

Design invariant: Both reviewers and team-reviewers fields support single-string shorthand syntax (e.g., reviewers: "user"["user"]).

What breaks if deleted: Users would be forced to always use array syntax even for single values, breaking the convenience API contract.

Assertions: 5 checks (nil result, reviewers length/content, team-reviewers length/content)


Code Changes Context

This PR refactors create-entity config parsing to use a shared parseCreateEntityConfig helper and introduces coerceStringOrArrayFields for unified string→array normalization:

  • New files: create_entity_helpers.go (+83 lines), parse_helpers.go (+29 lines)
  • Refactored: create_issue.go, create_pull_request.go, create_discussion.go (net -45 lines)
  • Test growth: 50 lines added vs. 240 production lines (21% ratio - well below 2:1 threshold)

Language Support

Tests analyzed:


Verdict

Check passed. 0% of new tests are implementation tests (threshold: 30%). Both tests verify user-facing behavioral contracts for YAML parsing convenience features.


📖 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:

🧪 Test quality analysis by Test Quality Sentinel · ● 7.3M ·

Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

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

✅ Test Quality Sentinel: 100/100. Test quality is excellent — 0% of new tests are implementation tests (threshold: 30%). Both tests verify user-facing behavioral contracts for YAML parsing convenience features.

@pelikhan
Copy link
Copy Markdown
Collaborator

@copilot review all comments

Copilot AI and others added 2 commits May 19, 2026 10:09
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copy link
Copy Markdown
Contributor Author

Copilot AI commented May 19, 2026

@copilot review all comments

Addressed the actionable review feedback in 0c8398f by adding a focused unit test for scalar-string assignees in create-pull-request parsing, and I reviewed the remaining comments for this PR state.

Copilot AI requested a review from pelikhan May 19, 2026 10:12
@pelikhan pelikhan merged commit 155c6a0 into main May 19, 2026
27 checks passed
@pelikhan pelikhan deleted the copilot/refactor-create-entity-parsers branch May 19, 2026 10:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

4 participants