Skip to content

Add issue deduplication to Daily Community Attribution Updater#28818

Merged
pelikhan merged 3 commits intomainfrom
copilot/deep-report-add-deduplication-check
Apr 28, 2026
Merged

Add issue deduplication to Daily Community Attribution Updater#28818
pelikhan merged 3 commits intomainfrom
copilot/deep-report-add-deduplication-check

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 27, 2026

The Daily Community Attribution Updater had no guard against creating duplicate failure issues, causing identical [community-attribution] issues to accumulate on every failed run. This also lacked any mechanism to report failures through the safe-output system at all.

Changes

  • shared/issue-dedup.md — New reusable prompt component explaining that agents must use the create_issue safe-output tool (not the GitHub MCP tool directly), and why: the safe-output tool's group-by-day and close-older-issues settings deduplicate programmatically without requiring issues: write permission

  • daily-community-attribution.md — Three additions:

    • safe-outputs.create-issue with close-older-issues: true, group-by-day: true, title-prefix: "[community-attribution] ", and expires: 7d — the structural fix
    • imports: shared/issue-dedup.md — injects dedup instructions into the agent prompt at runtime
    • New Step 6 "Report Failures" section explicitly directing the agent to use the safe-output tool for failures, with a concrete example
safe-outputs:
  create-issue:
    title-prefix: "[community-attribution] "
    labels: [community, automation]
    close-older-issues: true   # closes stale duplicates
    group-by-day: true         # comments on today's issue instead of creating new one
    expires: 7d

