You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Today's cross-repo compilation audit (gh-aw 4e61268, 20 lock-file adopters by stars) surfaced a new validator false positive: a push trigger scoped by tags (on.push.tags) is incorrectly rejected as an "unscoped push," demanding a branches/branches-ignore filter. Tag-triggered release workflows are a standard pattern and never fire on branch pushes, so the fan-out rationale does not apply.
This breaks a first-party workflow: github/gh-aw-mcpg → .github/workflows/release.md fails to compile (non-strict and strict). gh aw fix --write does not remediate it.
Root cause
ValidatePushBranchScope in pkg/workflow/compiler_filters_validation.go (~L96–136) accepts only branches and branches-ignore as valid push scoping. It ignores tags / tags-ignore (and paths / paths-ignore), so any push scoped solely by tags is treated as unscoped:
Note the inconsistency: the sibling filter-pattern validator already understands tags/tags-ignore as first-class push filters, but the scope check does not.
Minimal reproduction
---
name: Tag Push Reproon:
push:
tags:
- 'v*.*.*'permissions:
contents: readengine: copilot
---
# Test
gh aw compile →
Validation failed for field 'on.push'
Value: push (no branch filter)
Reason: push event must specify a 'branches' or 'branches-ignore' filter ...
Control: replacing tags: with branches: [main] compiles clean (0 errors).
Suggested fix
In ValidatePushBranchScope, treat a push as scoped when any of branches, branches-ignore, tags, tags-ignore (and arguably paths / paths-ignore) is present. A tag-scoped push cannot fan out across feature branches, so it should pass without a branches filter. Add a regression test alongside push_branch_scope_test.go covering on.push.tags.
Run context
20-repo audit results
Clean or self-healed by gh aw fix: 15 (2 healed: githubnext/agentics-template, pelikhan/github-agentic-workflows).
Summary
Today's cross-repo compilation audit (gh-aw
4e61268, 20 lock-file adopters by stars) surfaced a new validator false positive: a push trigger scoped by tags (on.push.tags) is incorrectly rejected as an "unscoped push," demanding abranches/branches-ignorefilter. Tag-triggered release workflows are a standard pattern and never fire on branch pushes, so the fan-out rationale does not apply.This breaks a first-party workflow:
github/gh-aw-mcpg→.github/workflows/release.mdfails to compile (non-strict and strict).gh aw fix --writedoes not remediate it.Root cause
ValidatePushBranchScopeinpkg/workflow/compiler_filters_validation.go(~L96–136) accepts onlybranchesandbranches-ignoreas valid push scoping. It ignorestags/tags-ignore(andpaths/paths-ignore), so any push scoped solely by tags is treated as unscoped:Note the inconsistency: the sibling filter-pattern validator already understands
tags/tags-ignoreas first-class push filters, but the scope check does not.Minimal reproduction
gh aw compile→Control: replacing
tags:withbranches: [main]compiles clean (0 errors).Suggested fix
In
ValidatePushBranchScope, treat a push as scoped when any ofbranches,branches-ignore,tags,tags-ignore(and arguablypaths/paths-ignore) is present. A tag-scoped push cannot fan out across feature branches, so it should pass without a branches filter. Add a regression test alongsidepush_branch_scope_test.gocoveringon.push.tags.Run context
20-repo audit results
gh aw fix: 15 (2 healed: githubnext/agentics-template, pelikhan/github-agentic-workflows).--strict): github/gh-aw-firewall (sandbox.mcp.version), elastic/ai-github-actions (sandbox.agent:false).restore-memoryvendor fixture — already tracked by#44542.add-pr-comment→add-comment—#43995closed NOT_PLANNED (user-side rename).Discovery: code-search endpoint HTTP 429 (persistent); repo-search verified no new adopters; cached adopter pool re-verified public + non-archived.
Representative repository
github/gh-aw-mcpg→.github/workflows/release.md(on.push.tags: ['v*.*.*'])Warning
Firewall blocked 1 domain
The following domain was blocked by the firewall during workflow execution:
models.devSee Network Configuration for more information.