The shared/issue-dedup.md component is generic enough to import into any of the ~12 other daily reporting workflows with the same structural problem.

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 /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw (http block)
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw 1P/ItQBPp2oWL-kj-C (http block)
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw 057-43ab-8b08-af-C (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 sonschema/annotations.go x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile env -json GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet (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 --show-toplevel sY5xy3c/9ezsDU_VWw7VJguVlRAx /usr/bin/git ithub/workflows Kv-X/SrddFjc3EqPrev-parse ger.test git rev-�� --show-toplevel ger.test /usr/bin/git 6/001/test-frontnode 1632933/b055/vet/opt/hostedtoolcache/node/24.14.1/x64/bin/npm .cfg git (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 4314-43188/test-535088090 ftwbLyXFJWv_ /usr/bin/git -json GO111MODULE x_amd64/vet git -C /tmp/TestCompileErrorFormatting2667639125/001 config /usr/bin/git remote.origin.urgit GO111MODULE x_amd64/vet git (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 5/001/noflag-a.md 1632933/b263/vet.cfg ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet -p github.com/goccy--version -lang=go1.21 ache/go/1.25.8/x64/pkg/tool/linu--json -uns�� 4314-43188/test-515937753 /tmp/go-build3921632933/b007/vet100 1/x64/bin/node go1.25.8 -c=4 -nolocalimports ache/go/1.25.8/x64/pkg/tool/linux_amd64/link (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq [.object.sha, .object.type] | @tsv --show-toplevel x_amd64/compile /usr/bin/git se 1632933/b238/vet\n x_amd64/vet git rev-�� --show-toplevel x_amd64/vet /usr/bin/git /tmp/go-build251git -trimpath /opt/hostedtoolc--show-toplevel git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq [.object.sha, .object.type] | @tsv --show-toplevel git /usr/bin/git sistency_WithImpgit remote.origin.urrev-parse /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git runs/20260427-23git s/3/artifacts /usr/bin/infocmp--show-toplevel git (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 (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv ithub/workflows (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv --codespaces (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 --show-toplevel /opt/hostedtoolcconfig /usr/bin/git -unreachable=falgit /tmp/go-build392rev-parse 1632933/b316/vetHEAD git rev-�� --show-toplevel /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linu-tests /usr/bin/git faultBranchFromLgit faultBranchFromLrev-parse /opt/hostedtoolc--show-toplevel git (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 x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile env -json GO111MODULE x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile (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 x_amd64/asm GOINSECURE GOMOD GOMODCACHE x_amd64/asm env -json GO111MODULE x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq [.object.sha, .object.type] | @tsv to pkg/actionpins/data/action_pi-p GO111MODULE x_amd64/asm GOINSECURE GOMOD GOMODCACHE x_amd64/asm env -json GO111MODULE x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile (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 ry=1 64/pkg/tool/linu-dwarf=false 1632933/b469/_pkg_.a mLsRemoteWithReagit mLsRemoteWithRearev-parse 64/pkg/tool/linu--show-toplevel /usr/bin/git remo�� -v 64/pkg/tool/linuremote.origin.url /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet 3346824/b178/_pkgit .cfg 64/pkg/tool/linu--show-toplevel /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet (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 64/bin/go GOINSECURE GOMOD GOMODCACHE go env -json GO111MODULE 1/x64/bin/sh 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 /tmp/TestGuardPolicyTrustedUsersRequiresMinIntegrity2922411261/001 remote /usr/bin/git -json GO111MODULE x_amd64/vet git init�� GOMODCACHE x_amd64/vet r,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,disp--show-toplevel -json GO111MODULE x_amd64/vet git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv MqYe/uXb-_-FH1z-Ipr5RMqYe 64/pkg/tool/linux_amd64/vet /usr/bin/infocmp ortcfg .cfg 64/pkg/tool/linu--show-toplevel infocmp 1632�� xterm-color 1632933/b469/_testmain.go /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet y_with_repos=pubgit gLhb/hBEUOkjpLNrrev-parse 64/pkg/tool/linu--show-toplevel /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE 64/bin/go 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/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 (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv k/gh-aw/gh-aw :latest kflows/daily-reg-f (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv ithub/workflows (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 /tmp/gh-aw-test-runs/20260427-234314-43188/test-2126968355/.gith@{u} config .test remote.origin.urgit 1.5.0/internal/xrev-parse x_amd64/compile .test Enve�� xterm-color l /usr/bin/git -json GO111MODULE layTitle git (http block)
  • https://api.github.com/repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b
    • Triggering command: /usr/bin/gh gh api /repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b --jq [.object.sha, .object.type] | @tsv (http block)
    • Triggering command: /usr/bin/gh gh api /repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b --jq [.object.sha, .object.type] | @tsv --get-regexp --global $name) { hasDiscussionsEnabled } } (http block)
    • Triggering command: /usr/bin/gh gh api /repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b --jq [.object.sha, .object.type] | @tsv --get-regexp --global git (http block)
  • https://api.github.com/repos/github/gh-aw
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw --jq .default_branch (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw --jq .default_branch k/gh-aw/gh-aw :latest r: $owner, name: $name) { hasDiscussionsEnabled } } (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw --jq .default_branch ithub/workflows rev-parse ock.yml (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 --show-toplevel 64/pkg/tool/linuconfig /usr/bin/git ortcfg GO111MODULE 64/pkg/tool/linu--show-toplevel /usr/bin/git remo�� -v 64/pkg/tool/linux_amd64/vet /usr/bin/git 3346824/b196/_pkgit -QbQ/h0mDcb4RKnBrev-parse util.test git (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 k/gh-aw/gh-aw/pkg/cli rev-parse /usr/bin/gh l GO111MODULE x_amd64/compile gh api /repos/actions/github-script/git/ref/tags/v9 --jq /usr/bin/git -json GO111MODULE x_amd64/vet git (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 /tmp/TestGuardPolicyMinIntegrityOnlymin-integrittest-logs/run-5 l /usr/bin/git -json GO111MODULE x_amd64/compile git -C /tmp/gh-aw-test-runs/20260427-234314-43188/test-248691597/custom/workflows l /usr/bin/git -json GO111MODULE x_amd64/vet git (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-04-20 GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/vet ortc�� matter-with-arrays.md .cfg 64/pkg/tool/linux_amd64/vet GOINSECURE fips140/alias GOMODCACHE 64/pkg/tool/linufeature-branch (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-03-28 GOMOD GOMODCACHE 64/pkg/tool/linuremote.origin.url ortc�� ed-imports-enabled-with-env-template-expressions-in-body.md .cfg 64/pkg/tool/linux_amd64/vet GOINSECURE /maps GOMODCACHE 64/pkg/tool/linux_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 --limit 100 --created >=2026-01-27 GOMOD GOMODCACHE x_amd64/link ortc�� ty-test.md .cfg 64/pkg/tool/linux_amd64/vet GOINSECURE boring/sig GOMODCACHE 7z/4P7r8Nx30lqcgorigin (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 GO111MODULE 64/pkg/tool/linux_amd64/vet GOINSECURE 3346824/b011/memrev-parse ache/go/1.25.8/x--show-toplevel 64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh run download 1 --dir test-logs/run-1 GO111MODULE ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linu--jq 3346�� 248691597/custom/workflows ELPw/QEPjXdEopvS0kiaYELPw k GOSUMDB GOWORK 64/bin/go ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet (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 .cfg 64/pkg/tool/linux_amd64/vet GOINSECURE 3346824/b133/ GOMODCACHE 64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh run download 12345 --dir test-logs/run-12345 .cfg 64/pkg/tool/linux_amd64/compile GOINSECURE /go-yaml GOMODCACHE 64/pkg/tool/linux_amd64/compile (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 .cfg 64/pkg/tool/linux_amd64/vet GOINSECURE b/gh-aw/pkg/striconfig GOMODCACHE 64/pkg/tool/linuTest User (http block)
    • Triggering command: /usr/bin/gh gh run download 12346 --dir test-logs/run-12346 38wk/F3_s36TZU8R-c=4 ionpins.test GOINSECURE ntio/encoding/asrev-parse GOMODCACHE ionpins.test 9216�� 3146383816/.github/workflows 1632933/b025/vet.cfg .cfg GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linu-importcfg (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 GO111MODULE 64/pkg/tool/linu-nilfunc GOINSECURE fips140/nistec ache/go/1.25.8/x--show-toplevel 64/pkg/tool/linu-tests (http block)
    • Triggering command: /usr/bin/gh gh run download 2 --dir test-logs/run-2 O8a-/w8uJjXynBhCHi02xO8a- .cfg GOINSECURE fips140/mlkem GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linu-buildtags (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 GO111MODULE 64/pkg/tool/linux_amd64/link GOINSECURE 3346824/b011/rt0rev-parse ache/go/1.25.8/x--show-toplevel 64/pkg/tool/linux_amd64/link (http block)
    • Triggering command: /usr/bin/gh gh run download 3 --dir test-logs/run-3 bYse/Agvt9vB4Z3tFs27lbYse ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet GOINSECURE fips140/ecdh GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet (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 GO111MODULE 64/pkg/tool/linux_amd64/vet GOINSECURE 3346824/b011/sysrev-parse ache/go/1.25.8/x--show-toplevel 64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh run download 4 --dir test-logs/run-4 eFae/0ahu769BnKYz-hV-eFae .cfg GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet (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 zm1t/ybsydLQ-bM8eUCGDzm1t 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 5 --dir test-logs/run-5 stmain.go ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet GOINSECURE fips140/ecdsa ache/go/1.25.8/x--show-toplevel ache/go/1.25.8/x64/pkg/tool/linu-buildtags (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 ii/equal_fold.go x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile 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 ntio/asm/keyset 3346824/b047/sym--show-toplevel 64/pkg/tool/linux_amd64/vet env 1732517209 GO111MODULE x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile (http block)
  • https://api.github.com/repos/github/gh-aw/contents/.github/workflows/shared/reporting.md
    • Triggering command: /tmp/go-build3921632933/b404/cli.test /tmp/go-build3921632933/b404/cli.test -test.testlogfile=/tmp/go-build3921632933/b404/testlog.txt -test.paniconexit0 -test.v=true -test.parallel=4 -test.timeout=10m0s -test.run=^Test -test.short=true GOINSECURE GOMOD GOMODCACHE x_amd64/compile env -json GO111MODULE x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile (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 --show-toplevel ache/go/1.25.8/x64/pkg/tool/linuremote.origin.url /usr/bin/git ApprovalLabelsCogit stmain.go ache/go/1.25.8/x--show-toplevel git rev-�� --show-toplevel ache/go/1.25.8/x64/pkg/tool/linux_amd64/link /usr/bin/git ithub/workflows -buildtags 1632933/b427/imp/tmp/gh-aw/aw-feature-branch.patch git (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 4314-43188/test-source-field-var-s 1632933/b004/vet.cfg .cfg -p internal/unsafeh-1 -lang=go1.25 ache/go/1.25.8/x64/pkg/tool/linutest@example.com 3346�� /tmp/go-build2513346824/b114/_pkg_.a pkg/mod/github.com/modelcontextprotocol/go-sdk@v1.5.0/jsonrpc/js-ifaceassert ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet -p net/netip -lang=go1.25 ache/go/1.25.8/x12345 (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 9393543/001 9393543/002/work x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet (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 .go x_amd64/vet GOINSECURE GOMOD GOMODCACHE 4-oiIa1/9KqfPfOCpIDAkxslPM8J env g_.a GO111MODULE 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 from .github/aw to pkg/actionpins/data/action_pi-p GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet env Gitmain_branch21remote.origin.url Gitmain_branch2189393543/001' 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 -json fer.go x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet 2255�� -json GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_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 GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet (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 4314-43188/test-source-field-variant-3914967558 1632933/b034/vet.cfg Name,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle -I /tmp/go-build251/tmp/test-expr-3332758255.js -I ache/go/1.25.8/x64/pkg/tool/linu-trimpath sRem�� se 1632933/b121/vet.cfg ache/go/1.25.8/x64/pkg/tool/linu-lang=go1.25 -p internal/poll -lang=go1.25 ache/go/1.25.8/x64/pkg/tool/linuremote.myorg.url (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 ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet (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/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile env -json GO111MODULE x_amd64/vet GOINSECURE GOMOD sm_wasm.s x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --repo owner/repo -importcfg /tmp/go-build3921632933/b434/importcfg -pack /home/REDACTED/work/gh-aw/gh-aw/pkg/repoutil/repoutil.go /home/REDACTED/work/gh-aw/gh-aw/pkg/repoutil/repoutil_test.go env -json GO111MODULE x_amd64/vet GOINSECURE GOMOD emclr_wasm.s x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh workflow list --repo owner/repo --json name,path,state x_amd64/compile GOINSECURE 3346824/b133/arirev-parse ache/go/1.25.8/x--git-dir x_amd64/compile -o /tmp/go-build2513346824/b105/_pkg_.a -trimpath .cfg -p log/internal -lang=go1.25 ache/go/1.25.8/xrepos/{owner}/{repo}/actions/runs/12346/artifacts (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 -json GO111MODULE x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile env -json GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet (http block)
  • https://api.github.com/repos/test/repo
    • Triggering command: /usr/bin/gh gh api /repos/test/repo --jq .default_branch 248691597/custom/workflows 1632933/b091/vet.cfg .cfg GOSUMDB GOWORK 64/bin/go ache/go/1.25.8/x64/pkg/tool/linu-tests -o 3346824/b180/importcfg -trimpath ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet -p strings -lang=go1.25 ache/go/1.25.8/x4 (http block)
  • invalid.example.invalid
    • Triggering command: /usr/lib/git-core/git-remote-https /usr/lib/git-core/git-remote-https origin https://invalid.example.invalid/nonexistent-repo.git git conf�� --local --get ode_modules/.bin/git user.name Test User k/gh-aw/gh-aw/acfor-each-ref git comm�� -m Initial commit tions/setup/node_modules/.bin/git --bare --initial-branchadd p/bin/git git (dns block)

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

Copilot AI and others added 2 commits April 27, 2026 23:37
Agent-Logs-Url: https://github.com/github/gh-aw/sessions/a9c0a1f2-a057-43ab-8b08-af6dd5fee778

Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
- Create shared/issue-dedup.md reusable component with dedup instructions
- Add safe-outputs.create-issue with close-older-issues and group-by-day to daily-community-attribution.md
- Import shared/issue-dedup.md in daily-community-attribution.md
- Add Step 6 (Report Failures) section instructing agents to use create_issue safe-output tool
- Recompile daily-community-attribution.lock.yml

Agent-Logs-Url: https://github.com/github/gh-aw/sessions/a9c0a1f2-a057-43ab-8b08-af6dd5fee778

Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
Copilot AI changed the title [WIP] Add deduplication check to Daily Community Attribution Updater Add issue deduplication to Daily Community Attribution Updater Apr 27, 2026
Copilot AI requested a review from gh-aw-bot April 27, 2026 23:53
@pelikhan pelikhan marked this pull request as ready for review April 28, 2026 00:54
Copilot AI review requested due to automatic review settings April 28, 2026 00:54
@pelikhan pelikhan merged commit eb75d7c into main Apr 28, 2026
19 checks passed
@pelikhan pelikhan deleted the copilot/deep-report-add-deduplication-check branch April 28, 2026 00:54
@github-actions github-actions Bot mentioned this pull request Apr 28, 2026
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

Adds a reusable “issue deduplication” prompt component and wires the Daily Community Attribution workflow to report failures via the create_issue safe-output tool so repeated failures don’t create duplicate GitHub issues.

Changes:

  • Add shared prompt component instructing agents to use create_issue safe-output (with dedup semantics) for failure reporting.
  • Configure safe-outputs.create-issue and import the shared component into daily-community-attribution.md, plus add an explicit “Report Failures” step.
  • Bump the pinned ruby/setup-ruby action version/sha in both action pin datasets.
Show a summary per file
File Description
pkg/workflow/data/action_pins.json Updates pinned ruby/setup-ruby version/sha used by workflow tooling.
pkg/actionpins/data/action_pins.json Mirrors the same ruby/setup-ruby pin update in the actionpins package dataset.
.github/workflows/shared/issue-dedup.md New shared guidance for deduplicated failure issue creation via safe-outputs.
.github/workflows/daily-community-attribution.md Adds create-issue safe-output config, imports shared dedup guidance, and documents failure reporting step.
.github/workflows/daily-community-attribution.lock.yml Regenerated lockfile reflecting new import and safe-output tool configuration.

Copilot's findings

Tip

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

  • Files reviewed: 5/5 changed files
  • Comments generated: 4

Comment on lines +16 to +20
Use the `create_issue` safe-output tool (JSON format):

```json
{"create_issue": {"title": "Brief description of the failure", "body": "### What failed\n\nData fetch or processing step failed with an unexpected error.\n\n### Steps to investigate\n\n1. Check the workflow run logs for the exact error message\n2. Verify that the data sources (community_issues.json, pull_requests.json) are accessible\n3. Review recent changes to the workflow or data sources"}}
```
Copy link

Copilot AI Apr 28, 2026

Choose a reason for hiding this comment

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

The example encourages a variable issue title ("Brief description of the failure"), but group-by-day only deduplicates when the title matches exactly. To make deduplication reliable, recommend a stable title format (e.g., a fixed workflow-specific title) and put the detailed error context in the body.

Copilot uses AI. Check for mistakes.
Comment on lines +391 to +394
If you encounter a genuine error that prevents completion (e.g., data fetch failure, unexpected error), report it using the `create_issue` safe-output tool — **never use the GitHub MCP `create_issue` tool directly**. The safe-output tool has built-in deduplication (`group-by-day` and `close-older-issues`) that prevents duplicate failure issues from accumulating.

```json
{"create_issue": {"title": "Brief description of the failure", "body": "### What failed\n\nDescribe the specific step or data source that failed.\n\n### Error details\n\n(Include the error message or unexpected output here)\n\n### Steps to investigate\n\n1. Check the workflow run logs for the full error message\n2. Verify that community_issues.json and pull_requests.json were fetched successfully\n3. Re-run the workflow manually via workflow_dispatch to see if the failure is transient"}}
Copy link

Copilot AI Apr 28, 2026

Choose a reason for hiding this comment

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

The failure-reporting example uses a free-form title ("Brief description of the failure"), but group-by-day deduplication only works when the title is identical across runs. Consider instructing a consistent title (e.g., a fixed "Daily Community Attribution Updater failed" title) and include the specific failure details in the body so retries don’t create multiple issues in the same day.

Suggested change
If you encounter a genuine error that prevents completion (e.g., data fetch failure, unexpected error), report it using the `create_issue` safe-output tool — **never use the GitHub MCP `create_issue` tool directly**. The safe-output tool has built-in deduplication (`group-by-day` and `close-older-issues`) that prevents duplicate failure issues from accumulating.
```json
{"create_issue": {"title": "Brief description of the failure", "body": "### What failed\n\nDescribe the specific step or data source that failed.\n\n### Error details\n\n(Include the error message or unexpected output here)\n\n### Steps to investigate\n\n1. Check the workflow run logs for the full error message\n2. Verify that community_issues.json and pull_requests.json were fetched successfully\n3. Re-run the workflow manually via workflow_dispatch to see if the failure is transient"}}
If you encounter a genuine error that prevents completion (e.g., data fetch failure, unexpected error), report it using the `create_issue` safe-output tool — **never use the GitHub MCP `create_issue` tool directly**. The safe-output tool has built-in deduplication (`group-by-day` and `close-older-issues`) that prevents duplicate failure issues from accumulating, so use a consistent title and put the specific failure details in the body.
```json
{"create_issue": {"title": "Daily Community Attribution Updater failed", "body": "### What failed\n\nDescribe the specific step, operation, or data source that failed in this run.\n\n### Error details\n\nInclude the exact error message, unexpected output, or other run-specific details here.\n\n### Steps to investigate\n\n1. Check the workflow run logs for the full error message\n2. Verify that community_issues.json and pull_requests.json were fetched successfully\n3. Re-run the workflow manually via workflow_dispatch to see if the failure is transient"}}

Copilot uses AI. Check for mistakes.
Comment on lines +171 to +174
"ruby/setup-ruby@v1.306.0": {
"repo": "ruby/setup-ruby",
"version": "v1.305.0",
"sha": "0cb964fd540e0a24c900370abf38a33466142735"
"version": "v1.306.0",
"sha": "c4e5b1316158f92e3d49443a9d58b31d25ac0f8f"
Copy link

Copilot AI Apr 28, 2026

Choose a reason for hiding this comment

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

This action pin bump (ruby/setup-ruby v1.305.0 → v1.306.0) isn’t mentioned in the PR description and appears unrelated to the issue-deduplication workflow change. If it’s intentional, consider calling it out in the PR description (or splitting into a separate PR) to keep review scope clear.

Copilot uses AI. Check for mistakes.
Comment on lines +171 to +174
"ruby/setup-ruby@v1.306.0": {
"repo": "ruby/setup-ruby",
"version": "v1.305.0",
"sha": "0cb964fd540e0a24c900370abf38a33466142735"
"version": "v1.306.0",
"sha": "c4e5b1316158f92e3d49443a9d58b31d25ac0f8f"
Copy link

Copilot AI Apr 28, 2026

Choose a reason for hiding this comment

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

This action pin bump (ruby/setup-ruby v1.305.0 → v1.306.0) isn’t mentioned in the PR description and appears unrelated to the issue-deduplication workflow change. If it’s intentional, consider calling it out in the PR description (or splitting into a separate PR) to keep review scope clear.

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[deep-report] Add deduplication check to Daily Community Attribution Updater before creating failure issues

4 participants